• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_surface\0").expect("Wrong extension string")
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         KhrSurfaceFn {
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 Result {
239     pub const ERROR_SURFACE_LOST_KHR: Self = Self(-1000000000);
240 }
241 #[doc = "Generated from 'VK_KHR_surface'"]
242 impl Result {
243     pub const ERROR_NATIVE_WINDOW_IN_USE_KHR: Self = Self(-1000000001);
244 }
245 #[doc = "Generated from 'VK_KHR_surface'"]
246 impl ObjectType {
247     pub const SURFACE_KHR: Self = Self(1_000_000_000);
248 }
249 impl KhrSwapchainFn {
name() -> &'static ::std::ffi::CStr250     pub fn name() -> &'static ::std::ffi::CStr {
251         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_swapchain\0")
252             .expect("Wrong extension string")
253     }
254     pub const SPEC_VERSION: u32 = 70u32;
255 }
256 #[allow(non_camel_case_types)]
257 pub type PFN_vkCreateSwapchainKHR = unsafe extern "system" fn(
258     device: Device,
259     p_create_info: *const SwapchainCreateInfoKHR,
260     p_allocator: *const AllocationCallbacks,
261     p_swapchain: *mut SwapchainKHR,
262 ) -> Result;
263 #[allow(non_camel_case_types)]
264 pub type PFN_vkDestroySwapchainKHR = unsafe extern "system" fn(
265     device: Device,
266     swapchain: SwapchainKHR,
267     p_allocator: *const AllocationCallbacks,
268 );
269 #[allow(non_camel_case_types)]
270 pub type PFN_vkGetSwapchainImagesKHR = unsafe extern "system" fn(
271     device: Device,
272     swapchain: SwapchainKHR,
273     p_swapchain_image_count: *mut u32,
274     p_swapchain_images: *mut Image,
275 ) -> Result;
276 #[allow(non_camel_case_types)]
277 pub type PFN_vkAcquireNextImageKHR = unsafe extern "system" fn(
278     device: Device,
279     swapchain: SwapchainKHR,
280     timeout: u64,
281     semaphore: Semaphore,
282     fence: Fence,
283     p_image_index: *mut u32,
284 ) -> Result;
285 #[allow(non_camel_case_types)]
286 pub type PFN_vkQueuePresentKHR =
287     unsafe extern "system" fn(queue: Queue, p_present_info: *const PresentInfoKHR) -> Result;
288 #[allow(non_camel_case_types)]
289 pub type PFN_vkGetDeviceGroupPresentCapabilitiesKHR = unsafe extern "system" fn(
290     device: Device,
291     p_device_group_present_capabilities: *mut DeviceGroupPresentCapabilitiesKHR,
292 ) -> Result;
293 #[allow(non_camel_case_types)]
294 pub type PFN_vkGetDeviceGroupSurfacePresentModesKHR = unsafe extern "system" fn(
295     device: Device,
296     surface: SurfaceKHR,
297     p_modes: *mut DeviceGroupPresentModeFlagsKHR,
298 ) -> Result;
299 #[allow(non_camel_case_types)]
300 pub type PFN_vkGetPhysicalDevicePresentRectanglesKHR = unsafe extern "system" fn(
301     physical_device: PhysicalDevice,
302     surface: SurfaceKHR,
303     p_rect_count: *mut u32,
304     p_rects: *mut Rect2D,
305 ) -> Result;
306 #[allow(non_camel_case_types)]
307 pub type PFN_vkAcquireNextImage2KHR = unsafe extern "system" fn(
308     device: Device,
309     p_acquire_info: *const AcquireNextImageInfoKHR,
310     p_image_index: *mut u32,
311 ) -> Result;
312 #[derive(Clone)]
313 pub struct KhrSwapchainFn {
314     pub create_swapchain_khr: PFN_vkCreateSwapchainKHR,
315     pub destroy_swapchain_khr: PFN_vkDestroySwapchainKHR,
316     pub get_swapchain_images_khr: PFN_vkGetSwapchainImagesKHR,
317     pub acquire_next_image_khr: PFN_vkAcquireNextImageKHR,
318     pub queue_present_khr: PFN_vkQueuePresentKHR,
319     pub get_device_group_present_capabilities_khr: PFN_vkGetDeviceGroupPresentCapabilitiesKHR,
320     pub get_device_group_surface_present_modes_khr: PFN_vkGetDeviceGroupSurfacePresentModesKHR,
321     pub get_physical_device_present_rectangles_khr: PFN_vkGetPhysicalDevicePresentRectanglesKHR,
322     pub acquire_next_image2_khr: PFN_vkAcquireNextImage2KHR,
323 }
324 unsafe impl Send for KhrSwapchainFn {}
325 unsafe impl Sync for KhrSwapchainFn {}
326 impl KhrSwapchainFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,327     pub fn load<F>(mut _f: F) -> Self
328     where
329         F: FnMut(&::std::ffi::CStr) -> *const c_void,
330     {
331         KhrSwapchainFn {
332             create_swapchain_khr: unsafe {
333                 unsafe extern "system" fn create_swapchain_khr(
334                     _device: Device,
335                     _p_create_info: *const SwapchainCreateInfoKHR,
336                     _p_allocator: *const AllocationCallbacks,
337                     _p_swapchain: *mut SwapchainKHR,
338                 ) -> Result {
339                     panic!(concat!("Unable to load ", stringify!(create_swapchain_khr)))
340                 }
341                 let cname =
342                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateSwapchainKHR\0");
343                 let val = _f(cname);
344                 if val.is_null() {
345                     create_swapchain_khr
346                 } else {
347                     ::std::mem::transmute(val)
348                 }
349             },
350             destroy_swapchain_khr: unsafe {
351                 unsafe extern "system" fn destroy_swapchain_khr(
352                     _device: Device,
353                     _swapchain: SwapchainKHR,
354                     _p_allocator: *const AllocationCallbacks,
355                 ) {
356                     panic!(concat!(
357                         "Unable to load ",
358                         stringify!(destroy_swapchain_khr)
359                     ))
360                 }
361                 let cname =
362                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroySwapchainKHR\0");
363                 let val = _f(cname);
364                 if val.is_null() {
365                     destroy_swapchain_khr
366                 } else {
367                     ::std::mem::transmute(val)
368                 }
369             },
370             get_swapchain_images_khr: unsafe {
371                 unsafe extern "system" fn get_swapchain_images_khr(
372                     _device: Device,
373                     _swapchain: SwapchainKHR,
374                     _p_swapchain_image_count: *mut u32,
375                     _p_swapchain_images: *mut Image,
376                 ) -> Result {
377                     panic!(concat!(
378                         "Unable to load ",
379                         stringify!(get_swapchain_images_khr)
380                     ))
381                 }
382                 let cname =
383                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetSwapchainImagesKHR\0");
384                 let val = _f(cname);
385                 if val.is_null() {
386                     get_swapchain_images_khr
387                 } else {
388                     ::std::mem::transmute(val)
389                 }
390             },
391             acquire_next_image_khr: unsafe {
392                 unsafe extern "system" fn acquire_next_image_khr(
393                     _device: Device,
394                     _swapchain: SwapchainKHR,
395                     _timeout: u64,
396                     _semaphore: Semaphore,
397                     _fence: Fence,
398                     _p_image_index: *mut u32,
399                 ) -> Result {
400                     panic!(concat!(
401                         "Unable to load ",
402                         stringify!(acquire_next_image_khr)
403                     ))
404                 }
405                 let cname =
406                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireNextImageKHR\0");
407                 let val = _f(cname);
408                 if val.is_null() {
409                     acquire_next_image_khr
410                 } else {
411                     ::std::mem::transmute(val)
412                 }
413             },
414             queue_present_khr: unsafe {
415                 unsafe extern "system" fn queue_present_khr(
416                     _queue: Queue,
417                     _p_present_info: *const PresentInfoKHR,
418                 ) -> Result {
419                     panic!(concat!("Unable to load ", stringify!(queue_present_khr)))
420                 }
421                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkQueuePresentKHR\0");
422                 let val = _f(cname);
423                 if val.is_null() {
424                     queue_present_khr
425                 } else {
426                     ::std::mem::transmute(val)
427                 }
428             },
429             get_device_group_present_capabilities_khr: unsafe {
430                 unsafe extern "system" fn get_device_group_present_capabilities_khr(
431                     _device: Device,
432                     _p_device_group_present_capabilities: *mut DeviceGroupPresentCapabilitiesKHR,
433                 ) -> Result {
434                     panic!(concat!(
435                         "Unable to load ",
436                         stringify!(get_device_group_present_capabilities_khr)
437                     ))
438                 }
439                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
440                     b"vkGetDeviceGroupPresentCapabilitiesKHR\0",
441                 );
442                 let val = _f(cname);
443                 if val.is_null() {
444                     get_device_group_present_capabilities_khr
445                 } else {
446                     ::std::mem::transmute(val)
447                 }
448             },
449             get_device_group_surface_present_modes_khr: unsafe {
450                 unsafe extern "system" fn get_device_group_surface_present_modes_khr(
451                     _device: Device,
452                     _surface: SurfaceKHR,
453                     _p_modes: *mut DeviceGroupPresentModeFlagsKHR,
454                 ) -> Result {
455                     panic!(concat!(
456                         "Unable to load ",
457                         stringify!(get_device_group_surface_present_modes_khr)
458                     ))
459                 }
460                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
461                     b"vkGetDeviceGroupSurfacePresentModesKHR\0",
462                 );
463                 let val = _f(cname);
464                 if val.is_null() {
465                     get_device_group_surface_present_modes_khr
466                 } else {
467                     ::std::mem::transmute(val)
468                 }
469             },
470             get_physical_device_present_rectangles_khr: unsafe {
471                 unsafe extern "system" fn get_physical_device_present_rectangles_khr(
472                     _physical_device: PhysicalDevice,
473                     _surface: SurfaceKHR,
474                     _p_rect_count: *mut u32,
475                     _p_rects: *mut Rect2D,
476                 ) -> Result {
477                     panic!(concat!(
478                         "Unable to load ",
479                         stringify!(get_physical_device_present_rectangles_khr)
480                     ))
481                 }
482                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
483                     b"vkGetPhysicalDevicePresentRectanglesKHR\0",
484                 );
485                 let val = _f(cname);
486                 if val.is_null() {
487                     get_physical_device_present_rectangles_khr
488                 } else {
489                     ::std::mem::transmute(val)
490                 }
491             },
492             acquire_next_image2_khr: unsafe {
493                 unsafe extern "system" fn acquire_next_image2_khr(
494                     _device: Device,
495                     _p_acquire_info: *const AcquireNextImageInfoKHR,
496                     _p_image_index: *mut u32,
497                 ) -> Result {
498                     panic!(concat!(
499                         "Unable to load ",
500                         stringify!(acquire_next_image2_khr)
501                     ))
502                 }
503                 let cname =
504                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireNextImage2KHR\0");
505                 let val = _f(cname);
506                 if val.is_null() {
507                     acquire_next_image2_khr
508                 } else {
509                     ::std::mem::transmute(val)
510                 }
511             },
512         }
513     }
514     #[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, ) -> Result515     pub unsafe fn create_swapchain_khr(
516         &self,
517         device: Device,
518         p_create_info: *const SwapchainCreateInfoKHR,
519         p_allocator: *const AllocationCallbacks,
520         p_swapchain: *mut SwapchainKHR,
521     ) -> Result {
522         (self.create_swapchain_khr)(device, p_create_info, p_allocator, p_swapchain)
523     }
524     #[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, )525     pub unsafe fn destroy_swapchain_khr(
526         &self,
527         device: Device,
528         swapchain: SwapchainKHR,
529         p_allocator: *const AllocationCallbacks,
530     ) {
531         (self.destroy_swapchain_khr)(device, swapchain, p_allocator)
532     }
533     #[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, ) -> Result534     pub unsafe fn get_swapchain_images_khr(
535         &self,
536         device: Device,
537         swapchain: SwapchainKHR,
538         p_swapchain_image_count: *mut u32,
539         p_swapchain_images: *mut Image,
540     ) -> Result {
541         (self.get_swapchain_images_khr)(
542             device,
543             swapchain,
544             p_swapchain_image_count,
545             p_swapchain_images,
546         )
547     }
548     #[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, ) -> Result549     pub unsafe fn acquire_next_image_khr(
550         &self,
551         device: Device,
552         swapchain: SwapchainKHR,
553         timeout: u64,
554         semaphore: Semaphore,
555         fence: Fence,
556         p_image_index: *mut u32,
557     ) -> Result {
558         (self.acquire_next_image_khr)(device, swapchain, timeout, semaphore, fence, p_image_index)
559     }
560     #[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, ) -> Result561     pub unsafe fn queue_present_khr(
562         &self,
563         queue: Queue,
564         p_present_info: *const PresentInfoKHR,
565     ) -> Result {
566         (self.queue_present_khr)(queue, p_present_info)
567     }
568     #[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, ) -> Result569     pub unsafe fn get_device_group_present_capabilities_khr(
570         &self,
571         device: Device,
572         p_device_group_present_capabilities: *mut DeviceGroupPresentCapabilitiesKHR,
573     ) -> Result {
574         (self.get_device_group_present_capabilities_khr)(
575             device,
576             p_device_group_present_capabilities,
577         )
578     }
579     #[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, ) -> Result580     pub unsafe fn get_device_group_surface_present_modes_khr(
581         &self,
582         device: Device,
583         surface: SurfaceKHR,
584         p_modes: *mut DeviceGroupPresentModeFlagsKHR,
585     ) -> Result {
586         (self.get_device_group_surface_present_modes_khr)(device, surface, p_modes)
587     }
588     #[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, ) -> Result589     pub unsafe fn get_physical_device_present_rectangles_khr(
590         &self,
591         physical_device: PhysicalDevice,
592         surface: SurfaceKHR,
593         p_rect_count: *mut u32,
594         p_rects: *mut Rect2D,
595     ) -> Result {
596         (self.get_physical_device_present_rectangles_khr)(
597             physical_device,
598             surface,
599             p_rect_count,
600             p_rects,
601         )
602     }
603     #[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, ) -> Result604     pub unsafe fn acquire_next_image2_khr(
605         &self,
606         device: Device,
607         p_acquire_info: *const AcquireNextImageInfoKHR,
608         p_image_index: *mut u32,
609     ) -> Result {
610         (self.acquire_next_image2_khr)(device, p_acquire_info, p_image_index)
611     }
612 }
613 #[doc = "Generated from 'VK_KHR_swapchain'"]
614 impl StructureType {
615     pub const SWAPCHAIN_CREATE_INFO_KHR: Self = Self(1_000_001_000);
616 }
617 #[doc = "Generated from 'VK_KHR_swapchain'"]
618 impl StructureType {
619     pub const PRESENT_INFO_KHR: Self = Self(1_000_001_001);
620 }
621 #[doc = "Generated from 'VK_KHR_swapchain'"]
622 impl ImageLayout {
623     pub const PRESENT_SRC_KHR: Self = Self(1_000_001_002);
624 }
625 #[doc = "Generated from 'VK_KHR_swapchain'"]
626 impl Result {
627     pub const SUBOPTIMAL_KHR: Self = Self(1_000_001_003);
628 }
629 #[doc = "Generated from 'VK_KHR_swapchain'"]
630 impl Result {
631     pub const ERROR_OUT_OF_DATE_KHR: Self = Self(-1000001004);
632 }
633 #[doc = "Generated from 'VK_KHR_swapchain'"]
634 impl ObjectType {
635     pub const SWAPCHAIN_KHR: Self = Self(1_000_001_000);
636 }
637 #[doc = "Generated from 'VK_KHR_swapchain'"]
638 impl StructureType {
639     pub const DEVICE_GROUP_PRESENT_CAPABILITIES_KHR: Self = Self(1_000_060_007);
640 }
641 #[doc = "Generated from 'VK_KHR_swapchain'"]
642 impl StructureType {
643     pub const IMAGE_SWAPCHAIN_CREATE_INFO_KHR: Self = Self(1_000_060_008);
644 }
645 #[doc = "Generated from 'VK_KHR_swapchain'"]
646 impl StructureType {
647     pub const BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: Self = Self(1_000_060_009);
648 }
649 #[doc = "Generated from 'VK_KHR_swapchain'"]
650 impl StructureType {
651     pub const ACQUIRE_NEXT_IMAGE_INFO_KHR: Self = Self(1_000_060_010);
652 }
653 #[doc = "Generated from 'VK_KHR_swapchain'"]
654 impl StructureType {
655     pub const DEVICE_GROUP_PRESENT_INFO_KHR: Self = Self(1_000_060_011);
656 }
657 #[doc = "Generated from 'VK_KHR_swapchain'"]
658 impl StructureType {
659     pub const DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: Self = Self(1_000_060_012);
660 }
661 #[doc = "Generated from 'VK_KHR_swapchain'"]
662 impl SwapchainCreateFlagsKHR {
663     pub const SPLIT_INSTANCE_BIND_REGIONS: Self = Self(0b1);
664 }
665 #[doc = "Generated from 'VK_KHR_swapchain'"]
666 impl SwapchainCreateFlagsKHR {
667     pub const PROTECTED: Self = Self(0b10);
668 }
669 impl KhrDisplayFn {
name() -> &'static ::std::ffi::CStr670     pub fn name() -> &'static ::std::ffi::CStr {
671         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_display\0").expect("Wrong extension string")
672     }
673     pub const SPEC_VERSION: u32 = 23u32;
674 }
675 #[allow(non_camel_case_types)]
676 pub type PFN_vkGetPhysicalDeviceDisplayPropertiesKHR = unsafe extern "system" fn(
677     physical_device: PhysicalDevice,
678     p_property_count: *mut u32,
679     p_properties: *mut DisplayPropertiesKHR,
680 ) -> Result;
681 #[allow(non_camel_case_types)]
682 pub type PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR = unsafe extern "system" fn(
683     physical_device: PhysicalDevice,
684     p_property_count: *mut u32,
685     p_properties: *mut DisplayPlanePropertiesKHR,
686 ) -> Result;
687 #[allow(non_camel_case_types)]
688 pub type PFN_vkGetDisplayPlaneSupportedDisplaysKHR = unsafe extern "system" fn(
689     physical_device: PhysicalDevice,
690     plane_index: u32,
691     p_display_count: *mut u32,
692     p_displays: *mut DisplayKHR,
693 ) -> Result;
694 #[allow(non_camel_case_types)]
695 pub type PFN_vkGetDisplayModePropertiesKHR = unsafe extern "system" fn(
696     physical_device: PhysicalDevice,
697     display: DisplayKHR,
698     p_property_count: *mut u32,
699     p_properties: *mut DisplayModePropertiesKHR,
700 ) -> Result;
701 #[allow(non_camel_case_types)]
702 pub type PFN_vkCreateDisplayModeKHR = unsafe extern "system" fn(
703     physical_device: PhysicalDevice,
704     display: DisplayKHR,
705     p_create_info: *const DisplayModeCreateInfoKHR,
706     p_allocator: *const AllocationCallbacks,
707     p_mode: *mut DisplayModeKHR,
708 ) -> Result;
709 #[allow(non_camel_case_types)]
710 pub type PFN_vkGetDisplayPlaneCapabilitiesKHR = unsafe extern "system" fn(
711     physical_device: PhysicalDevice,
712     mode: DisplayModeKHR,
713     plane_index: u32,
714     p_capabilities: *mut DisplayPlaneCapabilitiesKHR,
715 ) -> Result;
716 #[allow(non_camel_case_types)]
717 pub type PFN_vkCreateDisplayPlaneSurfaceKHR = unsafe extern "system" fn(
718     instance: Instance,
719     p_create_info: *const DisplaySurfaceCreateInfoKHR,
720     p_allocator: *const AllocationCallbacks,
721     p_surface: *mut SurfaceKHR,
722 ) -> Result;
723 #[derive(Clone)]
724 pub struct KhrDisplayFn {
725     pub get_physical_device_display_properties_khr: PFN_vkGetPhysicalDeviceDisplayPropertiesKHR,
726     pub get_physical_device_display_plane_properties_khr:
727         PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR,
728     pub get_display_plane_supported_displays_khr: PFN_vkGetDisplayPlaneSupportedDisplaysKHR,
729     pub get_display_mode_properties_khr: PFN_vkGetDisplayModePropertiesKHR,
730     pub create_display_mode_khr: PFN_vkCreateDisplayModeKHR,
731     pub get_display_plane_capabilities_khr: PFN_vkGetDisplayPlaneCapabilitiesKHR,
732     pub create_display_plane_surface_khr: PFN_vkCreateDisplayPlaneSurfaceKHR,
733 }
734 unsafe impl Send for KhrDisplayFn {}
735 unsafe impl Sync for KhrDisplayFn {}
736 impl KhrDisplayFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,737     pub fn load<F>(mut _f: F) -> Self
738     where
739         F: FnMut(&::std::ffi::CStr) -> *const c_void,
740     {
741         KhrDisplayFn {
742             get_physical_device_display_properties_khr: unsafe {
743                 unsafe extern "system" fn get_physical_device_display_properties_khr(
744                     _physical_device: PhysicalDevice,
745                     _p_property_count: *mut u32,
746                     _p_properties: *mut DisplayPropertiesKHR,
747                 ) -> Result {
748                     panic!(concat!(
749                         "Unable to load ",
750                         stringify!(get_physical_device_display_properties_khr)
751                     ))
752                 }
753                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
754                     b"vkGetPhysicalDeviceDisplayPropertiesKHR\0",
755                 );
756                 let val = _f(cname);
757                 if val.is_null() {
758                     get_physical_device_display_properties_khr
759                 } else {
760                     ::std::mem::transmute(val)
761                 }
762             },
763             get_physical_device_display_plane_properties_khr: unsafe {
764                 unsafe extern "system" fn get_physical_device_display_plane_properties_khr(
765                     _physical_device: PhysicalDevice,
766                     _p_property_count: *mut u32,
767                     _p_properties: *mut DisplayPlanePropertiesKHR,
768                 ) -> Result {
769                     panic!(concat!(
770                         "Unable to load ",
771                         stringify!(get_physical_device_display_plane_properties_khr)
772                     ))
773                 }
774                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
775                     b"vkGetPhysicalDeviceDisplayPlanePropertiesKHR\0",
776                 );
777                 let val = _f(cname);
778                 if val.is_null() {
779                     get_physical_device_display_plane_properties_khr
780                 } else {
781                     ::std::mem::transmute(val)
782                 }
783             },
784             get_display_plane_supported_displays_khr: unsafe {
785                 unsafe extern "system" fn get_display_plane_supported_displays_khr(
786                     _physical_device: PhysicalDevice,
787                     _plane_index: u32,
788                     _p_display_count: *mut u32,
789                     _p_displays: *mut DisplayKHR,
790                 ) -> Result {
791                     panic!(concat!(
792                         "Unable to load ",
793                         stringify!(get_display_plane_supported_displays_khr)
794                     ))
795                 }
796                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
797                     b"vkGetDisplayPlaneSupportedDisplaysKHR\0",
798                 );
799                 let val = _f(cname);
800                 if val.is_null() {
801                     get_display_plane_supported_displays_khr
802                 } else {
803                     ::std::mem::transmute(val)
804                 }
805             },
806             get_display_mode_properties_khr: unsafe {
807                 unsafe extern "system" fn get_display_mode_properties_khr(
808                     _physical_device: PhysicalDevice,
809                     _display: DisplayKHR,
810                     _p_property_count: *mut u32,
811                     _p_properties: *mut DisplayModePropertiesKHR,
812                 ) -> Result {
813                     panic!(concat!(
814                         "Unable to load ",
815                         stringify!(get_display_mode_properties_khr)
816                     ))
817                 }
818                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
819                     b"vkGetDisplayModePropertiesKHR\0",
820                 );
821                 let val = _f(cname);
822                 if val.is_null() {
823                     get_display_mode_properties_khr
824                 } else {
825                     ::std::mem::transmute(val)
826                 }
827             },
828             create_display_mode_khr: unsafe {
829                 unsafe extern "system" fn create_display_mode_khr(
830                     _physical_device: PhysicalDevice,
831                     _display: DisplayKHR,
832                     _p_create_info: *const DisplayModeCreateInfoKHR,
833                     _p_allocator: *const AllocationCallbacks,
834                     _p_mode: *mut DisplayModeKHR,
835                 ) -> Result {
836                     panic!(concat!(
837                         "Unable to load ",
838                         stringify!(create_display_mode_khr)
839                     ))
840                 }
841                 let cname =
842                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateDisplayModeKHR\0");
843                 let val = _f(cname);
844                 if val.is_null() {
845                     create_display_mode_khr
846                 } else {
847                     ::std::mem::transmute(val)
848                 }
849             },
850             get_display_plane_capabilities_khr: unsafe {
851                 unsafe extern "system" fn get_display_plane_capabilities_khr(
852                     _physical_device: PhysicalDevice,
853                     _mode: DisplayModeKHR,
854                     _plane_index: u32,
855                     _p_capabilities: *mut DisplayPlaneCapabilitiesKHR,
856                 ) -> Result {
857                     panic!(concat!(
858                         "Unable to load ",
859                         stringify!(get_display_plane_capabilities_khr)
860                     ))
861                 }
862                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
863                     b"vkGetDisplayPlaneCapabilitiesKHR\0",
864                 );
865                 let val = _f(cname);
866                 if val.is_null() {
867                     get_display_plane_capabilities_khr
868                 } else {
869                     ::std::mem::transmute(val)
870                 }
871             },
872             create_display_plane_surface_khr: unsafe {
873                 unsafe extern "system" fn create_display_plane_surface_khr(
874                     _instance: Instance,
875                     _p_create_info: *const DisplaySurfaceCreateInfoKHR,
876                     _p_allocator: *const AllocationCallbacks,
877                     _p_surface: *mut SurfaceKHR,
878                 ) -> Result {
879                     panic!(concat!(
880                         "Unable to load ",
881                         stringify!(create_display_plane_surface_khr)
882                     ))
883                 }
884                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
885                     b"vkCreateDisplayPlaneSurfaceKHR\0",
886                 );
887                 let val = _f(cname);
888                 if val.is_null() {
889                     create_display_plane_surface_khr
890                 } else {
891                     ::std::mem::transmute(val)
892                 }
893             },
894         }
895     }
896     #[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, ) -> Result897     pub unsafe fn get_physical_device_display_properties_khr(
898         &self,
899         physical_device: PhysicalDevice,
900         p_property_count: *mut u32,
901         p_properties: *mut DisplayPropertiesKHR,
902     ) -> Result {
903         (self.get_physical_device_display_properties_khr)(
904             physical_device,
905             p_property_count,
906             p_properties,
907         )
908     }
909     #[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, ) -> Result910     pub unsafe fn get_physical_device_display_plane_properties_khr(
911         &self,
912         physical_device: PhysicalDevice,
913         p_property_count: *mut u32,
914         p_properties: *mut DisplayPlanePropertiesKHR,
915     ) -> Result {
916         (self.get_physical_device_display_plane_properties_khr)(
917             physical_device,
918             p_property_count,
919             p_properties,
920         )
921     }
922     #[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, ) -> Result923     pub unsafe fn get_display_plane_supported_displays_khr(
924         &self,
925         physical_device: PhysicalDevice,
926         plane_index: u32,
927         p_display_count: *mut u32,
928         p_displays: *mut DisplayKHR,
929     ) -> Result {
930         (self.get_display_plane_supported_displays_khr)(
931             physical_device,
932             plane_index,
933             p_display_count,
934             p_displays,
935         )
936     }
937     #[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, ) -> Result938     pub unsafe fn get_display_mode_properties_khr(
939         &self,
940         physical_device: PhysicalDevice,
941         display: DisplayKHR,
942         p_property_count: *mut u32,
943         p_properties: *mut DisplayModePropertiesKHR,
944     ) -> Result {
945         (self.get_display_mode_properties_khr)(
946             physical_device,
947             display,
948             p_property_count,
949             p_properties,
950         )
951     }
952     #[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, ) -> Result953     pub unsafe fn create_display_mode_khr(
954         &self,
955         physical_device: PhysicalDevice,
956         display: DisplayKHR,
957         p_create_info: *const DisplayModeCreateInfoKHR,
958         p_allocator: *const AllocationCallbacks,
959         p_mode: *mut DisplayModeKHR,
960     ) -> Result {
961         (self.create_display_mode_khr)(physical_device, display, p_create_info, p_allocator, p_mode)
962     }
963     #[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, ) -> Result964     pub unsafe fn get_display_plane_capabilities_khr(
965         &self,
966         physical_device: PhysicalDevice,
967         mode: DisplayModeKHR,
968         plane_index: u32,
969         p_capabilities: *mut DisplayPlaneCapabilitiesKHR,
970     ) -> Result {
971         (self.get_display_plane_capabilities_khr)(
972             physical_device,
973             mode,
974             plane_index,
975             p_capabilities,
976         )
977     }
978     #[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, ) -> Result979     pub unsafe fn create_display_plane_surface_khr(
980         &self,
981         instance: Instance,
982         p_create_info: *const DisplaySurfaceCreateInfoKHR,
983         p_allocator: *const AllocationCallbacks,
984         p_surface: *mut SurfaceKHR,
985     ) -> Result {
986         (self.create_display_plane_surface_khr)(instance, p_create_info, p_allocator, p_surface)
987     }
988 }
989 #[doc = "Generated from 'VK_KHR_display'"]
990 impl StructureType {
991     pub const DISPLAY_MODE_CREATE_INFO_KHR: Self = Self(1_000_002_000);
992 }
993 #[doc = "Generated from 'VK_KHR_display'"]
994 impl StructureType {
995     pub const DISPLAY_SURFACE_CREATE_INFO_KHR: Self = Self(1_000_002_001);
996 }
997 #[doc = "Generated from 'VK_KHR_display'"]
998 impl ObjectType {
999     pub const DISPLAY_KHR: Self = Self(1_000_002_000);
1000 }
1001 #[doc = "Generated from 'VK_KHR_display'"]
1002 impl ObjectType {
1003     pub const DISPLAY_MODE_KHR: Self = Self(1_000_002_001);
1004 }
1005 impl KhrDisplaySwapchainFn {
name() -> &'static ::std::ffi::CStr1006     pub fn name() -> &'static ::std::ffi::CStr {
1007         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_display_swapchain\0")
1008             .expect("Wrong extension string")
1009     }
1010     pub const SPEC_VERSION: u32 = 10u32;
1011 }
1012 #[allow(non_camel_case_types)]
1013 pub type PFN_vkCreateSharedSwapchainsKHR = unsafe extern "system" fn(
1014     device: Device,
1015     swapchain_count: u32,
1016     p_create_infos: *const SwapchainCreateInfoKHR,
1017     p_allocator: *const AllocationCallbacks,
1018     p_swapchains: *mut SwapchainKHR,
1019 ) -> Result;
1020 #[derive(Clone)]
1021 pub struct KhrDisplaySwapchainFn {
1022     pub create_shared_swapchains_khr: PFN_vkCreateSharedSwapchainsKHR,
1023 }
1024 unsafe impl Send for KhrDisplaySwapchainFn {}
1025 unsafe impl Sync for KhrDisplaySwapchainFn {}
1026 impl KhrDisplaySwapchainFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1027     pub fn load<F>(mut _f: F) -> Self
1028     where
1029         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1030     {
1031         KhrDisplaySwapchainFn {
1032             create_shared_swapchains_khr: unsafe {
1033                 unsafe extern "system" fn create_shared_swapchains_khr(
1034                     _device: Device,
1035                     _swapchain_count: u32,
1036                     _p_create_infos: *const SwapchainCreateInfoKHR,
1037                     _p_allocator: *const AllocationCallbacks,
1038                     _p_swapchains: *mut SwapchainKHR,
1039                 ) -> Result {
1040                     panic!(concat!(
1041                         "Unable to load ",
1042                         stringify!(create_shared_swapchains_khr)
1043                     ))
1044                 }
1045                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1046                     b"vkCreateSharedSwapchainsKHR\0",
1047                 );
1048                 let val = _f(cname);
1049                 if val.is_null() {
1050                     create_shared_swapchains_khr
1051                 } else {
1052                     ::std::mem::transmute(val)
1053                 }
1054             },
1055         }
1056     }
1057     #[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, ) -> Result1058     pub unsafe fn create_shared_swapchains_khr(
1059         &self,
1060         device: Device,
1061         swapchain_count: u32,
1062         p_create_infos: *const SwapchainCreateInfoKHR,
1063         p_allocator: *const AllocationCallbacks,
1064         p_swapchains: *mut SwapchainKHR,
1065     ) -> Result {
1066         (self.create_shared_swapchains_khr)(
1067             device,
1068             swapchain_count,
1069             p_create_infos,
1070             p_allocator,
1071             p_swapchains,
1072         )
1073     }
1074 }
1075 #[doc = "Generated from 'VK_KHR_display_swapchain'"]
1076 impl StructureType {
1077     pub const DISPLAY_PRESENT_INFO_KHR: Self = Self(1_000_003_000);
1078 }
1079 #[doc = "Generated from 'VK_KHR_display_swapchain'"]
1080 impl Result {
1081     pub const ERROR_INCOMPATIBLE_DISPLAY_KHR: Self = Self(-1000003001);
1082 }
1083 impl KhrXlibSurfaceFn {
name() -> &'static ::std::ffi::CStr1084     pub fn name() -> &'static ::std::ffi::CStr {
1085         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_xlib_surface\0")
1086             .expect("Wrong extension string")
1087     }
1088     pub const SPEC_VERSION: u32 = 6u32;
1089 }
1090 #[allow(non_camel_case_types)]
1091 pub type PFN_vkCreateXlibSurfaceKHR = unsafe extern "system" fn(
1092     instance: Instance,
1093     p_create_info: *const XlibSurfaceCreateInfoKHR,
1094     p_allocator: *const AllocationCallbacks,
1095     p_surface: *mut SurfaceKHR,
1096 ) -> Result;
1097 #[allow(non_camel_case_types)]
1098 pub type PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR = unsafe extern "system" fn(
1099     physical_device: PhysicalDevice,
1100     queue_family_index: u32,
1101     dpy: *mut Display,
1102     visual_id: VisualID,
1103 ) -> Bool32;
1104 #[derive(Clone)]
1105 pub struct KhrXlibSurfaceFn {
1106     pub create_xlib_surface_khr: PFN_vkCreateXlibSurfaceKHR,
1107     pub get_physical_device_xlib_presentation_support_khr:
1108         PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR,
1109 }
1110 unsafe impl Send for KhrXlibSurfaceFn {}
1111 unsafe impl Sync for KhrXlibSurfaceFn {}
1112 impl KhrXlibSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1113     pub fn load<F>(mut _f: F) -> Self
1114     where
1115         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1116     {
1117         KhrXlibSurfaceFn {
1118             create_xlib_surface_khr: unsafe {
1119                 unsafe extern "system" fn create_xlib_surface_khr(
1120                     _instance: Instance,
1121                     _p_create_info: *const XlibSurfaceCreateInfoKHR,
1122                     _p_allocator: *const AllocationCallbacks,
1123                     _p_surface: *mut SurfaceKHR,
1124                 ) -> Result {
1125                     panic!(concat!(
1126                         "Unable to load ",
1127                         stringify!(create_xlib_surface_khr)
1128                     ))
1129                 }
1130                 let cname =
1131                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateXlibSurfaceKHR\0");
1132                 let val = _f(cname);
1133                 if val.is_null() {
1134                     create_xlib_surface_khr
1135                 } else {
1136                     ::std::mem::transmute(val)
1137                 }
1138             },
1139             get_physical_device_xlib_presentation_support_khr: unsafe {
1140                 unsafe extern "system" fn get_physical_device_xlib_presentation_support_khr(
1141                     _physical_device: PhysicalDevice,
1142                     _queue_family_index: u32,
1143                     _dpy: *mut Display,
1144                     _visual_id: VisualID,
1145                 ) -> Bool32 {
1146                     panic!(concat!(
1147                         "Unable to load ",
1148                         stringify!(get_physical_device_xlib_presentation_support_khr)
1149                     ))
1150                 }
1151                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1152                     b"vkGetPhysicalDeviceXlibPresentationSupportKHR\0",
1153                 );
1154                 let val = _f(cname);
1155                 if val.is_null() {
1156                     get_physical_device_xlib_presentation_support_khr
1157                 } else {
1158                     ::std::mem::transmute(val)
1159                 }
1160             },
1161         }
1162     }
1163     #[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, ) -> Result1164     pub unsafe fn create_xlib_surface_khr(
1165         &self,
1166         instance: Instance,
1167         p_create_info: *const XlibSurfaceCreateInfoKHR,
1168         p_allocator: *const AllocationCallbacks,
1169         p_surface: *mut SurfaceKHR,
1170     ) -> Result {
1171         (self.create_xlib_surface_khr)(instance, p_create_info, p_allocator, p_surface)
1172     }
1173     #[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, ) -> Bool321174     pub unsafe fn get_physical_device_xlib_presentation_support_khr(
1175         &self,
1176         physical_device: PhysicalDevice,
1177         queue_family_index: u32,
1178         dpy: *mut Display,
1179         visual_id: VisualID,
1180     ) -> Bool32 {
1181         (self.get_physical_device_xlib_presentation_support_khr)(
1182             physical_device,
1183             queue_family_index,
1184             dpy,
1185             visual_id,
1186         )
1187     }
1188 }
1189 #[doc = "Generated from 'VK_KHR_xlib_surface'"]
1190 impl StructureType {
1191     pub const XLIB_SURFACE_CREATE_INFO_KHR: Self = Self(1_000_004_000);
1192 }
1193 impl KhrXcbSurfaceFn {
name() -> &'static ::std::ffi::CStr1194     pub fn name() -> &'static ::std::ffi::CStr {
1195         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_xcb_surface\0")
1196             .expect("Wrong extension string")
1197     }
1198     pub const SPEC_VERSION: u32 = 6u32;
1199 }
1200 #[allow(non_camel_case_types)]
1201 pub type PFN_vkCreateXcbSurfaceKHR = unsafe extern "system" fn(
1202     instance: Instance,
1203     p_create_info: *const XcbSurfaceCreateInfoKHR,
1204     p_allocator: *const AllocationCallbacks,
1205     p_surface: *mut SurfaceKHR,
1206 ) -> Result;
1207 #[allow(non_camel_case_types)]
1208 pub type PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR = unsafe extern "system" fn(
1209     physical_device: PhysicalDevice,
1210     queue_family_index: u32,
1211     connection: *mut xcb_connection_t,
1212     visual_id: xcb_visualid_t,
1213 ) -> Bool32;
1214 #[derive(Clone)]
1215 pub struct KhrXcbSurfaceFn {
1216     pub create_xcb_surface_khr: PFN_vkCreateXcbSurfaceKHR,
1217     pub get_physical_device_xcb_presentation_support_khr:
1218         PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR,
1219 }
1220 unsafe impl Send for KhrXcbSurfaceFn {}
1221 unsafe impl Sync for KhrXcbSurfaceFn {}
1222 impl KhrXcbSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1223     pub fn load<F>(mut _f: F) -> Self
1224     where
1225         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1226     {
1227         KhrXcbSurfaceFn {
1228             create_xcb_surface_khr: unsafe {
1229                 unsafe extern "system" fn create_xcb_surface_khr(
1230                     _instance: Instance,
1231                     _p_create_info: *const XcbSurfaceCreateInfoKHR,
1232                     _p_allocator: *const AllocationCallbacks,
1233                     _p_surface: *mut SurfaceKHR,
1234                 ) -> Result {
1235                     panic!(concat!(
1236                         "Unable to load ",
1237                         stringify!(create_xcb_surface_khr)
1238                     ))
1239                 }
1240                 let cname =
1241                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateXcbSurfaceKHR\0");
1242                 let val = _f(cname);
1243                 if val.is_null() {
1244                     create_xcb_surface_khr
1245                 } else {
1246                     ::std::mem::transmute(val)
1247                 }
1248             },
1249             get_physical_device_xcb_presentation_support_khr: unsafe {
1250                 unsafe extern "system" fn get_physical_device_xcb_presentation_support_khr(
1251                     _physical_device: PhysicalDevice,
1252                     _queue_family_index: u32,
1253                     _connection: *mut xcb_connection_t,
1254                     _visual_id: xcb_visualid_t,
1255                 ) -> Bool32 {
1256                     panic!(concat!(
1257                         "Unable to load ",
1258                         stringify!(get_physical_device_xcb_presentation_support_khr)
1259                     ))
1260                 }
1261                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1262                     b"vkGetPhysicalDeviceXcbPresentationSupportKHR\0",
1263                 );
1264                 let val = _f(cname);
1265                 if val.is_null() {
1266                     get_physical_device_xcb_presentation_support_khr
1267                 } else {
1268                     ::std::mem::transmute(val)
1269                 }
1270             },
1271         }
1272     }
1273     #[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, ) -> Result1274     pub unsafe fn create_xcb_surface_khr(
1275         &self,
1276         instance: Instance,
1277         p_create_info: *const XcbSurfaceCreateInfoKHR,
1278         p_allocator: *const AllocationCallbacks,
1279         p_surface: *mut SurfaceKHR,
1280     ) -> Result {
1281         (self.create_xcb_surface_khr)(instance, p_create_info, p_allocator, p_surface)
1282     }
1283     #[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, ) -> Bool321284     pub unsafe fn get_physical_device_xcb_presentation_support_khr(
1285         &self,
1286         physical_device: PhysicalDevice,
1287         queue_family_index: u32,
1288         connection: *mut xcb_connection_t,
1289         visual_id: xcb_visualid_t,
1290     ) -> Bool32 {
1291         (self.get_physical_device_xcb_presentation_support_khr)(
1292             physical_device,
1293             queue_family_index,
1294             connection,
1295             visual_id,
1296         )
1297     }
1298 }
1299 #[doc = "Generated from 'VK_KHR_xcb_surface'"]
1300 impl StructureType {
1301     pub const XCB_SURFACE_CREATE_INFO_KHR: Self = Self(1_000_005_000);
1302 }
1303 impl KhrWaylandSurfaceFn {
name() -> &'static ::std::ffi::CStr1304     pub fn name() -> &'static ::std::ffi::CStr {
1305         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_wayland_surface\0")
1306             .expect("Wrong extension string")
1307     }
1308     pub const SPEC_VERSION: u32 = 6u32;
1309 }
1310 #[allow(non_camel_case_types)]
1311 pub type PFN_vkCreateWaylandSurfaceKHR = unsafe extern "system" fn(
1312     instance: Instance,
1313     p_create_info: *const WaylandSurfaceCreateInfoKHR,
1314     p_allocator: *const AllocationCallbacks,
1315     p_surface: *mut SurfaceKHR,
1316 ) -> Result;
1317 #[allow(non_camel_case_types)]
1318 pub type PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR = unsafe extern "system" fn(
1319     physical_device: PhysicalDevice,
1320     queue_family_index: u32,
1321     display: *mut wl_display,
1322 )
1323     -> Bool32;
1324 #[derive(Clone)]
1325 pub struct KhrWaylandSurfaceFn {
1326     pub create_wayland_surface_khr: PFN_vkCreateWaylandSurfaceKHR,
1327     pub get_physical_device_wayland_presentation_support_khr:
1328         PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR,
1329 }
1330 unsafe impl Send for KhrWaylandSurfaceFn {}
1331 unsafe impl Sync for KhrWaylandSurfaceFn {}
1332 impl KhrWaylandSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1333     pub fn load<F>(mut _f: F) -> Self
1334     where
1335         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1336     {
1337         KhrWaylandSurfaceFn {
1338             create_wayland_surface_khr: unsafe {
1339                 unsafe extern "system" fn create_wayland_surface_khr(
1340                     _instance: Instance,
1341                     _p_create_info: *const WaylandSurfaceCreateInfoKHR,
1342                     _p_allocator: *const AllocationCallbacks,
1343                     _p_surface: *mut SurfaceKHR,
1344                 ) -> Result {
1345                     panic!(concat!(
1346                         "Unable to load ",
1347                         stringify!(create_wayland_surface_khr)
1348                     ))
1349                 }
1350                 let cname =
1351                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateWaylandSurfaceKHR\0");
1352                 let val = _f(cname);
1353                 if val.is_null() {
1354                     create_wayland_surface_khr
1355                 } else {
1356                     ::std::mem::transmute(val)
1357                 }
1358             },
1359             get_physical_device_wayland_presentation_support_khr: unsafe {
1360                 unsafe extern "system" fn get_physical_device_wayland_presentation_support_khr(
1361                     _physical_device: PhysicalDevice,
1362                     _queue_family_index: u32,
1363                     _display: *mut wl_display,
1364                 ) -> Bool32 {
1365                     panic!(concat!(
1366                         "Unable to load ",
1367                         stringify!(get_physical_device_wayland_presentation_support_khr)
1368                     ))
1369                 }
1370                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1371                     b"vkGetPhysicalDeviceWaylandPresentationSupportKHR\0",
1372                 );
1373                 let val = _f(cname);
1374                 if val.is_null() {
1375                     get_physical_device_wayland_presentation_support_khr
1376                 } else {
1377                     ::std::mem::transmute(val)
1378                 }
1379             },
1380         }
1381     }
1382     #[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, ) -> Result1383     pub unsafe fn create_wayland_surface_khr(
1384         &self,
1385         instance: Instance,
1386         p_create_info: *const WaylandSurfaceCreateInfoKHR,
1387         p_allocator: *const AllocationCallbacks,
1388         p_surface: *mut SurfaceKHR,
1389     ) -> Result {
1390         (self.create_wayland_surface_khr)(instance, p_create_info, p_allocator, p_surface)
1391     }
1392     #[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, ) -> Bool321393     pub unsafe fn get_physical_device_wayland_presentation_support_khr(
1394         &self,
1395         physical_device: PhysicalDevice,
1396         queue_family_index: u32,
1397         display: *mut wl_display,
1398     ) -> Bool32 {
1399         (self.get_physical_device_wayland_presentation_support_khr)(
1400             physical_device,
1401             queue_family_index,
1402             display,
1403         )
1404     }
1405 }
1406 #[doc = "Generated from 'VK_KHR_wayland_surface'"]
1407 impl StructureType {
1408     pub const WAYLAND_SURFACE_CREATE_INFO_KHR: Self = Self(1_000_006_000);
1409 }
1410 impl KhrMirSurfaceFn {
name() -> &'static ::std::ffi::CStr1411     pub fn name() -> &'static ::std::ffi::CStr {
1412         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_mir_surface\0")
1413             .expect("Wrong extension string")
1414     }
1415     pub const SPEC_VERSION: u32 = 4u32;
1416 }
1417 #[derive(Clone)]
1418 pub struct KhrMirSurfaceFn {}
1419 unsafe impl Send for KhrMirSurfaceFn {}
1420 unsafe impl Sync for KhrMirSurfaceFn {}
1421 impl KhrMirSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1422     pub fn load<F>(mut _f: F) -> Self
1423     where
1424         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1425     {
1426         KhrMirSurfaceFn {}
1427     }
1428 }
1429 impl KhrAndroidSurfaceFn {
name() -> &'static ::std::ffi::CStr1430     pub fn name() -> &'static ::std::ffi::CStr {
1431         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_android_surface\0")
1432             .expect("Wrong extension string")
1433     }
1434     pub const SPEC_VERSION: u32 = 6u32;
1435 }
1436 #[allow(non_camel_case_types)]
1437 pub type PFN_vkCreateAndroidSurfaceKHR = unsafe extern "system" fn(
1438     instance: Instance,
1439     p_create_info: *const AndroidSurfaceCreateInfoKHR,
1440     p_allocator: *const AllocationCallbacks,
1441     p_surface: *mut SurfaceKHR,
1442 ) -> Result;
1443 #[derive(Clone)]
1444 pub struct KhrAndroidSurfaceFn {
1445     pub create_android_surface_khr: PFN_vkCreateAndroidSurfaceKHR,
1446 }
1447 unsafe impl Send for KhrAndroidSurfaceFn {}
1448 unsafe impl Sync for KhrAndroidSurfaceFn {}
1449 impl KhrAndroidSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1450     pub fn load<F>(mut _f: F) -> Self
1451     where
1452         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1453     {
1454         KhrAndroidSurfaceFn {
1455             create_android_surface_khr: unsafe {
1456                 unsafe extern "system" fn create_android_surface_khr(
1457                     _instance: Instance,
1458                     _p_create_info: *const AndroidSurfaceCreateInfoKHR,
1459                     _p_allocator: *const AllocationCallbacks,
1460                     _p_surface: *mut SurfaceKHR,
1461                 ) -> Result {
1462                     panic!(concat!(
1463                         "Unable to load ",
1464                         stringify!(create_android_surface_khr)
1465                     ))
1466                 }
1467                 let cname =
1468                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateAndroidSurfaceKHR\0");
1469                 let val = _f(cname);
1470                 if val.is_null() {
1471                     create_android_surface_khr
1472                 } else {
1473                     ::std::mem::transmute(val)
1474                 }
1475             },
1476         }
1477     }
1478     #[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, ) -> Result1479     pub unsafe fn create_android_surface_khr(
1480         &self,
1481         instance: Instance,
1482         p_create_info: *const AndroidSurfaceCreateInfoKHR,
1483         p_allocator: *const AllocationCallbacks,
1484         p_surface: *mut SurfaceKHR,
1485     ) -> Result {
1486         (self.create_android_surface_khr)(instance, p_create_info, p_allocator, p_surface)
1487     }
1488 }
1489 #[doc = "Generated from 'VK_KHR_android_surface'"]
1490 impl StructureType {
1491     pub const ANDROID_SURFACE_CREATE_INFO_KHR: Self = Self(1_000_008_000);
1492 }
1493 impl KhrWin32SurfaceFn {
name() -> &'static ::std::ffi::CStr1494     pub fn name() -> &'static ::std::ffi::CStr {
1495         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_win32_surface\0")
1496             .expect("Wrong extension string")
1497     }
1498     pub const SPEC_VERSION: u32 = 6u32;
1499 }
1500 #[allow(non_camel_case_types)]
1501 pub type PFN_vkCreateWin32SurfaceKHR = unsafe extern "system" fn(
1502     instance: Instance,
1503     p_create_info: *const Win32SurfaceCreateInfoKHR,
1504     p_allocator: *const AllocationCallbacks,
1505     p_surface: *mut SurfaceKHR,
1506 ) -> Result;
1507 #[allow(non_camel_case_types)]
1508 pub type PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR =
1509     unsafe extern "system" fn(physical_device: PhysicalDevice, queue_family_index: u32) -> Bool32;
1510 #[derive(Clone)]
1511 pub struct KhrWin32SurfaceFn {
1512     pub create_win32_surface_khr: PFN_vkCreateWin32SurfaceKHR,
1513     pub get_physical_device_win32_presentation_support_khr:
1514         PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR,
1515 }
1516 unsafe impl Send for KhrWin32SurfaceFn {}
1517 unsafe impl Sync for KhrWin32SurfaceFn {}
1518 impl KhrWin32SurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1519     pub fn load<F>(mut _f: F) -> Self
1520     where
1521         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1522     {
1523         KhrWin32SurfaceFn {
1524             create_win32_surface_khr: unsafe {
1525                 unsafe extern "system" fn create_win32_surface_khr(
1526                     _instance: Instance,
1527                     _p_create_info: *const Win32SurfaceCreateInfoKHR,
1528                     _p_allocator: *const AllocationCallbacks,
1529                     _p_surface: *mut SurfaceKHR,
1530                 ) -> Result {
1531                     panic!(concat!(
1532                         "Unable to load ",
1533                         stringify!(create_win32_surface_khr)
1534                     ))
1535                 }
1536                 let cname =
1537                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateWin32SurfaceKHR\0");
1538                 let val = _f(cname);
1539                 if val.is_null() {
1540                     create_win32_surface_khr
1541                 } else {
1542                     ::std::mem::transmute(val)
1543                 }
1544             },
1545             get_physical_device_win32_presentation_support_khr: unsafe {
1546                 unsafe extern "system" fn get_physical_device_win32_presentation_support_khr(
1547                     _physical_device: PhysicalDevice,
1548                     _queue_family_index: u32,
1549                 ) -> Bool32 {
1550                     panic!(concat!(
1551                         "Unable to load ",
1552                         stringify!(get_physical_device_win32_presentation_support_khr)
1553                     ))
1554                 }
1555                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1556                     b"vkGetPhysicalDeviceWin32PresentationSupportKHR\0",
1557                 );
1558                 let val = _f(cname);
1559                 if val.is_null() {
1560                     get_physical_device_win32_presentation_support_khr
1561                 } else {
1562                     ::std::mem::transmute(val)
1563                 }
1564             },
1565         }
1566     }
1567     #[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, ) -> Result1568     pub unsafe fn create_win32_surface_khr(
1569         &self,
1570         instance: Instance,
1571         p_create_info: *const Win32SurfaceCreateInfoKHR,
1572         p_allocator: *const AllocationCallbacks,
1573         p_surface: *mut SurfaceKHR,
1574     ) -> Result {
1575         (self.create_win32_surface_khr)(instance, p_create_info, p_allocator, p_surface)
1576     }
1577     #[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, ) -> Bool321578     pub unsafe fn get_physical_device_win32_presentation_support_khr(
1579         &self,
1580         physical_device: PhysicalDevice,
1581         queue_family_index: u32,
1582     ) -> Bool32 {
1583         (self.get_physical_device_win32_presentation_support_khr)(
1584             physical_device,
1585             queue_family_index,
1586         )
1587     }
1588 }
1589 #[doc = "Generated from 'VK_KHR_win32_surface'"]
1590 impl StructureType {
1591     pub const WIN32_SURFACE_CREATE_INFO_KHR: Self = Self(1_000_009_000);
1592 }
1593 impl AndroidNativeBufferFn {
name() -> &'static ::std::ffi::CStr1594     pub fn name() -> &'static ::std::ffi::CStr {
1595         ::std::ffi::CStr::from_bytes_with_nul(b"VK_ANDROID_native_buffer\0")
1596             .expect("Wrong extension string")
1597     }
1598     pub const SPEC_VERSION: u32 = 8u32;
1599 }
1600 #[allow(non_camel_case_types)]
1601 pub type PFN_vkGetSwapchainGrallocUsageANDROID = unsafe extern "system" fn(
1602     device: Device,
1603     format: Format,
1604     image_usage: ImageUsageFlags,
1605     gralloc_usage: *mut c_int,
1606 ) -> Result;
1607 #[allow(non_camel_case_types)]
1608 pub type PFN_vkAcquireImageANDROID = unsafe extern "system" fn(
1609     device: Device,
1610     image: Image,
1611     native_fence_fd: c_int,
1612     semaphore: Semaphore,
1613     fence: Fence,
1614 ) -> Result;
1615 #[allow(non_camel_case_types)]
1616 pub type PFN_vkQueueSignalReleaseImageANDROID = unsafe extern "system" fn(
1617     queue: Queue,
1618     wait_semaphore_count: u32,
1619     p_wait_semaphores: *const Semaphore,
1620     image: Image,
1621     p_native_fence_fd: *mut c_int,
1622 ) -> Result;
1623 #[allow(non_camel_case_types)]
1624 pub type PFN_vkGetSwapchainGrallocUsage2ANDROID = unsafe extern "system" fn(
1625     device: Device,
1626     format: Format,
1627     image_usage: ImageUsageFlags,
1628     swapchain_image_usage: SwapchainImageUsageFlagsANDROID,
1629     gralloc_consumer_usage: *mut u64,
1630     gralloc_producer_usage: *mut u64,
1631 ) -> Result;
1632 #[derive(Clone)]
1633 pub struct AndroidNativeBufferFn {
1634     pub get_swapchain_gralloc_usage_android: PFN_vkGetSwapchainGrallocUsageANDROID,
1635     pub acquire_image_android: PFN_vkAcquireImageANDROID,
1636     pub queue_signal_release_image_android: PFN_vkQueueSignalReleaseImageANDROID,
1637     pub get_swapchain_gralloc_usage2_android: PFN_vkGetSwapchainGrallocUsage2ANDROID,
1638 }
1639 unsafe impl Send for AndroidNativeBufferFn {}
1640 unsafe impl Sync for AndroidNativeBufferFn {}
1641 impl AndroidNativeBufferFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1642     pub fn load<F>(mut _f: F) -> Self
1643     where
1644         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1645     {
1646         AndroidNativeBufferFn {
1647             get_swapchain_gralloc_usage_android: unsafe {
1648                 unsafe extern "system" fn get_swapchain_gralloc_usage_android(
1649                     _device: Device,
1650                     _format: Format,
1651                     _image_usage: ImageUsageFlags,
1652                     _gralloc_usage: *mut c_int,
1653                 ) -> Result {
1654                     panic!(concat!(
1655                         "Unable to load ",
1656                         stringify!(get_swapchain_gralloc_usage_android)
1657                     ))
1658                 }
1659                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1660                     b"vkGetSwapchainGrallocUsageANDROID\0",
1661                 );
1662                 let val = _f(cname);
1663                 if val.is_null() {
1664                     get_swapchain_gralloc_usage_android
1665                 } else {
1666                     ::std::mem::transmute(val)
1667                 }
1668             },
1669             acquire_image_android: unsafe {
1670                 unsafe extern "system" fn acquire_image_android(
1671                     _device: Device,
1672                     _image: Image,
1673                     _native_fence_fd: c_int,
1674                     _semaphore: Semaphore,
1675                     _fence: Fence,
1676                 ) -> Result {
1677                     panic!(concat!(
1678                         "Unable to load ",
1679                         stringify!(acquire_image_android)
1680                     ))
1681                 }
1682                 let cname =
1683                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireImageANDROID\0");
1684                 let val = _f(cname);
1685                 if val.is_null() {
1686                     acquire_image_android
1687                 } else {
1688                     ::std::mem::transmute(val)
1689                 }
1690             },
1691             queue_signal_release_image_android: unsafe {
1692                 unsafe extern "system" fn queue_signal_release_image_android(
1693                     _queue: Queue,
1694                     _wait_semaphore_count: u32,
1695                     _p_wait_semaphores: *const Semaphore,
1696                     _image: Image,
1697                     _p_native_fence_fd: *mut c_int,
1698                 ) -> Result {
1699                     panic!(concat!(
1700                         "Unable to load ",
1701                         stringify!(queue_signal_release_image_android)
1702                     ))
1703                 }
1704                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1705                     b"vkQueueSignalReleaseImageANDROID\0",
1706                 );
1707                 let val = _f(cname);
1708                 if val.is_null() {
1709                     queue_signal_release_image_android
1710                 } else {
1711                     ::std::mem::transmute(val)
1712                 }
1713             },
1714             get_swapchain_gralloc_usage2_android: unsafe {
1715                 unsafe extern "system" fn get_swapchain_gralloc_usage2_android(
1716                     _device: Device,
1717                     _format: Format,
1718                     _image_usage: ImageUsageFlags,
1719                     _swapchain_image_usage: SwapchainImageUsageFlagsANDROID,
1720                     _gralloc_consumer_usage: *mut u64,
1721                     _gralloc_producer_usage: *mut u64,
1722                 ) -> Result {
1723                     panic!(concat!(
1724                         "Unable to load ",
1725                         stringify!(get_swapchain_gralloc_usage2_android)
1726                     ))
1727                 }
1728                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1729                     b"vkGetSwapchainGrallocUsage2ANDROID\0",
1730                 );
1731                 let val = _f(cname);
1732                 if val.is_null() {
1733                     get_swapchain_gralloc_usage2_android
1734                 } else {
1735                     ::std::mem::transmute(val)
1736                 }
1737             },
1738         }
1739     }
1740     #[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, ) -> Result1741     pub unsafe fn get_swapchain_gralloc_usage_android(
1742         &self,
1743         device: Device,
1744         format: Format,
1745         image_usage: ImageUsageFlags,
1746         gralloc_usage: *mut c_int,
1747     ) -> Result {
1748         (self.get_swapchain_gralloc_usage_android)(device, format, image_usage, gralloc_usage)
1749     }
1750     #[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, ) -> Result1751     pub unsafe fn acquire_image_android(
1752         &self,
1753         device: Device,
1754         image: Image,
1755         native_fence_fd: c_int,
1756         semaphore: Semaphore,
1757         fence: Fence,
1758     ) -> Result {
1759         (self.acquire_image_android)(device, image, native_fence_fd, semaphore, fence)
1760     }
1761     #[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, ) -> Result1762     pub unsafe fn queue_signal_release_image_android(
1763         &self,
1764         queue: Queue,
1765         wait_semaphore_count: u32,
1766         p_wait_semaphores: *const Semaphore,
1767         image: Image,
1768         p_native_fence_fd: *mut c_int,
1769     ) -> Result {
1770         (self.queue_signal_release_image_android)(
1771             queue,
1772             wait_semaphore_count,
1773             p_wait_semaphores,
1774             image,
1775             p_native_fence_fd,
1776         )
1777     }
1778     #[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, ) -> Result1779     pub unsafe fn get_swapchain_gralloc_usage2_android(
1780         &self,
1781         device: Device,
1782         format: Format,
1783         image_usage: ImageUsageFlags,
1784         swapchain_image_usage: SwapchainImageUsageFlagsANDROID,
1785         gralloc_consumer_usage: *mut u64,
1786         gralloc_producer_usage: *mut u64,
1787     ) -> Result {
1788         (self.get_swapchain_gralloc_usage2_android)(
1789             device,
1790             format,
1791             image_usage,
1792             swapchain_image_usage,
1793             gralloc_consumer_usage,
1794             gralloc_producer_usage,
1795         )
1796     }
1797 }
1798 #[doc = "Generated from 'VK_ANDROID_native_buffer'"]
1799 impl StructureType {
1800     pub const NATIVE_BUFFER_ANDROID: Self = Self(1_000_010_000);
1801 }
1802 #[doc = "Generated from 'VK_ANDROID_native_buffer'"]
1803 impl StructureType {
1804     pub const SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID: Self = Self(1_000_010_001);
1805 }
1806 #[doc = "Generated from 'VK_ANDROID_native_buffer'"]
1807 impl StructureType {
1808     pub const PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID: Self = Self(1_000_010_002);
1809 }
1810 impl ExtDebugReportFn {
name() -> &'static ::std::ffi::CStr1811     pub fn name() -> &'static ::std::ffi::CStr {
1812         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_debug_report\0")
1813             .expect("Wrong extension string")
1814     }
1815     pub const SPEC_VERSION: u32 = 10u32;
1816 }
1817 #[allow(non_camel_case_types)]
1818 pub type PFN_vkCreateDebugReportCallbackEXT = unsafe extern "system" fn(
1819     instance: Instance,
1820     p_create_info: *const DebugReportCallbackCreateInfoEXT,
1821     p_allocator: *const AllocationCallbacks,
1822     p_callback: *mut DebugReportCallbackEXT,
1823 ) -> Result;
1824 #[allow(non_camel_case_types)]
1825 pub type PFN_vkDestroyDebugReportCallbackEXT = unsafe extern "system" fn(
1826     instance: Instance,
1827     callback: DebugReportCallbackEXT,
1828     p_allocator: *const AllocationCallbacks,
1829 );
1830 #[allow(non_camel_case_types)]
1831 pub type PFN_vkDebugReportMessageEXT = unsafe extern "system" fn(
1832     instance: Instance,
1833     flags: DebugReportFlagsEXT,
1834     object_type: DebugReportObjectTypeEXT,
1835     object: u64,
1836     location: usize,
1837     message_code: i32,
1838     p_layer_prefix: *const c_char,
1839     p_message: *const c_char,
1840 );
1841 #[derive(Clone)]
1842 pub struct ExtDebugReportFn {
1843     pub create_debug_report_callback_ext: PFN_vkCreateDebugReportCallbackEXT,
1844     pub destroy_debug_report_callback_ext: PFN_vkDestroyDebugReportCallbackEXT,
1845     pub debug_report_message_ext: PFN_vkDebugReportMessageEXT,
1846 }
1847 unsafe impl Send for ExtDebugReportFn {}
1848 unsafe impl Sync for ExtDebugReportFn {}
1849 impl ExtDebugReportFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1850     pub fn load<F>(mut _f: F) -> Self
1851     where
1852         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1853     {
1854         ExtDebugReportFn {
1855             create_debug_report_callback_ext: unsafe {
1856                 unsafe extern "system" fn create_debug_report_callback_ext(
1857                     _instance: Instance,
1858                     _p_create_info: *const DebugReportCallbackCreateInfoEXT,
1859                     _p_allocator: *const AllocationCallbacks,
1860                     _p_callback: *mut DebugReportCallbackEXT,
1861                 ) -> Result {
1862                     panic!(concat!(
1863                         "Unable to load ",
1864                         stringify!(create_debug_report_callback_ext)
1865                     ))
1866                 }
1867                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1868                     b"vkCreateDebugReportCallbackEXT\0",
1869                 );
1870                 let val = _f(cname);
1871                 if val.is_null() {
1872                     create_debug_report_callback_ext
1873                 } else {
1874                     ::std::mem::transmute(val)
1875                 }
1876             },
1877             destroy_debug_report_callback_ext: unsafe {
1878                 unsafe extern "system" fn destroy_debug_report_callback_ext(
1879                     _instance: Instance,
1880                     _callback: DebugReportCallbackEXT,
1881                     _p_allocator: *const AllocationCallbacks,
1882                 ) {
1883                     panic!(concat!(
1884                         "Unable to load ",
1885                         stringify!(destroy_debug_report_callback_ext)
1886                     ))
1887                 }
1888                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1889                     b"vkDestroyDebugReportCallbackEXT\0",
1890                 );
1891                 let val = _f(cname);
1892                 if val.is_null() {
1893                     destroy_debug_report_callback_ext
1894                 } else {
1895                     ::std::mem::transmute(val)
1896                 }
1897             },
1898             debug_report_message_ext: unsafe {
1899                 unsafe extern "system" fn debug_report_message_ext(
1900                     _instance: Instance,
1901                     _flags: DebugReportFlagsEXT,
1902                     _object_type: DebugReportObjectTypeEXT,
1903                     _object: u64,
1904                     _location: usize,
1905                     _message_code: i32,
1906                     _p_layer_prefix: *const c_char,
1907                     _p_message: *const c_char,
1908                 ) {
1909                     panic!(concat!(
1910                         "Unable to load ",
1911                         stringify!(debug_report_message_ext)
1912                     ))
1913                 }
1914                 let cname =
1915                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDebugReportMessageEXT\0");
1916                 let val = _f(cname);
1917                 if val.is_null() {
1918                     debug_report_message_ext
1919                 } else {
1920                     ::std::mem::transmute(val)
1921                 }
1922             },
1923         }
1924     }
1925     #[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, ) -> Result1926     pub unsafe fn create_debug_report_callback_ext(
1927         &self,
1928         instance: Instance,
1929         p_create_info: *const DebugReportCallbackCreateInfoEXT,
1930         p_allocator: *const AllocationCallbacks,
1931         p_callback: *mut DebugReportCallbackEXT,
1932     ) -> Result {
1933         (self.create_debug_report_callback_ext)(instance, p_create_info, p_allocator, p_callback)
1934     }
1935     #[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, )1936     pub unsafe fn destroy_debug_report_callback_ext(
1937         &self,
1938         instance: Instance,
1939         callback: DebugReportCallbackEXT,
1940         p_allocator: *const AllocationCallbacks,
1941     ) {
1942         (self.destroy_debug_report_callback_ext)(instance, callback, p_allocator)
1943     }
1944     #[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, )1945     pub unsafe fn debug_report_message_ext(
1946         &self,
1947         instance: Instance,
1948         flags: DebugReportFlagsEXT,
1949         object_type: DebugReportObjectTypeEXT,
1950         object: u64,
1951         location: usize,
1952         message_code: i32,
1953         p_layer_prefix: *const c_char,
1954         p_message: *const c_char,
1955     ) {
1956         (self.debug_report_message_ext)(
1957             instance,
1958             flags,
1959             object_type,
1960             object,
1961             location,
1962             message_code,
1963             p_layer_prefix,
1964             p_message,
1965         )
1966     }
1967 }
1968 #[doc = "Generated from 'VK_EXT_debug_report'"]
1969 impl StructureType {
1970     pub const DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT: Self = Self(1_000_011_000);
1971 }
1972 #[doc = "Generated from 'VK_EXT_debug_report'"]
1973 impl StructureType {
1974     pub const DEBUG_REPORT_CREATE_INFO_EXT: Self = Self::DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT;
1975 }
1976 #[doc = "Generated from 'VK_EXT_debug_report'"]
1977 impl Result {
1978     pub const ERROR_VALIDATION_FAILED_EXT: Self = Self(-1000011001);
1979 }
1980 #[doc = "Generated from 'VK_EXT_debug_report'"]
1981 impl ObjectType {
1982     pub const DEBUG_REPORT_CALLBACK_EXT: Self = Self(1_000_011_000);
1983 }
1984 #[doc = "Generated from 'VK_EXT_debug_report'"]
1985 impl DebugReportObjectTypeEXT {
1986     pub const SAMPLER_YCBCR_CONVERSION: Self = Self(1_000_156_000);
1987 }
1988 #[doc = "Generated from 'VK_EXT_debug_report'"]
1989 impl DebugReportObjectTypeEXT {
1990     pub const DESCRIPTOR_UPDATE_TEMPLATE: Self = Self(1_000_085_000);
1991 }
1992 impl NvGlslShaderFn {
name() -> &'static ::std::ffi::CStr1993     pub fn name() -> &'static ::std::ffi::CStr {
1994         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_glsl_shader\0")
1995             .expect("Wrong extension string")
1996     }
1997     pub const SPEC_VERSION: u32 = 1u32;
1998 }
1999 #[derive(Clone)]
2000 pub struct NvGlslShaderFn {}
2001 unsafe impl Send for NvGlslShaderFn {}
2002 unsafe impl Sync for NvGlslShaderFn {}
2003 impl NvGlslShaderFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2004     pub fn load<F>(mut _f: F) -> Self
2005     where
2006         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2007     {
2008         NvGlslShaderFn {}
2009     }
2010 }
2011 #[doc = "Generated from 'VK_NV_glsl_shader'"]
2012 impl Result {
2013     pub const ERROR_INVALID_SHADER_NV: Self = Self(-1000012000);
2014 }
2015 impl ExtDepthRangeUnrestrictedFn {
name() -> &'static ::std::ffi::CStr2016     pub fn name() -> &'static ::std::ffi::CStr {
2017         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_depth_range_unrestricted\0")
2018             .expect("Wrong extension string")
2019     }
2020     pub const SPEC_VERSION: u32 = 1u32;
2021 }
2022 #[derive(Clone)]
2023 pub struct ExtDepthRangeUnrestrictedFn {}
2024 unsafe impl Send for ExtDepthRangeUnrestrictedFn {}
2025 unsafe impl Sync for ExtDepthRangeUnrestrictedFn {}
2026 impl ExtDepthRangeUnrestrictedFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2027     pub fn load<F>(mut _f: F) -> Self
2028     where
2029         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2030     {
2031         ExtDepthRangeUnrestrictedFn {}
2032     }
2033 }
2034 impl KhrSamplerMirrorClampToEdgeFn {
name() -> &'static ::std::ffi::CStr2035     pub fn name() -> &'static ::std::ffi::CStr {
2036         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_sampler_mirror_clamp_to_edge\0")
2037             .expect("Wrong extension string")
2038     }
2039     pub const SPEC_VERSION: u32 = 3u32;
2040 }
2041 #[derive(Clone)]
2042 pub struct KhrSamplerMirrorClampToEdgeFn {}
2043 unsafe impl Send for KhrSamplerMirrorClampToEdgeFn {}
2044 unsafe impl Sync for KhrSamplerMirrorClampToEdgeFn {}
2045 impl KhrSamplerMirrorClampToEdgeFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2046     pub fn load<F>(mut _f: F) -> Self
2047     where
2048         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2049     {
2050         KhrSamplerMirrorClampToEdgeFn {}
2051     }
2052 }
2053 #[doc = "Generated from 'VK_KHR_sampler_mirror_clamp_to_edge'"]
2054 impl SamplerAddressMode {
2055     pub const MIRROR_CLAMP_TO_EDGE: Self = Self(4);
2056 }
2057 #[doc = "Generated from 'VK_KHR_sampler_mirror_clamp_to_edge'"]
2058 impl SamplerAddressMode {
2059     pub const MIRROR_CLAMP_TO_EDGE_KHR: Self = Self::MIRROR_CLAMP_TO_EDGE;
2060 }
2061 impl ImgFilterCubicFn {
name() -> &'static ::std::ffi::CStr2062     pub fn name() -> &'static ::std::ffi::CStr {
2063         ::std::ffi::CStr::from_bytes_with_nul(b"VK_IMG_filter_cubic\0")
2064             .expect("Wrong extension string")
2065     }
2066     pub const SPEC_VERSION: u32 = 1u32;
2067 }
2068 #[derive(Clone)]
2069 pub struct ImgFilterCubicFn {}
2070 unsafe impl Send for ImgFilterCubicFn {}
2071 unsafe impl Sync for ImgFilterCubicFn {}
2072 impl ImgFilterCubicFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2073     pub fn load<F>(mut _f: F) -> Self
2074     where
2075         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2076     {
2077         ImgFilterCubicFn {}
2078     }
2079 }
2080 #[doc = "Generated from 'VK_IMG_filter_cubic'"]
2081 impl Filter {
2082     pub const CUBIC_IMG: Self = Self(1_000_015_000);
2083 }
2084 #[doc = "Generated from 'VK_IMG_filter_cubic'"]
2085 impl FormatFeatureFlags {
2086     pub const SAMPLED_IMAGE_FILTER_CUBIC_IMG: Self = Self(0b10_0000_0000_0000);
2087 }
2088 impl AmdExtension17Fn {
name() -> &'static ::std::ffi::CStr2089     pub fn name() -> &'static ::std::ffi::CStr {
2090         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_17\0")
2091             .expect("Wrong extension string")
2092     }
2093     pub const SPEC_VERSION: u32 = 0u32;
2094 }
2095 #[derive(Clone)]
2096 pub struct AmdExtension17Fn {}
2097 unsafe impl Send for AmdExtension17Fn {}
2098 unsafe impl Sync for AmdExtension17Fn {}
2099 impl AmdExtension17Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2100     pub fn load<F>(mut _f: F) -> Self
2101     where
2102         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2103     {
2104         AmdExtension17Fn {}
2105     }
2106 }
2107 impl AmdExtension18Fn {
name() -> &'static ::std::ffi::CStr2108     pub fn name() -> &'static ::std::ffi::CStr {
2109         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_18\0")
2110             .expect("Wrong extension string")
2111     }
2112     pub const SPEC_VERSION: u32 = 0u32;
2113 }
2114 #[derive(Clone)]
2115 pub struct AmdExtension18Fn {}
2116 unsafe impl Send for AmdExtension18Fn {}
2117 unsafe impl Sync for AmdExtension18Fn {}
2118 impl AmdExtension18Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2119     pub fn load<F>(mut _f: F) -> Self
2120     where
2121         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2122     {
2123         AmdExtension18Fn {}
2124     }
2125 }
2126 impl AmdRasterizationOrderFn {
name() -> &'static ::std::ffi::CStr2127     pub fn name() -> &'static ::std::ffi::CStr {
2128         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_rasterization_order\0")
2129             .expect("Wrong extension string")
2130     }
2131     pub const SPEC_VERSION: u32 = 1u32;
2132 }
2133 #[derive(Clone)]
2134 pub struct AmdRasterizationOrderFn {}
2135 unsafe impl Send for AmdRasterizationOrderFn {}
2136 unsafe impl Sync for AmdRasterizationOrderFn {}
2137 impl AmdRasterizationOrderFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2138     pub fn load<F>(mut _f: F) -> Self
2139     where
2140         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2141     {
2142         AmdRasterizationOrderFn {}
2143     }
2144 }
2145 #[doc = "Generated from 'VK_AMD_rasterization_order'"]
2146 impl StructureType {
2147     pub const PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD: Self = Self(1_000_018_000);
2148 }
2149 impl AmdExtension20Fn {
name() -> &'static ::std::ffi::CStr2150     pub fn name() -> &'static ::std::ffi::CStr {
2151         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_20\0")
2152             .expect("Wrong extension string")
2153     }
2154     pub const SPEC_VERSION: u32 = 0u32;
2155 }
2156 #[derive(Clone)]
2157 pub struct AmdExtension20Fn {}
2158 unsafe impl Send for AmdExtension20Fn {}
2159 unsafe impl Sync for AmdExtension20Fn {}
2160 impl AmdExtension20Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2161     pub fn load<F>(mut _f: F) -> Self
2162     where
2163         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2164     {
2165         AmdExtension20Fn {}
2166     }
2167 }
2168 impl AmdShaderTrinaryMinmaxFn {
name() -> &'static ::std::ffi::CStr2169     pub fn name() -> &'static ::std::ffi::CStr {
2170         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_shader_trinary_minmax\0")
2171             .expect("Wrong extension string")
2172     }
2173     pub const SPEC_VERSION: u32 = 1u32;
2174 }
2175 #[derive(Clone)]
2176 pub struct AmdShaderTrinaryMinmaxFn {}
2177 unsafe impl Send for AmdShaderTrinaryMinmaxFn {}
2178 unsafe impl Sync for AmdShaderTrinaryMinmaxFn {}
2179 impl AmdShaderTrinaryMinmaxFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2180     pub fn load<F>(mut _f: F) -> Self
2181     where
2182         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2183     {
2184         AmdShaderTrinaryMinmaxFn {}
2185     }
2186 }
2187 impl AmdShaderExplicitVertexParameterFn {
name() -> &'static ::std::ffi::CStr2188     pub fn name() -> &'static ::std::ffi::CStr {
2189         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_shader_explicit_vertex_parameter\0")
2190             .expect("Wrong extension string")
2191     }
2192     pub const SPEC_VERSION: u32 = 1u32;
2193 }
2194 #[derive(Clone)]
2195 pub struct AmdShaderExplicitVertexParameterFn {}
2196 unsafe impl Send for AmdShaderExplicitVertexParameterFn {}
2197 unsafe impl Sync for AmdShaderExplicitVertexParameterFn {}
2198 impl AmdShaderExplicitVertexParameterFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2199     pub fn load<F>(mut _f: F) -> Self
2200     where
2201         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2202     {
2203         AmdShaderExplicitVertexParameterFn {}
2204     }
2205 }
2206 impl ExtDebugMarkerFn {
name() -> &'static ::std::ffi::CStr2207     pub fn name() -> &'static ::std::ffi::CStr {
2208         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_debug_marker\0")
2209             .expect("Wrong extension string")
2210     }
2211     pub const SPEC_VERSION: u32 = 4u32;
2212 }
2213 #[allow(non_camel_case_types)]
2214 pub type PFN_vkDebugMarkerSetObjectTagEXT = unsafe extern "system" fn(
2215     device: Device,
2216     p_tag_info: *const DebugMarkerObjectTagInfoEXT,
2217 ) -> Result;
2218 #[allow(non_camel_case_types)]
2219 pub type PFN_vkDebugMarkerSetObjectNameEXT = unsafe extern "system" fn(
2220     device: Device,
2221     p_name_info: *const DebugMarkerObjectNameInfoEXT,
2222 ) -> Result;
2223 #[allow(non_camel_case_types)]
2224 pub type PFN_vkCmdDebugMarkerBeginEXT = unsafe extern "system" fn(
2225     command_buffer: CommandBuffer,
2226     p_marker_info: *const DebugMarkerMarkerInfoEXT,
2227 );
2228 #[allow(non_camel_case_types)]
2229 pub type PFN_vkCmdDebugMarkerEndEXT = unsafe extern "system" fn(command_buffer: CommandBuffer);
2230 #[allow(non_camel_case_types)]
2231 pub type PFN_vkCmdDebugMarkerInsertEXT = unsafe extern "system" fn(
2232     command_buffer: CommandBuffer,
2233     p_marker_info: *const DebugMarkerMarkerInfoEXT,
2234 );
2235 #[derive(Clone)]
2236 pub struct ExtDebugMarkerFn {
2237     pub debug_marker_set_object_tag_ext: PFN_vkDebugMarkerSetObjectTagEXT,
2238     pub debug_marker_set_object_name_ext: PFN_vkDebugMarkerSetObjectNameEXT,
2239     pub cmd_debug_marker_begin_ext: PFN_vkCmdDebugMarkerBeginEXT,
2240     pub cmd_debug_marker_end_ext: PFN_vkCmdDebugMarkerEndEXT,
2241     pub cmd_debug_marker_insert_ext: PFN_vkCmdDebugMarkerInsertEXT,
2242 }
2243 unsafe impl Send for ExtDebugMarkerFn {}
2244 unsafe impl Sync for ExtDebugMarkerFn {}
2245 impl ExtDebugMarkerFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2246     pub fn load<F>(mut _f: F) -> Self
2247     where
2248         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2249     {
2250         ExtDebugMarkerFn {
2251             debug_marker_set_object_tag_ext: unsafe {
2252                 unsafe extern "system" fn debug_marker_set_object_tag_ext(
2253                     _device: Device,
2254                     _p_tag_info: *const DebugMarkerObjectTagInfoEXT,
2255                 ) -> Result {
2256                     panic!(concat!(
2257                         "Unable to load ",
2258                         stringify!(debug_marker_set_object_tag_ext)
2259                     ))
2260                 }
2261                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2262                     b"vkDebugMarkerSetObjectTagEXT\0",
2263                 );
2264                 let val = _f(cname);
2265                 if val.is_null() {
2266                     debug_marker_set_object_tag_ext
2267                 } else {
2268                     ::std::mem::transmute(val)
2269                 }
2270             },
2271             debug_marker_set_object_name_ext: unsafe {
2272                 unsafe extern "system" fn debug_marker_set_object_name_ext(
2273                     _device: Device,
2274                     _p_name_info: *const DebugMarkerObjectNameInfoEXT,
2275                 ) -> Result {
2276                     panic!(concat!(
2277                         "Unable to load ",
2278                         stringify!(debug_marker_set_object_name_ext)
2279                     ))
2280                 }
2281                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2282                     b"vkDebugMarkerSetObjectNameEXT\0",
2283                 );
2284                 let val = _f(cname);
2285                 if val.is_null() {
2286                     debug_marker_set_object_name_ext
2287                 } else {
2288                     ::std::mem::transmute(val)
2289                 }
2290             },
2291             cmd_debug_marker_begin_ext: unsafe {
2292                 unsafe extern "system" fn cmd_debug_marker_begin_ext(
2293                     _command_buffer: CommandBuffer,
2294                     _p_marker_info: *const DebugMarkerMarkerInfoEXT,
2295                 ) {
2296                     panic!(concat!(
2297                         "Unable to load ",
2298                         stringify!(cmd_debug_marker_begin_ext)
2299                     ))
2300                 }
2301                 let cname =
2302                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerBeginEXT\0");
2303                 let val = _f(cname);
2304                 if val.is_null() {
2305                     cmd_debug_marker_begin_ext
2306                 } else {
2307                     ::std::mem::transmute(val)
2308                 }
2309             },
2310             cmd_debug_marker_end_ext: unsafe {
2311                 unsafe extern "system" fn cmd_debug_marker_end_ext(_command_buffer: CommandBuffer) {
2312                     panic!(concat!(
2313                         "Unable to load ",
2314                         stringify!(cmd_debug_marker_end_ext)
2315                     ))
2316                 }
2317                 let cname =
2318                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerEndEXT\0");
2319                 let val = _f(cname);
2320                 if val.is_null() {
2321                     cmd_debug_marker_end_ext
2322                 } else {
2323                     ::std::mem::transmute(val)
2324                 }
2325             },
2326             cmd_debug_marker_insert_ext: unsafe {
2327                 unsafe extern "system" fn cmd_debug_marker_insert_ext(
2328                     _command_buffer: CommandBuffer,
2329                     _p_marker_info: *const DebugMarkerMarkerInfoEXT,
2330                 ) {
2331                     panic!(concat!(
2332                         "Unable to load ",
2333                         stringify!(cmd_debug_marker_insert_ext)
2334                     ))
2335                 }
2336                 let cname =
2337                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerInsertEXT\0");
2338                 let val = _f(cname);
2339                 if val.is_null() {
2340                     cmd_debug_marker_insert_ext
2341                 } else {
2342                     ::std::mem::transmute(val)
2343                 }
2344             },
2345         }
2346     }
2347     #[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, ) -> Result2348     pub unsafe fn debug_marker_set_object_tag_ext(
2349         &self,
2350         device: Device,
2351         p_tag_info: *const DebugMarkerObjectTagInfoEXT,
2352     ) -> Result {
2353         (self.debug_marker_set_object_tag_ext)(device, p_tag_info)
2354     }
2355     #[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, ) -> Result2356     pub unsafe fn debug_marker_set_object_name_ext(
2357         &self,
2358         device: Device,
2359         p_name_info: *const DebugMarkerObjectNameInfoEXT,
2360     ) -> Result {
2361         (self.debug_marker_set_object_name_ext)(device, p_name_info)
2362     }
2363     #[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, )2364     pub unsafe fn cmd_debug_marker_begin_ext(
2365         &self,
2366         command_buffer: CommandBuffer,
2367         p_marker_info: *const DebugMarkerMarkerInfoEXT,
2368     ) {
2369         (self.cmd_debug_marker_begin_ext)(command_buffer, p_marker_info)
2370     }
2371     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdDebugMarkerEndEXT.html>"]
cmd_debug_marker_end_ext(&self, command_buffer: CommandBuffer)2372     pub unsafe fn cmd_debug_marker_end_ext(&self, command_buffer: CommandBuffer) {
2373         (self.cmd_debug_marker_end_ext)(command_buffer)
2374     }
2375     #[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, )2376     pub unsafe fn cmd_debug_marker_insert_ext(
2377         &self,
2378         command_buffer: CommandBuffer,
2379         p_marker_info: *const DebugMarkerMarkerInfoEXT,
2380     ) {
2381         (self.cmd_debug_marker_insert_ext)(command_buffer, p_marker_info)
2382     }
2383 }
2384 #[doc = "Generated from 'VK_EXT_debug_marker'"]
2385 impl StructureType {
2386     pub const DEBUG_MARKER_OBJECT_NAME_INFO_EXT: Self = Self(1_000_022_000);
2387 }
2388 #[doc = "Generated from 'VK_EXT_debug_marker'"]
2389 impl StructureType {
2390     pub const DEBUG_MARKER_OBJECT_TAG_INFO_EXT: Self = Self(1_000_022_001);
2391 }
2392 #[doc = "Generated from 'VK_EXT_debug_marker'"]
2393 impl StructureType {
2394     pub const DEBUG_MARKER_MARKER_INFO_EXT: Self = Self(1_000_022_002);
2395 }
2396 impl KhrVideoQueueFn {
name() -> &'static ::std::ffi::CStr2397     pub fn name() -> &'static ::std::ffi::CStr {
2398         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_video_queue\0")
2399             .expect("Wrong extension string")
2400     }
2401     pub const SPEC_VERSION: u32 = 2u32;
2402 }
2403 #[allow(non_camel_case_types)]
2404 pub type PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR = unsafe extern "system" fn(
2405     physical_device: PhysicalDevice,
2406     p_video_profile: *const VideoProfileKHR,
2407     p_capabilities: *mut VideoCapabilitiesKHR,
2408 ) -> Result;
2409 #[allow(non_camel_case_types)]
2410 pub type PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR = unsafe extern "system" fn(
2411     physical_device: PhysicalDevice,
2412     p_video_format_info: *const PhysicalDeviceVideoFormatInfoKHR,
2413     p_video_format_property_count: *mut u32,
2414     p_video_format_properties: *mut VideoFormatPropertiesKHR,
2415 ) -> Result;
2416 #[allow(non_camel_case_types)]
2417 pub type PFN_vkCreateVideoSessionKHR = unsafe extern "system" fn(
2418     device: Device,
2419     p_create_info: *const VideoSessionCreateInfoKHR,
2420     p_allocator: *const AllocationCallbacks,
2421     p_video_session: *mut VideoSessionKHR,
2422 ) -> Result;
2423 #[allow(non_camel_case_types)]
2424 pub type PFN_vkDestroyVideoSessionKHR = unsafe extern "system" fn(
2425     device: Device,
2426     video_session: VideoSessionKHR,
2427     p_allocator: *const AllocationCallbacks,
2428 );
2429 #[allow(non_camel_case_types)]
2430 pub type PFN_vkGetVideoSessionMemoryRequirementsKHR = unsafe extern "system" fn(
2431     device: Device,
2432     video_session: VideoSessionKHR,
2433     p_video_session_memory_requirements_count: *mut u32,
2434     p_video_session_memory_requirements: *mut VideoGetMemoryPropertiesKHR,
2435 ) -> Result;
2436 #[allow(non_camel_case_types)]
2437 pub type PFN_vkBindVideoSessionMemoryKHR = unsafe extern "system" fn(
2438     device: Device,
2439     video_session: VideoSessionKHR,
2440     video_session_bind_memory_count: u32,
2441     p_video_session_bind_memories: *const VideoBindMemoryKHR,
2442 ) -> Result;
2443 #[allow(non_camel_case_types)]
2444 pub type PFN_vkCreateVideoSessionParametersKHR = unsafe extern "system" fn(
2445     device: Device,
2446     p_create_info: *const VideoSessionParametersCreateInfoKHR,
2447     p_allocator: *const AllocationCallbacks,
2448     p_video_session_parameters: *mut VideoSessionParametersKHR,
2449 ) -> Result;
2450 #[allow(non_camel_case_types)]
2451 pub type PFN_vkUpdateVideoSessionParametersKHR = unsafe extern "system" fn(
2452     device: Device,
2453     video_session_parameters: VideoSessionParametersKHR,
2454     p_update_info: *const VideoSessionParametersUpdateInfoKHR,
2455 ) -> Result;
2456 #[allow(non_camel_case_types)]
2457 pub type PFN_vkDestroyVideoSessionParametersKHR = unsafe extern "system" fn(
2458     device: Device,
2459     video_session_parameters: VideoSessionParametersKHR,
2460     p_allocator: *const AllocationCallbacks,
2461 );
2462 #[allow(non_camel_case_types)]
2463 pub type PFN_vkCmdBeginVideoCodingKHR = unsafe extern "system" fn(
2464     command_buffer: CommandBuffer,
2465     p_begin_info: *const VideoBeginCodingInfoKHR,
2466 );
2467 #[allow(non_camel_case_types)]
2468 pub type PFN_vkCmdEndVideoCodingKHR = unsafe extern "system" fn(
2469     command_buffer: CommandBuffer,
2470     p_end_coding_info: *const VideoEndCodingInfoKHR,
2471 );
2472 #[allow(non_camel_case_types)]
2473 pub type PFN_vkCmdControlVideoCodingKHR = unsafe extern "system" fn(
2474     command_buffer: CommandBuffer,
2475     p_coding_control_info: *const VideoCodingControlInfoKHR,
2476 );
2477 #[derive(Clone)]
2478 pub struct KhrVideoQueueFn {
2479     pub get_physical_device_video_capabilities_khr: PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR,
2480     pub get_physical_device_video_format_properties_khr:
2481         PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR,
2482     pub create_video_session_khr: PFN_vkCreateVideoSessionKHR,
2483     pub destroy_video_session_khr: PFN_vkDestroyVideoSessionKHR,
2484     pub get_video_session_memory_requirements_khr: PFN_vkGetVideoSessionMemoryRequirementsKHR,
2485     pub bind_video_session_memory_khr: PFN_vkBindVideoSessionMemoryKHR,
2486     pub create_video_session_parameters_khr: PFN_vkCreateVideoSessionParametersKHR,
2487     pub update_video_session_parameters_khr: PFN_vkUpdateVideoSessionParametersKHR,
2488     pub destroy_video_session_parameters_khr: PFN_vkDestroyVideoSessionParametersKHR,
2489     pub cmd_begin_video_coding_khr: PFN_vkCmdBeginVideoCodingKHR,
2490     pub cmd_end_video_coding_khr: PFN_vkCmdEndVideoCodingKHR,
2491     pub cmd_control_video_coding_khr: PFN_vkCmdControlVideoCodingKHR,
2492 }
2493 unsafe impl Send for KhrVideoQueueFn {}
2494 unsafe impl Sync for KhrVideoQueueFn {}
2495 impl KhrVideoQueueFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2496     pub fn load<F>(mut _f: F) -> Self
2497     where
2498         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2499     {
2500         KhrVideoQueueFn {
2501             get_physical_device_video_capabilities_khr: unsafe {
2502                 unsafe extern "system" fn get_physical_device_video_capabilities_khr(
2503                     _physical_device: PhysicalDevice,
2504                     _p_video_profile: *const VideoProfileKHR,
2505                     _p_capabilities: *mut VideoCapabilitiesKHR,
2506                 ) -> Result {
2507                     panic!(concat!(
2508                         "Unable to load ",
2509                         stringify!(get_physical_device_video_capabilities_khr)
2510                     ))
2511                 }
2512                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2513                     b"vkGetPhysicalDeviceVideoCapabilitiesKHR\0",
2514                 );
2515                 let val = _f(cname);
2516                 if val.is_null() {
2517                     get_physical_device_video_capabilities_khr
2518                 } else {
2519                     ::std::mem::transmute(val)
2520                 }
2521             },
2522             get_physical_device_video_format_properties_khr: unsafe {
2523                 unsafe extern "system" fn get_physical_device_video_format_properties_khr(
2524                     _physical_device: PhysicalDevice,
2525                     _p_video_format_info: *const PhysicalDeviceVideoFormatInfoKHR,
2526                     _p_video_format_property_count: *mut u32,
2527                     _p_video_format_properties: *mut VideoFormatPropertiesKHR,
2528                 ) -> Result {
2529                     panic!(concat!(
2530                         "Unable to load ",
2531                         stringify!(get_physical_device_video_format_properties_khr)
2532                     ))
2533                 }
2534                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2535                     b"vkGetPhysicalDeviceVideoFormatPropertiesKHR\0",
2536                 );
2537                 let val = _f(cname);
2538                 if val.is_null() {
2539                     get_physical_device_video_format_properties_khr
2540                 } else {
2541                     ::std::mem::transmute(val)
2542                 }
2543             },
2544             create_video_session_khr: unsafe {
2545                 unsafe extern "system" fn create_video_session_khr(
2546                     _device: Device,
2547                     _p_create_info: *const VideoSessionCreateInfoKHR,
2548                     _p_allocator: *const AllocationCallbacks,
2549                     _p_video_session: *mut VideoSessionKHR,
2550                 ) -> Result {
2551                     panic!(concat!(
2552                         "Unable to load ",
2553                         stringify!(create_video_session_khr)
2554                     ))
2555                 }
2556                 let cname =
2557                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateVideoSessionKHR\0");
2558                 let val = _f(cname);
2559                 if val.is_null() {
2560                     create_video_session_khr
2561                 } else {
2562                     ::std::mem::transmute(val)
2563                 }
2564             },
2565             destroy_video_session_khr: unsafe {
2566                 unsafe extern "system" fn destroy_video_session_khr(
2567                     _device: Device,
2568                     _video_session: VideoSessionKHR,
2569                     _p_allocator: *const AllocationCallbacks,
2570                 ) {
2571                     panic!(concat!(
2572                         "Unable to load ",
2573                         stringify!(destroy_video_session_khr)
2574                     ))
2575                 }
2576                 let cname =
2577                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroyVideoSessionKHR\0");
2578                 let val = _f(cname);
2579                 if val.is_null() {
2580                     destroy_video_session_khr
2581                 } else {
2582                     ::std::mem::transmute(val)
2583                 }
2584             },
2585             get_video_session_memory_requirements_khr: unsafe {
2586                 unsafe extern "system" fn get_video_session_memory_requirements_khr(
2587                     _device: Device,
2588                     _video_session: VideoSessionKHR,
2589                     _p_video_session_memory_requirements_count: *mut u32,
2590                     _p_video_session_memory_requirements: *mut VideoGetMemoryPropertiesKHR,
2591                 ) -> Result {
2592                     panic!(concat!(
2593                         "Unable to load ",
2594                         stringify!(get_video_session_memory_requirements_khr)
2595                     ))
2596                 }
2597                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2598                     b"vkGetVideoSessionMemoryRequirementsKHR\0",
2599                 );
2600                 let val = _f(cname);
2601                 if val.is_null() {
2602                     get_video_session_memory_requirements_khr
2603                 } else {
2604                     ::std::mem::transmute(val)
2605                 }
2606             },
2607             bind_video_session_memory_khr: unsafe {
2608                 unsafe extern "system" fn bind_video_session_memory_khr(
2609                     _device: Device,
2610                     _video_session: VideoSessionKHR,
2611                     _video_session_bind_memory_count: u32,
2612                     _p_video_session_bind_memories: *const VideoBindMemoryKHR,
2613                 ) -> Result {
2614                     panic!(concat!(
2615                         "Unable to load ",
2616                         stringify!(bind_video_session_memory_khr)
2617                     ))
2618                 }
2619                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2620                     b"vkBindVideoSessionMemoryKHR\0",
2621                 );
2622                 let val = _f(cname);
2623                 if val.is_null() {
2624                     bind_video_session_memory_khr
2625                 } else {
2626                     ::std::mem::transmute(val)
2627                 }
2628             },
2629             create_video_session_parameters_khr: unsafe {
2630                 unsafe extern "system" fn create_video_session_parameters_khr(
2631                     _device: Device,
2632                     _p_create_info: *const VideoSessionParametersCreateInfoKHR,
2633                     _p_allocator: *const AllocationCallbacks,
2634                     _p_video_session_parameters: *mut VideoSessionParametersKHR,
2635                 ) -> Result {
2636                     panic!(concat!(
2637                         "Unable to load ",
2638                         stringify!(create_video_session_parameters_khr)
2639                     ))
2640                 }
2641                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2642                     b"vkCreateVideoSessionParametersKHR\0",
2643                 );
2644                 let val = _f(cname);
2645                 if val.is_null() {
2646                     create_video_session_parameters_khr
2647                 } else {
2648                     ::std::mem::transmute(val)
2649                 }
2650             },
2651             update_video_session_parameters_khr: unsafe {
2652                 unsafe extern "system" fn update_video_session_parameters_khr(
2653                     _device: Device,
2654                     _video_session_parameters: VideoSessionParametersKHR,
2655                     _p_update_info: *const VideoSessionParametersUpdateInfoKHR,
2656                 ) -> Result {
2657                     panic!(concat!(
2658                         "Unable to load ",
2659                         stringify!(update_video_session_parameters_khr)
2660                     ))
2661                 }
2662                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2663                     b"vkUpdateVideoSessionParametersKHR\0",
2664                 );
2665                 let val = _f(cname);
2666                 if val.is_null() {
2667                     update_video_session_parameters_khr
2668                 } else {
2669                     ::std::mem::transmute(val)
2670                 }
2671             },
2672             destroy_video_session_parameters_khr: unsafe {
2673                 unsafe extern "system" fn destroy_video_session_parameters_khr(
2674                     _device: Device,
2675                     _video_session_parameters: VideoSessionParametersKHR,
2676                     _p_allocator: *const AllocationCallbacks,
2677                 ) {
2678                     panic!(concat!(
2679                         "Unable to load ",
2680                         stringify!(destroy_video_session_parameters_khr)
2681                     ))
2682                 }
2683                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2684                     b"vkDestroyVideoSessionParametersKHR\0",
2685                 );
2686                 let val = _f(cname);
2687                 if val.is_null() {
2688                     destroy_video_session_parameters_khr
2689                 } else {
2690                     ::std::mem::transmute(val)
2691                 }
2692             },
2693             cmd_begin_video_coding_khr: unsafe {
2694                 unsafe extern "system" fn cmd_begin_video_coding_khr(
2695                     _command_buffer: CommandBuffer,
2696                     _p_begin_info: *const VideoBeginCodingInfoKHR,
2697                 ) {
2698                     panic!(concat!(
2699                         "Unable to load ",
2700                         stringify!(cmd_begin_video_coding_khr)
2701                     ))
2702                 }
2703                 let cname =
2704                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginVideoCodingKHR\0");
2705                 let val = _f(cname);
2706                 if val.is_null() {
2707                     cmd_begin_video_coding_khr
2708                 } else {
2709                     ::std::mem::transmute(val)
2710                 }
2711             },
2712             cmd_end_video_coding_khr: unsafe {
2713                 unsafe extern "system" fn cmd_end_video_coding_khr(
2714                     _command_buffer: CommandBuffer,
2715                     _p_end_coding_info: *const VideoEndCodingInfoKHR,
2716                 ) {
2717                     panic!(concat!(
2718                         "Unable to load ",
2719                         stringify!(cmd_end_video_coding_khr)
2720                     ))
2721                 }
2722                 let cname =
2723                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdEndVideoCodingKHR\0");
2724                 let val = _f(cname);
2725                 if val.is_null() {
2726                     cmd_end_video_coding_khr
2727                 } else {
2728                     ::std::mem::transmute(val)
2729                 }
2730             },
2731             cmd_control_video_coding_khr: unsafe {
2732                 unsafe extern "system" fn cmd_control_video_coding_khr(
2733                     _command_buffer: CommandBuffer,
2734                     _p_coding_control_info: *const VideoCodingControlInfoKHR,
2735                 ) {
2736                     panic!(concat!(
2737                         "Unable to load ",
2738                         stringify!(cmd_control_video_coding_khr)
2739                     ))
2740                 }
2741                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2742                     b"vkCmdControlVideoCodingKHR\0",
2743                 );
2744                 let val = _f(cname);
2745                 if val.is_null() {
2746                     cmd_control_video_coding_khr
2747                 } else {
2748                     ::std::mem::transmute(val)
2749                 }
2750             },
2751         }
2752     }
2753     #[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, ) -> Result2754     pub unsafe fn get_physical_device_video_capabilities_khr(
2755         &self,
2756         physical_device: PhysicalDevice,
2757         p_video_profile: *const VideoProfileKHR,
2758         p_capabilities: *mut VideoCapabilitiesKHR,
2759     ) -> Result {
2760         (self.get_physical_device_video_capabilities_khr)(
2761             physical_device,
2762             p_video_profile,
2763             p_capabilities,
2764         )
2765     }
2766     #[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, ) -> Result2767     pub unsafe fn get_physical_device_video_format_properties_khr(
2768         &self,
2769         physical_device: PhysicalDevice,
2770         p_video_format_info: *const PhysicalDeviceVideoFormatInfoKHR,
2771         p_video_format_property_count: *mut u32,
2772         p_video_format_properties: *mut VideoFormatPropertiesKHR,
2773     ) -> Result {
2774         (self.get_physical_device_video_format_properties_khr)(
2775             physical_device,
2776             p_video_format_info,
2777             p_video_format_property_count,
2778             p_video_format_properties,
2779         )
2780     }
2781     #[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, ) -> Result2782     pub unsafe fn create_video_session_khr(
2783         &self,
2784         device: Device,
2785         p_create_info: *const VideoSessionCreateInfoKHR,
2786         p_allocator: *const AllocationCallbacks,
2787         p_video_session: *mut VideoSessionKHR,
2788     ) -> Result {
2789         (self.create_video_session_khr)(device, p_create_info, p_allocator, p_video_session)
2790     }
2791     #[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, )2792     pub unsafe fn destroy_video_session_khr(
2793         &self,
2794         device: Device,
2795         video_session: VideoSessionKHR,
2796         p_allocator: *const AllocationCallbacks,
2797     ) {
2798         (self.destroy_video_session_khr)(device, video_session, p_allocator)
2799     }
2800     #[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, ) -> Result2801     pub unsafe fn get_video_session_memory_requirements_khr(
2802         &self,
2803         device: Device,
2804         video_session: VideoSessionKHR,
2805         p_video_session_memory_requirements_count: *mut u32,
2806         p_video_session_memory_requirements: *mut VideoGetMemoryPropertiesKHR,
2807     ) -> Result {
2808         (self.get_video_session_memory_requirements_khr)(
2809             device,
2810             video_session,
2811             p_video_session_memory_requirements_count,
2812             p_video_session_memory_requirements,
2813         )
2814     }
2815     #[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, ) -> Result2816     pub unsafe fn bind_video_session_memory_khr(
2817         &self,
2818         device: Device,
2819         video_session: VideoSessionKHR,
2820         video_session_bind_memory_count: u32,
2821         p_video_session_bind_memories: *const VideoBindMemoryKHR,
2822     ) -> Result {
2823         (self.bind_video_session_memory_khr)(
2824             device,
2825             video_session,
2826             video_session_bind_memory_count,
2827             p_video_session_bind_memories,
2828         )
2829     }
2830     #[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, ) -> Result2831     pub unsafe fn create_video_session_parameters_khr(
2832         &self,
2833         device: Device,
2834         p_create_info: *const VideoSessionParametersCreateInfoKHR,
2835         p_allocator: *const AllocationCallbacks,
2836         p_video_session_parameters: *mut VideoSessionParametersKHR,
2837     ) -> Result {
2838         (self.create_video_session_parameters_khr)(
2839             device,
2840             p_create_info,
2841             p_allocator,
2842             p_video_session_parameters,
2843         )
2844     }
2845     #[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, ) -> Result2846     pub unsafe fn update_video_session_parameters_khr(
2847         &self,
2848         device: Device,
2849         video_session_parameters: VideoSessionParametersKHR,
2850         p_update_info: *const VideoSessionParametersUpdateInfoKHR,
2851     ) -> Result {
2852         (self.update_video_session_parameters_khr)(device, video_session_parameters, p_update_info)
2853     }
2854     #[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, )2855     pub unsafe fn destroy_video_session_parameters_khr(
2856         &self,
2857         device: Device,
2858         video_session_parameters: VideoSessionParametersKHR,
2859         p_allocator: *const AllocationCallbacks,
2860     ) {
2861         (self.destroy_video_session_parameters_khr)(device, video_session_parameters, p_allocator)
2862     }
2863     #[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, )2864     pub unsafe fn cmd_begin_video_coding_khr(
2865         &self,
2866         command_buffer: CommandBuffer,
2867         p_begin_info: *const VideoBeginCodingInfoKHR,
2868     ) {
2869         (self.cmd_begin_video_coding_khr)(command_buffer, p_begin_info)
2870     }
2871     #[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, )2872     pub unsafe fn cmd_end_video_coding_khr(
2873         &self,
2874         command_buffer: CommandBuffer,
2875         p_end_coding_info: *const VideoEndCodingInfoKHR,
2876     ) {
2877         (self.cmd_end_video_coding_khr)(command_buffer, p_end_coding_info)
2878     }
2879     #[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, )2880     pub unsafe fn cmd_control_video_coding_khr(
2881         &self,
2882         command_buffer: CommandBuffer,
2883         p_coding_control_info: *const VideoCodingControlInfoKHR,
2884     ) {
2885         (self.cmd_control_video_coding_khr)(command_buffer, p_coding_control_info)
2886     }
2887 }
2888 #[doc = "Generated from 'VK_KHR_video_queue'"]
2889 impl StructureType {
2890     pub const VIDEO_PROFILE_KHR: Self = Self(1_000_023_000);
2891 }
2892 #[doc = "Generated from 'VK_KHR_video_queue'"]
2893 impl StructureType {
2894     pub const VIDEO_CAPABILITIES_KHR: Self = Self(1_000_023_001);
2895 }
2896 #[doc = "Generated from 'VK_KHR_video_queue'"]
2897 impl StructureType {
2898     pub const VIDEO_PICTURE_RESOURCE_KHR: Self = Self(1_000_023_002);
2899 }
2900 #[doc = "Generated from 'VK_KHR_video_queue'"]
2901 impl StructureType {
2902     pub const VIDEO_GET_MEMORY_PROPERTIES_KHR: Self = Self(1_000_023_003);
2903 }
2904 #[doc = "Generated from 'VK_KHR_video_queue'"]
2905 impl StructureType {
2906     pub const VIDEO_BIND_MEMORY_KHR: Self = Self(1_000_023_004);
2907 }
2908 #[doc = "Generated from 'VK_KHR_video_queue'"]
2909 impl StructureType {
2910     pub const VIDEO_SESSION_CREATE_INFO_KHR: Self = Self(1_000_023_005);
2911 }
2912 #[doc = "Generated from 'VK_KHR_video_queue'"]
2913 impl StructureType {
2914     pub const VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR: Self = Self(1_000_023_006);
2915 }
2916 #[doc = "Generated from 'VK_KHR_video_queue'"]
2917 impl StructureType {
2918     pub const VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR: Self = Self(1_000_023_007);
2919 }
2920 #[doc = "Generated from 'VK_KHR_video_queue'"]
2921 impl StructureType {
2922     pub const VIDEO_BEGIN_CODING_INFO_KHR: Self = Self(1_000_023_008);
2923 }
2924 #[doc = "Generated from 'VK_KHR_video_queue'"]
2925 impl StructureType {
2926     pub const VIDEO_END_CODING_INFO_KHR: Self = Self(1_000_023_009);
2927 }
2928 #[doc = "Generated from 'VK_KHR_video_queue'"]
2929 impl StructureType {
2930     pub const VIDEO_CODING_CONTROL_INFO_KHR: Self = Self(1_000_023_010);
2931 }
2932 #[doc = "Generated from 'VK_KHR_video_queue'"]
2933 impl StructureType {
2934     pub const VIDEO_REFERENCE_SLOT_KHR: Self = Self(1_000_023_011);
2935 }
2936 #[doc = "Generated from 'VK_KHR_video_queue'"]
2937 impl StructureType {
2938     pub const VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR: Self = Self(1_000_023_012);
2939 }
2940 #[doc = "Generated from 'VK_KHR_video_queue'"]
2941 impl StructureType {
2942     pub const VIDEO_PROFILES_KHR: Self = Self(1_000_023_013);
2943 }
2944 #[doc = "Generated from 'VK_KHR_video_queue'"]
2945 impl StructureType {
2946     pub const PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR: Self = Self(1_000_023_014);
2947 }
2948 #[doc = "Generated from 'VK_KHR_video_queue'"]
2949 impl StructureType {
2950     pub const VIDEO_FORMAT_PROPERTIES_KHR: Self = Self(1_000_023_015);
2951 }
2952 #[doc = "Generated from 'VK_KHR_video_queue'"]
2953 impl ObjectType {
2954     pub const VIDEO_SESSION_KHR: Self = Self(1_000_023_000);
2955 }
2956 #[doc = "Generated from 'VK_KHR_video_queue'"]
2957 impl ObjectType {
2958     pub const VIDEO_SESSION_PARAMETERS_KHR: Self = Self(1_000_023_001);
2959 }
2960 #[doc = "Generated from 'VK_KHR_video_queue'"]
2961 impl QueryType {
2962     pub const RESULT_STATUS_ONLY_KHR: Self = Self(1_000_023_000);
2963 }
2964 #[doc = "Generated from 'VK_KHR_video_queue'"]
2965 impl QueryResultFlags {
2966     pub const WITH_STATUS_KHR: Self = Self(0b1_0000);
2967 }
2968 impl KhrVideoDecodeQueueFn {
name() -> &'static ::std::ffi::CStr2969     pub fn name() -> &'static ::std::ffi::CStr {
2970         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_video_decode_queue\0")
2971             .expect("Wrong extension string")
2972     }
2973     pub const SPEC_VERSION: u32 = 1u32;
2974 }
2975 #[allow(non_camel_case_types)]
2976 pub type PFN_vkCmdDecodeVideoKHR = unsafe extern "system" fn(
2977     command_buffer: CommandBuffer,
2978     p_frame_info: *const VideoDecodeInfoKHR,
2979 );
2980 #[derive(Clone)]
2981 pub struct KhrVideoDecodeQueueFn {
2982     pub cmd_decode_video_khr: PFN_vkCmdDecodeVideoKHR,
2983 }
2984 unsafe impl Send for KhrVideoDecodeQueueFn {}
2985 unsafe impl Sync for KhrVideoDecodeQueueFn {}
2986 impl KhrVideoDecodeQueueFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2987     pub fn load<F>(mut _f: F) -> Self
2988     where
2989         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2990     {
2991         KhrVideoDecodeQueueFn {
2992             cmd_decode_video_khr: unsafe {
2993                 unsafe extern "system" fn cmd_decode_video_khr(
2994                     _command_buffer: CommandBuffer,
2995                     _p_frame_info: *const VideoDecodeInfoKHR,
2996                 ) {
2997                     panic!(concat!("Unable to load ", stringify!(cmd_decode_video_khr)))
2998                 }
2999                 let cname =
3000                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDecodeVideoKHR\0");
3001                 let val = _f(cname);
3002                 if val.is_null() {
3003                     cmd_decode_video_khr
3004                 } else {
3005                     ::std::mem::transmute(val)
3006                 }
3007             },
3008         }
3009     }
3010     #[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, )3011     pub unsafe fn cmd_decode_video_khr(
3012         &self,
3013         command_buffer: CommandBuffer,
3014         p_frame_info: *const VideoDecodeInfoKHR,
3015     ) {
3016         (self.cmd_decode_video_khr)(command_buffer, p_frame_info)
3017     }
3018 }
3019 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
3020 impl StructureType {
3021     pub const VIDEO_DECODE_INFO_KHR: Self = Self(1_000_024_000);
3022 }
3023 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
3024 impl QueueFlags {
3025     pub const VIDEO_DECODE_KHR: Self = Self(0b10_0000);
3026 }
3027 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
3028 impl PipelineStageFlags2KHR {
3029     pub const VIDEO_DECODE: Self = Self(0b100_0000_0000_0000_0000_0000_0000);
3030 }
3031 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
3032 impl AccessFlags2KHR {
3033     pub const VIDEO_DECODE_READ: Self = Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000);
3034 }
3035 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
3036 impl AccessFlags2KHR {
3037     pub const VIDEO_DECODE_WRITE: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000);
3038 }
3039 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
3040 impl BufferUsageFlags {
3041     pub const VIDEO_DECODE_SRC_KHR: Self = Self(0b10_0000_0000_0000);
3042 }
3043 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
3044 impl BufferUsageFlags {
3045     pub const VIDEO_DECODE_DST_KHR: Self = Self(0b100_0000_0000_0000);
3046 }
3047 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
3048 impl ImageUsageFlags {
3049     pub const VIDEO_DECODE_DST_KHR: Self = Self(0b100_0000_0000);
3050 }
3051 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
3052 impl ImageUsageFlags {
3053     pub const VIDEO_DECODE_SRC_KHR: Self = Self(0b1000_0000_0000);
3054 }
3055 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
3056 impl ImageUsageFlags {
3057     pub const VIDEO_DECODE_DPB_KHR: Self = Self(0b1_0000_0000_0000);
3058 }
3059 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
3060 impl FormatFeatureFlags {
3061     pub const VIDEO_DECODE_OUTPUT_KHR: Self = Self(0b10_0000_0000_0000_0000_0000_0000);
3062 }
3063 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
3064 impl FormatFeatureFlags {
3065     pub const VIDEO_DECODE_DPB_KHR: Self = Self(0b100_0000_0000_0000_0000_0000_0000);
3066 }
3067 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
3068 impl ImageLayout {
3069     pub const VIDEO_DECODE_DST_KHR: Self = Self(1_000_024_000);
3070 }
3071 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
3072 impl ImageLayout {
3073     pub const VIDEO_DECODE_SRC_KHR: Self = Self(1_000_024_001);
3074 }
3075 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
3076 impl ImageLayout {
3077     pub const VIDEO_DECODE_DPB_KHR: Self = Self(1_000_024_002);
3078 }
3079 impl AmdGcnShaderFn {
name() -> &'static ::std::ffi::CStr3080     pub fn name() -> &'static ::std::ffi::CStr {
3081         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_gcn_shader\0")
3082             .expect("Wrong extension string")
3083     }
3084     pub const SPEC_VERSION: u32 = 1u32;
3085 }
3086 #[derive(Clone)]
3087 pub struct AmdGcnShaderFn {}
3088 unsafe impl Send for AmdGcnShaderFn {}
3089 unsafe impl Sync for AmdGcnShaderFn {}
3090 impl AmdGcnShaderFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3091     pub fn load<F>(mut _f: F) -> Self
3092     where
3093         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3094     {
3095         AmdGcnShaderFn {}
3096     }
3097 }
3098 impl NvDedicatedAllocationFn {
name() -> &'static ::std::ffi::CStr3099     pub fn name() -> &'static ::std::ffi::CStr {
3100         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_dedicated_allocation\0")
3101             .expect("Wrong extension string")
3102     }
3103     pub const SPEC_VERSION: u32 = 1u32;
3104 }
3105 #[derive(Clone)]
3106 pub struct NvDedicatedAllocationFn {}
3107 unsafe impl Send for NvDedicatedAllocationFn {}
3108 unsafe impl Sync for NvDedicatedAllocationFn {}
3109 impl NvDedicatedAllocationFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3110     pub fn load<F>(mut _f: F) -> Self
3111     where
3112         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3113     {
3114         NvDedicatedAllocationFn {}
3115     }
3116 }
3117 #[doc = "Generated from 'VK_NV_dedicated_allocation'"]
3118 impl StructureType {
3119     pub const DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV: Self = Self(1_000_026_000);
3120 }
3121 #[doc = "Generated from 'VK_NV_dedicated_allocation'"]
3122 impl StructureType {
3123     pub const DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV: Self = Self(1_000_026_001);
3124 }
3125 #[doc = "Generated from 'VK_NV_dedicated_allocation'"]
3126 impl StructureType {
3127     pub const DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV: Self = Self(1_000_026_002);
3128 }
3129 impl ExtExtension28Fn {
name() -> &'static ::std::ffi::CStr3130     pub fn name() -> &'static ::std::ffi::CStr {
3131         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_28\0")
3132             .expect("Wrong extension string")
3133     }
3134     pub const SPEC_VERSION: u32 = 0u32;
3135 }
3136 #[derive(Clone)]
3137 pub struct ExtExtension28Fn {}
3138 unsafe impl Send for ExtExtension28Fn {}
3139 unsafe impl Sync for ExtExtension28Fn {}
3140 impl ExtExtension28Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3141     pub fn load<F>(mut _f: F) -> Self
3142     where
3143         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3144     {
3145         ExtExtension28Fn {}
3146     }
3147 }
3148 impl ExtTransformFeedbackFn {
name() -> &'static ::std::ffi::CStr3149     pub fn name() -> &'static ::std::ffi::CStr {
3150         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_transform_feedback\0")
3151             .expect("Wrong extension string")
3152     }
3153     pub const SPEC_VERSION: u32 = 1u32;
3154 }
3155 #[allow(non_camel_case_types)]
3156 pub type PFN_vkCmdBindTransformFeedbackBuffersEXT = unsafe extern "system" fn(
3157     command_buffer: CommandBuffer,
3158     first_binding: u32,
3159     binding_count: u32,
3160     p_buffers: *const Buffer,
3161     p_offsets: *const DeviceSize,
3162     p_sizes: *const DeviceSize,
3163 );
3164 #[allow(non_camel_case_types)]
3165 pub type PFN_vkCmdBeginTransformFeedbackEXT = unsafe extern "system" fn(
3166     command_buffer: CommandBuffer,
3167     first_counter_buffer: u32,
3168     counter_buffer_count: u32,
3169     p_counter_buffers: *const Buffer,
3170     p_counter_buffer_offsets: *const DeviceSize,
3171 );
3172 #[allow(non_camel_case_types)]
3173 pub type PFN_vkCmdEndTransformFeedbackEXT = unsafe extern "system" fn(
3174     command_buffer: CommandBuffer,
3175     first_counter_buffer: u32,
3176     counter_buffer_count: u32,
3177     p_counter_buffers: *const Buffer,
3178     p_counter_buffer_offsets: *const DeviceSize,
3179 );
3180 #[allow(non_camel_case_types)]
3181 pub type PFN_vkCmdBeginQueryIndexedEXT = unsafe extern "system" fn(
3182     command_buffer: CommandBuffer,
3183     query_pool: QueryPool,
3184     query: u32,
3185     flags: QueryControlFlags,
3186     index: u32,
3187 );
3188 #[allow(non_camel_case_types)]
3189 pub type PFN_vkCmdEndQueryIndexedEXT = unsafe extern "system" fn(
3190     command_buffer: CommandBuffer,
3191     query_pool: QueryPool,
3192     query: u32,
3193     index: u32,
3194 );
3195 #[allow(non_camel_case_types)]
3196 pub type PFN_vkCmdDrawIndirectByteCountEXT = unsafe extern "system" fn(
3197     command_buffer: CommandBuffer,
3198     instance_count: u32,
3199     first_instance: u32,
3200     counter_buffer: Buffer,
3201     counter_buffer_offset: DeviceSize,
3202     counter_offset: u32,
3203     vertex_stride: u32,
3204 );
3205 #[derive(Clone)]
3206 pub struct ExtTransformFeedbackFn {
3207     pub cmd_bind_transform_feedback_buffers_ext: PFN_vkCmdBindTransformFeedbackBuffersEXT,
3208     pub cmd_begin_transform_feedback_ext: PFN_vkCmdBeginTransformFeedbackEXT,
3209     pub cmd_end_transform_feedback_ext: PFN_vkCmdEndTransformFeedbackEXT,
3210     pub cmd_begin_query_indexed_ext: PFN_vkCmdBeginQueryIndexedEXT,
3211     pub cmd_end_query_indexed_ext: PFN_vkCmdEndQueryIndexedEXT,
3212     pub cmd_draw_indirect_byte_count_ext: PFN_vkCmdDrawIndirectByteCountEXT,
3213 }
3214 unsafe impl Send for ExtTransformFeedbackFn {}
3215 unsafe impl Sync for ExtTransformFeedbackFn {}
3216 impl ExtTransformFeedbackFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3217     pub fn load<F>(mut _f: F) -> Self
3218     where
3219         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3220     {
3221         ExtTransformFeedbackFn {
3222             cmd_bind_transform_feedback_buffers_ext: unsafe {
3223                 unsafe extern "system" fn cmd_bind_transform_feedback_buffers_ext(
3224                     _command_buffer: CommandBuffer,
3225                     _first_binding: u32,
3226                     _binding_count: u32,
3227                     _p_buffers: *const Buffer,
3228                     _p_offsets: *const DeviceSize,
3229                     _p_sizes: *const DeviceSize,
3230                 ) {
3231                     panic!(concat!(
3232                         "Unable to load ",
3233                         stringify!(cmd_bind_transform_feedback_buffers_ext)
3234                     ))
3235                 }
3236                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
3237                     b"vkCmdBindTransformFeedbackBuffersEXT\0",
3238                 );
3239                 let val = _f(cname);
3240                 if val.is_null() {
3241                     cmd_bind_transform_feedback_buffers_ext
3242                 } else {
3243                     ::std::mem::transmute(val)
3244                 }
3245             },
3246             cmd_begin_transform_feedback_ext: unsafe {
3247                 unsafe extern "system" fn cmd_begin_transform_feedback_ext(
3248                     _command_buffer: CommandBuffer,
3249                     _first_counter_buffer: u32,
3250                     _counter_buffer_count: u32,
3251                     _p_counter_buffers: *const Buffer,
3252                     _p_counter_buffer_offsets: *const DeviceSize,
3253                 ) {
3254                     panic!(concat!(
3255                         "Unable to load ",
3256                         stringify!(cmd_begin_transform_feedback_ext)
3257                     ))
3258                 }
3259                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
3260                     b"vkCmdBeginTransformFeedbackEXT\0",
3261                 );
3262                 let val = _f(cname);
3263                 if val.is_null() {
3264                     cmd_begin_transform_feedback_ext
3265                 } else {
3266                     ::std::mem::transmute(val)
3267                 }
3268             },
3269             cmd_end_transform_feedback_ext: unsafe {
3270                 unsafe extern "system" fn cmd_end_transform_feedback_ext(
3271                     _command_buffer: CommandBuffer,
3272                     _first_counter_buffer: u32,
3273                     _counter_buffer_count: u32,
3274                     _p_counter_buffers: *const Buffer,
3275                     _p_counter_buffer_offsets: *const DeviceSize,
3276                 ) {
3277                     panic!(concat!(
3278                         "Unable to load ",
3279                         stringify!(cmd_end_transform_feedback_ext)
3280                     ))
3281                 }
3282                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
3283                     b"vkCmdEndTransformFeedbackEXT\0",
3284                 );
3285                 let val = _f(cname);
3286                 if val.is_null() {
3287                     cmd_end_transform_feedback_ext
3288                 } else {
3289                     ::std::mem::transmute(val)
3290                 }
3291             },
3292             cmd_begin_query_indexed_ext: unsafe {
3293                 unsafe extern "system" fn cmd_begin_query_indexed_ext(
3294                     _command_buffer: CommandBuffer,
3295                     _query_pool: QueryPool,
3296                     _query: u32,
3297                     _flags: QueryControlFlags,
3298                     _index: u32,
3299                 ) {
3300                     panic!(concat!(
3301                         "Unable to load ",
3302                         stringify!(cmd_begin_query_indexed_ext)
3303                     ))
3304                 }
3305                 let cname =
3306                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginQueryIndexedEXT\0");
3307                 let val = _f(cname);
3308                 if val.is_null() {
3309                     cmd_begin_query_indexed_ext
3310                 } else {
3311                     ::std::mem::transmute(val)
3312                 }
3313             },
3314             cmd_end_query_indexed_ext: unsafe {
3315                 unsafe extern "system" fn cmd_end_query_indexed_ext(
3316                     _command_buffer: CommandBuffer,
3317                     _query_pool: QueryPool,
3318                     _query: u32,
3319                     _index: u32,
3320                 ) {
3321                     panic!(concat!(
3322                         "Unable to load ",
3323                         stringify!(cmd_end_query_indexed_ext)
3324                     ))
3325                 }
3326                 let cname =
3327                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdEndQueryIndexedEXT\0");
3328                 let val = _f(cname);
3329                 if val.is_null() {
3330                     cmd_end_query_indexed_ext
3331                 } else {
3332                     ::std::mem::transmute(val)
3333                 }
3334             },
3335             cmd_draw_indirect_byte_count_ext: unsafe {
3336                 unsafe extern "system" fn cmd_draw_indirect_byte_count_ext(
3337                     _command_buffer: CommandBuffer,
3338                     _instance_count: u32,
3339                     _first_instance: u32,
3340                     _counter_buffer: Buffer,
3341                     _counter_buffer_offset: DeviceSize,
3342                     _counter_offset: u32,
3343                     _vertex_stride: u32,
3344                 ) {
3345                     panic!(concat!(
3346                         "Unable to load ",
3347                         stringify!(cmd_draw_indirect_byte_count_ext)
3348                     ))
3349                 }
3350                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
3351                     b"vkCmdDrawIndirectByteCountEXT\0",
3352                 );
3353                 let val = _f(cname);
3354                 if val.is_null() {
3355                     cmd_draw_indirect_byte_count_ext
3356                 } else {
3357                     ::std::mem::transmute(val)
3358                 }
3359             },
3360         }
3361     }
3362     #[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, )3363     pub unsafe fn cmd_bind_transform_feedback_buffers_ext(
3364         &self,
3365         command_buffer: CommandBuffer,
3366         first_binding: u32,
3367         binding_count: u32,
3368         p_buffers: *const Buffer,
3369         p_offsets: *const DeviceSize,
3370         p_sizes: *const DeviceSize,
3371     ) {
3372         (self.cmd_bind_transform_feedback_buffers_ext)(
3373             command_buffer,
3374             first_binding,
3375             binding_count,
3376             p_buffers,
3377             p_offsets,
3378             p_sizes,
3379         )
3380     }
3381     #[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, )3382     pub unsafe fn cmd_begin_transform_feedback_ext(
3383         &self,
3384         command_buffer: CommandBuffer,
3385         first_counter_buffer: u32,
3386         counter_buffer_count: u32,
3387         p_counter_buffers: *const Buffer,
3388         p_counter_buffer_offsets: *const DeviceSize,
3389     ) {
3390         (self.cmd_begin_transform_feedback_ext)(
3391             command_buffer,
3392             first_counter_buffer,
3393             counter_buffer_count,
3394             p_counter_buffers,
3395             p_counter_buffer_offsets,
3396         )
3397     }
3398     #[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, )3399     pub unsafe fn cmd_end_transform_feedback_ext(
3400         &self,
3401         command_buffer: CommandBuffer,
3402         first_counter_buffer: u32,
3403         counter_buffer_count: u32,
3404         p_counter_buffers: *const Buffer,
3405         p_counter_buffer_offsets: *const DeviceSize,
3406     ) {
3407         (self.cmd_end_transform_feedback_ext)(
3408             command_buffer,
3409             first_counter_buffer,
3410             counter_buffer_count,
3411             p_counter_buffers,
3412             p_counter_buffer_offsets,
3413         )
3414     }
3415     #[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, )3416     pub unsafe fn cmd_begin_query_indexed_ext(
3417         &self,
3418         command_buffer: CommandBuffer,
3419         query_pool: QueryPool,
3420         query: u32,
3421         flags: QueryControlFlags,
3422         index: u32,
3423     ) {
3424         (self.cmd_begin_query_indexed_ext)(command_buffer, query_pool, query, flags, index)
3425     }
3426     #[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, )3427     pub unsafe fn cmd_end_query_indexed_ext(
3428         &self,
3429         command_buffer: CommandBuffer,
3430         query_pool: QueryPool,
3431         query: u32,
3432         index: u32,
3433     ) {
3434         (self.cmd_end_query_indexed_ext)(command_buffer, query_pool, query, index)
3435     }
3436     #[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, )3437     pub unsafe fn cmd_draw_indirect_byte_count_ext(
3438         &self,
3439         command_buffer: CommandBuffer,
3440         instance_count: u32,
3441         first_instance: u32,
3442         counter_buffer: Buffer,
3443         counter_buffer_offset: DeviceSize,
3444         counter_offset: u32,
3445         vertex_stride: u32,
3446     ) {
3447         (self.cmd_draw_indirect_byte_count_ext)(
3448             command_buffer,
3449             instance_count,
3450             first_instance,
3451             counter_buffer,
3452             counter_buffer_offset,
3453             counter_offset,
3454             vertex_stride,
3455         )
3456     }
3457 }
3458 #[doc = "Generated from 'VK_EXT_transform_feedback'"]
3459 impl StructureType {
3460     pub const PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: Self = Self(1_000_028_000);
3461 }
3462 #[doc = "Generated from 'VK_EXT_transform_feedback'"]
3463 impl StructureType {
3464     pub const PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: Self = Self(1_000_028_001);
3465 }
3466 #[doc = "Generated from 'VK_EXT_transform_feedback'"]
3467 impl StructureType {
3468     pub const PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: Self = Self(1_000_028_002);
3469 }
3470 #[doc = "Generated from 'VK_EXT_transform_feedback'"]
3471 impl QueryType {
3472     pub const TRANSFORM_FEEDBACK_STREAM_EXT: Self = Self(1_000_028_004);
3473 }
3474 #[doc = "Generated from 'VK_EXT_transform_feedback'"]
3475 impl BufferUsageFlags {
3476     pub const TRANSFORM_FEEDBACK_BUFFER_EXT: Self = Self(0b1000_0000_0000);
3477 }
3478 #[doc = "Generated from 'VK_EXT_transform_feedback'"]
3479 impl BufferUsageFlags {
3480     pub const TRANSFORM_FEEDBACK_COUNTER_BUFFER_EXT: Self = Self(0b1_0000_0000_0000);
3481 }
3482 #[doc = "Generated from 'VK_EXT_transform_feedback'"]
3483 impl AccessFlags {
3484     pub const TRANSFORM_FEEDBACK_WRITE_EXT: Self = Self(0b10_0000_0000_0000_0000_0000_0000);
3485 }
3486 #[doc = "Generated from 'VK_EXT_transform_feedback'"]
3487 impl AccessFlags {
3488     pub const TRANSFORM_FEEDBACK_COUNTER_READ_EXT: Self = Self(0b100_0000_0000_0000_0000_0000_0000);
3489 }
3490 #[doc = "Generated from 'VK_EXT_transform_feedback'"]
3491 impl AccessFlags {
3492     pub const TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT: Self =
3493         Self(0b1000_0000_0000_0000_0000_0000_0000);
3494 }
3495 #[doc = "Generated from 'VK_EXT_transform_feedback'"]
3496 impl PipelineStageFlags {
3497     pub const TRANSFORM_FEEDBACK_EXT: Self = Self(0b1_0000_0000_0000_0000_0000_0000);
3498 }
3499 impl NvxBinaryImportFn {
name() -> &'static ::std::ffi::CStr3500     pub fn name() -> &'static ::std::ffi::CStr {
3501         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NVX_binary_import\0")
3502             .expect("Wrong extension string")
3503     }
3504     pub const SPEC_VERSION: u32 = 1u32;
3505 }
3506 #[allow(non_camel_case_types)]
3507 pub type PFN_vkCreateCuModuleNVX = unsafe extern "system" fn(
3508     device: Device,
3509     p_create_info: *const CuModuleCreateInfoNVX,
3510     p_allocator: *const AllocationCallbacks,
3511     p_module: *mut CuModuleNVX,
3512 ) -> Result;
3513 #[allow(non_camel_case_types)]
3514 pub type PFN_vkCreateCuFunctionNVX = unsafe extern "system" fn(
3515     device: Device,
3516     p_create_info: *const CuFunctionCreateInfoNVX,
3517     p_allocator: *const AllocationCallbacks,
3518     p_function: *mut CuFunctionNVX,
3519 ) -> Result;
3520 #[allow(non_camel_case_types)]
3521 pub type PFN_vkDestroyCuModuleNVX = unsafe extern "system" fn(
3522     device: Device,
3523     module: CuModuleNVX,
3524     p_allocator: *const AllocationCallbacks,
3525 );
3526 #[allow(non_camel_case_types)]
3527 pub type PFN_vkDestroyCuFunctionNVX = unsafe extern "system" fn(
3528     device: Device,
3529     function: CuFunctionNVX,
3530     p_allocator: *const AllocationCallbacks,
3531 );
3532 #[allow(non_camel_case_types)]
3533 pub type PFN_vkCmdCuLaunchKernelNVX =
3534     unsafe extern "system" fn(command_buffer: CommandBuffer, p_launch_info: *const CuLaunchInfoNVX);
3535 #[derive(Clone)]
3536 pub struct NvxBinaryImportFn {
3537     pub create_cu_module_nvx: PFN_vkCreateCuModuleNVX,
3538     pub create_cu_function_nvx: PFN_vkCreateCuFunctionNVX,
3539     pub destroy_cu_module_nvx: PFN_vkDestroyCuModuleNVX,
3540     pub destroy_cu_function_nvx: PFN_vkDestroyCuFunctionNVX,
3541     pub cmd_cu_launch_kernel_nvx: PFN_vkCmdCuLaunchKernelNVX,
3542 }
3543 unsafe impl Send for NvxBinaryImportFn {}
3544 unsafe impl Sync for NvxBinaryImportFn {}
3545 impl NvxBinaryImportFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3546     pub fn load<F>(mut _f: F) -> Self
3547     where
3548         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3549     {
3550         NvxBinaryImportFn {
3551             create_cu_module_nvx: unsafe {
3552                 unsafe extern "system" fn create_cu_module_nvx(
3553                     _device: Device,
3554                     _p_create_info: *const CuModuleCreateInfoNVX,
3555                     _p_allocator: *const AllocationCallbacks,
3556                     _p_module: *mut CuModuleNVX,
3557                 ) -> Result {
3558                     panic!(concat!("Unable to load ", stringify!(create_cu_module_nvx)))
3559                 }
3560                 let cname =
3561                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateCuModuleNVX\0");
3562                 let val = _f(cname);
3563                 if val.is_null() {
3564                     create_cu_module_nvx
3565                 } else {
3566                     ::std::mem::transmute(val)
3567                 }
3568             },
3569             create_cu_function_nvx: unsafe {
3570                 unsafe extern "system" fn create_cu_function_nvx(
3571                     _device: Device,
3572                     _p_create_info: *const CuFunctionCreateInfoNVX,
3573                     _p_allocator: *const AllocationCallbacks,
3574                     _p_function: *mut CuFunctionNVX,
3575                 ) -> Result {
3576                     panic!(concat!(
3577                         "Unable to load ",
3578                         stringify!(create_cu_function_nvx)
3579                     ))
3580                 }
3581                 let cname =
3582                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateCuFunctionNVX\0");
3583                 let val = _f(cname);
3584                 if val.is_null() {
3585                     create_cu_function_nvx
3586                 } else {
3587                     ::std::mem::transmute(val)
3588                 }
3589             },
3590             destroy_cu_module_nvx: unsafe {
3591                 unsafe extern "system" fn destroy_cu_module_nvx(
3592                     _device: Device,
3593                     _module: CuModuleNVX,
3594                     _p_allocator: *const AllocationCallbacks,
3595                 ) {
3596                     panic!(concat!(
3597                         "Unable to load ",
3598                         stringify!(destroy_cu_module_nvx)
3599                     ))
3600                 }
3601                 let cname =
3602                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroyCuModuleNVX\0");
3603                 let val = _f(cname);
3604                 if val.is_null() {
3605                     destroy_cu_module_nvx
3606                 } else {
3607                     ::std::mem::transmute(val)
3608                 }
3609             },
3610             destroy_cu_function_nvx: unsafe {
3611                 unsafe extern "system" fn destroy_cu_function_nvx(
3612                     _device: Device,
3613                     _function: CuFunctionNVX,
3614                     _p_allocator: *const AllocationCallbacks,
3615                 ) {
3616                     panic!(concat!(
3617                         "Unable to load ",
3618                         stringify!(destroy_cu_function_nvx)
3619                     ))
3620                 }
3621                 let cname =
3622                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroyCuFunctionNVX\0");
3623                 let val = _f(cname);
3624                 if val.is_null() {
3625                     destroy_cu_function_nvx
3626                 } else {
3627                     ::std::mem::transmute(val)
3628                 }
3629             },
3630             cmd_cu_launch_kernel_nvx: unsafe {
3631                 unsafe extern "system" fn cmd_cu_launch_kernel_nvx(
3632                     _command_buffer: CommandBuffer,
3633                     _p_launch_info: *const CuLaunchInfoNVX,
3634                 ) {
3635                     panic!(concat!(
3636                         "Unable to load ",
3637                         stringify!(cmd_cu_launch_kernel_nvx)
3638                     ))
3639                 }
3640                 let cname =
3641                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdCuLaunchKernelNVX\0");
3642                 let val = _f(cname);
3643                 if val.is_null() {
3644                     cmd_cu_launch_kernel_nvx
3645                 } else {
3646                     ::std::mem::transmute(val)
3647                 }
3648             },
3649         }
3650     }
3651     #[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, ) -> Result3652     pub unsafe fn create_cu_module_nvx(
3653         &self,
3654         device: Device,
3655         p_create_info: *const CuModuleCreateInfoNVX,
3656         p_allocator: *const AllocationCallbacks,
3657         p_module: *mut CuModuleNVX,
3658     ) -> Result {
3659         (self.create_cu_module_nvx)(device, p_create_info, p_allocator, p_module)
3660     }
3661     #[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, ) -> Result3662     pub unsafe fn create_cu_function_nvx(
3663         &self,
3664         device: Device,
3665         p_create_info: *const CuFunctionCreateInfoNVX,
3666         p_allocator: *const AllocationCallbacks,
3667         p_function: *mut CuFunctionNVX,
3668     ) -> Result {
3669         (self.create_cu_function_nvx)(device, p_create_info, p_allocator, p_function)
3670     }
3671     #[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, )3672     pub unsafe fn destroy_cu_module_nvx(
3673         &self,
3674         device: Device,
3675         module: CuModuleNVX,
3676         p_allocator: *const AllocationCallbacks,
3677     ) {
3678         (self.destroy_cu_module_nvx)(device, module, p_allocator)
3679     }
3680     #[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, )3681     pub unsafe fn destroy_cu_function_nvx(
3682         &self,
3683         device: Device,
3684         function: CuFunctionNVX,
3685         p_allocator: *const AllocationCallbacks,
3686     ) {
3687         (self.destroy_cu_function_nvx)(device, function, p_allocator)
3688     }
3689     #[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, )3690     pub unsafe fn cmd_cu_launch_kernel_nvx(
3691         &self,
3692         command_buffer: CommandBuffer,
3693         p_launch_info: *const CuLaunchInfoNVX,
3694     ) {
3695         (self.cmd_cu_launch_kernel_nvx)(command_buffer, p_launch_info)
3696     }
3697 }
3698 #[doc = "Generated from 'VK_NVX_binary_import'"]
3699 impl StructureType {
3700     pub const CU_MODULE_CREATE_INFO_NVX: Self = Self(1_000_029_000);
3701 }
3702 #[doc = "Generated from 'VK_NVX_binary_import'"]
3703 impl StructureType {
3704     pub const CU_FUNCTION_CREATE_INFO_NVX: Self = Self(1_000_029_001);
3705 }
3706 #[doc = "Generated from 'VK_NVX_binary_import'"]
3707 impl StructureType {
3708     pub const CU_LAUNCH_INFO_NVX: Self = Self(1_000_029_002);
3709 }
3710 #[doc = "Generated from 'VK_NVX_binary_import'"]
3711 impl ObjectType {
3712     pub const CU_MODULE_NVX: Self = Self(1_000_029_000);
3713 }
3714 #[doc = "Generated from 'VK_NVX_binary_import'"]
3715 impl ObjectType {
3716     pub const CU_FUNCTION_NVX: Self = Self(1_000_029_001);
3717 }
3718 #[doc = "Generated from 'VK_NVX_binary_import'"]
3719 impl DebugReportObjectTypeEXT {
3720     pub const CU_MODULE_NVX: Self = Self(1_000_029_000);
3721 }
3722 #[doc = "Generated from 'VK_NVX_binary_import'"]
3723 impl DebugReportObjectTypeEXT {
3724     pub const CU_FUNCTION_NVX: Self = Self(1_000_029_001);
3725 }
3726 impl NvxImageViewHandleFn {
name() -> &'static ::std::ffi::CStr3727     pub fn name() -> &'static ::std::ffi::CStr {
3728         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NVX_image_view_handle\0")
3729             .expect("Wrong extension string")
3730     }
3731     pub const SPEC_VERSION: u32 = 2u32;
3732 }
3733 #[allow(non_camel_case_types)]
3734 pub type PFN_vkGetImageViewHandleNVX =
3735     unsafe extern "system" fn(device: Device, p_info: *const ImageViewHandleInfoNVX) -> u32;
3736 #[allow(non_camel_case_types)]
3737 pub type PFN_vkGetImageViewAddressNVX = unsafe extern "system" fn(
3738     device: Device,
3739     image_view: ImageView,
3740     p_properties: *mut ImageViewAddressPropertiesNVX,
3741 ) -> Result;
3742 #[derive(Clone)]
3743 pub struct NvxImageViewHandleFn {
3744     pub get_image_view_handle_nvx: PFN_vkGetImageViewHandleNVX,
3745     pub get_image_view_address_nvx: PFN_vkGetImageViewAddressNVX,
3746 }
3747 unsafe impl Send for NvxImageViewHandleFn {}
3748 unsafe impl Sync for NvxImageViewHandleFn {}
3749 impl NvxImageViewHandleFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3750     pub fn load<F>(mut _f: F) -> Self
3751     where
3752         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3753     {
3754         NvxImageViewHandleFn {
3755             get_image_view_handle_nvx: unsafe {
3756                 unsafe extern "system" fn get_image_view_handle_nvx(
3757                     _device: Device,
3758                     _p_info: *const ImageViewHandleInfoNVX,
3759                 ) -> u32 {
3760                     panic!(concat!(
3761                         "Unable to load ",
3762                         stringify!(get_image_view_handle_nvx)
3763                     ))
3764                 }
3765                 let cname =
3766                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetImageViewHandleNVX\0");
3767                 let val = _f(cname);
3768                 if val.is_null() {
3769                     get_image_view_handle_nvx
3770                 } else {
3771                     ::std::mem::transmute(val)
3772                 }
3773             },
3774             get_image_view_address_nvx: unsafe {
3775                 unsafe extern "system" fn get_image_view_address_nvx(
3776                     _device: Device,
3777                     _image_view: ImageView,
3778                     _p_properties: *mut ImageViewAddressPropertiesNVX,
3779                 ) -> Result {
3780                     panic!(concat!(
3781                         "Unable to load ",
3782                         stringify!(get_image_view_address_nvx)
3783                     ))
3784                 }
3785                 let cname =
3786                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetImageViewAddressNVX\0");
3787                 let val = _f(cname);
3788                 if val.is_null() {
3789                     get_image_view_address_nvx
3790                 } else {
3791                     ::std::mem::transmute(val)
3792                 }
3793             },
3794         }
3795     }
3796     #[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, ) -> u323797     pub unsafe fn get_image_view_handle_nvx(
3798         &self,
3799         device: Device,
3800         p_info: *const ImageViewHandleInfoNVX,
3801     ) -> u32 {
3802         (self.get_image_view_handle_nvx)(device, p_info)
3803     }
3804     #[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, ) -> Result3805     pub unsafe fn get_image_view_address_nvx(
3806         &self,
3807         device: Device,
3808         image_view: ImageView,
3809         p_properties: *mut ImageViewAddressPropertiesNVX,
3810     ) -> Result {
3811         (self.get_image_view_address_nvx)(device, image_view, p_properties)
3812     }
3813 }
3814 #[doc = "Generated from 'VK_NVX_image_view_handle'"]
3815 impl StructureType {
3816     pub const IMAGE_VIEW_HANDLE_INFO_NVX: Self = Self(1_000_030_000);
3817 }
3818 #[doc = "Generated from 'VK_NVX_image_view_handle'"]
3819 impl StructureType {
3820     pub const IMAGE_VIEW_ADDRESS_PROPERTIES_NVX: Self = Self(1_000_030_001);
3821 }
3822 impl AmdExtension32Fn {
name() -> &'static ::std::ffi::CStr3823     pub fn name() -> &'static ::std::ffi::CStr {
3824         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_32\0")
3825             .expect("Wrong extension string")
3826     }
3827     pub const SPEC_VERSION: u32 = 0u32;
3828 }
3829 #[derive(Clone)]
3830 pub struct AmdExtension32Fn {}
3831 unsafe impl Send for AmdExtension32Fn {}
3832 unsafe impl Sync for AmdExtension32Fn {}
3833 impl AmdExtension32Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3834     pub fn load<F>(mut _f: F) -> Self
3835     where
3836         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3837     {
3838         AmdExtension32Fn {}
3839     }
3840 }
3841 impl AmdExtension33Fn {
name() -> &'static ::std::ffi::CStr3842     pub fn name() -> &'static ::std::ffi::CStr {
3843         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_33\0")
3844             .expect("Wrong extension string")
3845     }
3846     pub const SPEC_VERSION: u32 = 0u32;
3847 }
3848 #[derive(Clone)]
3849 pub struct AmdExtension33Fn {}
3850 unsafe impl Send for AmdExtension33Fn {}
3851 unsafe impl Sync for AmdExtension33Fn {}
3852 impl AmdExtension33Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3853     pub fn load<F>(mut _f: F) -> Self
3854     where
3855         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3856     {
3857         AmdExtension33Fn {}
3858     }
3859 }
3860 impl AmdDrawIndirectCountFn {
name() -> &'static ::std::ffi::CStr3861     pub fn name() -> &'static ::std::ffi::CStr {
3862         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_draw_indirect_count\0")
3863             .expect("Wrong extension string")
3864     }
3865     pub const SPEC_VERSION: u32 = 2u32;
3866 }
3867 #[allow(non_camel_case_types)]
3868 pub type PFN_vkCmdDrawIndirectCount = unsafe extern "system" fn(
3869     command_buffer: CommandBuffer,
3870     buffer: Buffer,
3871     offset: DeviceSize,
3872     count_buffer: Buffer,
3873     count_buffer_offset: DeviceSize,
3874     max_draw_count: u32,
3875     stride: u32,
3876 );
3877 #[allow(non_camel_case_types)]
3878 pub type PFN_vkCmdDrawIndexedIndirectCount = unsafe extern "system" fn(
3879     command_buffer: CommandBuffer,
3880     buffer: Buffer,
3881     offset: DeviceSize,
3882     count_buffer: Buffer,
3883     count_buffer_offset: DeviceSize,
3884     max_draw_count: u32,
3885     stride: u32,
3886 );
3887 #[derive(Clone)]
3888 pub struct AmdDrawIndirectCountFn {
3889     pub cmd_draw_indirect_count_amd: PFN_vkCmdDrawIndirectCount,
3890     pub cmd_draw_indexed_indirect_count_amd: PFN_vkCmdDrawIndexedIndirectCount,
3891 }
3892 unsafe impl Send for AmdDrawIndirectCountFn {}
3893 unsafe impl Sync for AmdDrawIndirectCountFn {}
3894 impl AmdDrawIndirectCountFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3895     pub fn load<F>(mut _f: F) -> Self
3896     where
3897         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3898     {
3899         AmdDrawIndirectCountFn {
3900             cmd_draw_indirect_count_amd: unsafe {
3901                 unsafe extern "system" fn cmd_draw_indirect_count_amd(
3902                     _command_buffer: CommandBuffer,
3903                     _buffer: Buffer,
3904                     _offset: DeviceSize,
3905                     _count_buffer: Buffer,
3906                     _count_buffer_offset: DeviceSize,
3907                     _max_draw_count: u32,
3908                     _stride: u32,
3909                 ) {
3910                     panic!(concat!(
3911                         "Unable to load ",
3912                         stringify!(cmd_draw_indirect_count_amd)
3913                     ))
3914                 }
3915                 let cname =
3916                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndirectCountAMD\0");
3917                 let val = _f(cname);
3918                 if val.is_null() {
3919                     cmd_draw_indirect_count_amd
3920                 } else {
3921                     ::std::mem::transmute(val)
3922                 }
3923             },
3924             cmd_draw_indexed_indirect_count_amd: unsafe {
3925                 unsafe extern "system" fn cmd_draw_indexed_indirect_count_amd(
3926                     _command_buffer: CommandBuffer,
3927                     _buffer: Buffer,
3928                     _offset: DeviceSize,
3929                     _count_buffer: Buffer,
3930                     _count_buffer_offset: DeviceSize,
3931                     _max_draw_count: u32,
3932                     _stride: u32,
3933                 ) {
3934                     panic!(concat!(
3935                         "Unable to load ",
3936                         stringify!(cmd_draw_indexed_indirect_count_amd)
3937                     ))
3938                 }
3939                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
3940                     b"vkCmdDrawIndexedIndirectCountAMD\0",
3941                 );
3942                 let val = _f(cname);
3943                 if val.is_null() {
3944                     cmd_draw_indexed_indirect_count_amd
3945                 } else {
3946                     ::std::mem::transmute(val)
3947                 }
3948             },
3949         }
3950     }
3951     #[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, )3952     pub unsafe fn cmd_draw_indirect_count_amd(
3953         &self,
3954         command_buffer: CommandBuffer,
3955         buffer: Buffer,
3956         offset: DeviceSize,
3957         count_buffer: Buffer,
3958         count_buffer_offset: DeviceSize,
3959         max_draw_count: u32,
3960         stride: u32,
3961     ) {
3962         (self.cmd_draw_indirect_count_amd)(
3963             command_buffer,
3964             buffer,
3965             offset,
3966             count_buffer,
3967             count_buffer_offset,
3968             max_draw_count,
3969             stride,
3970         )
3971     }
3972     #[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, )3973     pub unsafe fn cmd_draw_indexed_indirect_count_amd(
3974         &self,
3975         command_buffer: CommandBuffer,
3976         buffer: Buffer,
3977         offset: DeviceSize,
3978         count_buffer: Buffer,
3979         count_buffer_offset: DeviceSize,
3980         max_draw_count: u32,
3981         stride: u32,
3982     ) {
3983         (self.cmd_draw_indexed_indirect_count_amd)(
3984             command_buffer,
3985             buffer,
3986             offset,
3987             count_buffer,
3988             count_buffer_offset,
3989             max_draw_count,
3990             stride,
3991         )
3992     }
3993 }
3994 impl AmdExtension35Fn {
name() -> &'static ::std::ffi::CStr3995     pub fn name() -> &'static ::std::ffi::CStr {
3996         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_35\0")
3997             .expect("Wrong extension string")
3998     }
3999     pub const SPEC_VERSION: u32 = 0u32;
4000 }
4001 #[derive(Clone)]
4002 pub struct AmdExtension35Fn {}
4003 unsafe impl Send for AmdExtension35Fn {}
4004 unsafe impl Sync for AmdExtension35Fn {}
4005 impl AmdExtension35Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4006     pub fn load<F>(mut _f: F) -> Self
4007     where
4008         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4009     {
4010         AmdExtension35Fn {}
4011     }
4012 }
4013 impl AmdNegativeViewportHeightFn {
name() -> &'static ::std::ffi::CStr4014     pub fn name() -> &'static ::std::ffi::CStr {
4015         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_negative_viewport_height\0")
4016             .expect("Wrong extension string")
4017     }
4018     pub const SPEC_VERSION: u32 = 1u32;
4019 }
4020 #[derive(Clone)]
4021 pub struct AmdNegativeViewportHeightFn {}
4022 unsafe impl Send for AmdNegativeViewportHeightFn {}
4023 unsafe impl Sync for AmdNegativeViewportHeightFn {}
4024 impl AmdNegativeViewportHeightFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4025     pub fn load<F>(mut _f: F) -> Self
4026     where
4027         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4028     {
4029         AmdNegativeViewportHeightFn {}
4030     }
4031 }
4032 impl AmdGpuShaderHalfFloatFn {
name() -> &'static ::std::ffi::CStr4033     pub fn name() -> &'static ::std::ffi::CStr {
4034         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_gpu_shader_half_float\0")
4035             .expect("Wrong extension string")
4036     }
4037     pub const SPEC_VERSION: u32 = 2u32;
4038 }
4039 #[derive(Clone)]
4040 pub struct AmdGpuShaderHalfFloatFn {}
4041 unsafe impl Send for AmdGpuShaderHalfFloatFn {}
4042 unsafe impl Sync for AmdGpuShaderHalfFloatFn {}
4043 impl AmdGpuShaderHalfFloatFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4044     pub fn load<F>(mut _f: F) -> Self
4045     where
4046         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4047     {
4048         AmdGpuShaderHalfFloatFn {}
4049     }
4050 }
4051 impl AmdShaderBallotFn {
name() -> &'static ::std::ffi::CStr4052     pub fn name() -> &'static ::std::ffi::CStr {
4053         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_shader_ballot\0")
4054             .expect("Wrong extension string")
4055     }
4056     pub const SPEC_VERSION: u32 = 1u32;
4057 }
4058 #[derive(Clone)]
4059 pub struct AmdShaderBallotFn {}
4060 unsafe impl Send for AmdShaderBallotFn {}
4061 unsafe impl Sync for AmdShaderBallotFn {}
4062 impl AmdShaderBallotFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4063     pub fn load<F>(mut _f: F) -> Self
4064     where
4065         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4066     {
4067         AmdShaderBallotFn {}
4068     }
4069 }
4070 impl ExtVideoEncodeH264Fn {
name() -> &'static ::std::ffi::CStr4071     pub fn name() -> &'static ::std::ffi::CStr {
4072         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_video_encode_h264\0")
4073             .expect("Wrong extension string")
4074     }
4075     pub const SPEC_VERSION: u32 = 2u32;
4076 }
4077 #[derive(Clone)]
4078 pub struct ExtVideoEncodeH264Fn {}
4079 unsafe impl Send for ExtVideoEncodeH264Fn {}
4080 unsafe impl Sync for ExtVideoEncodeH264Fn {}
4081 impl ExtVideoEncodeH264Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4082     pub fn load<F>(mut _f: F) -> Self
4083     where
4084         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4085     {
4086         ExtVideoEncodeH264Fn {}
4087     }
4088 }
4089 #[doc = "Generated from 'VK_EXT_video_encode_h264'"]
4090 impl StructureType {
4091     pub const VIDEO_ENCODE_H264_CAPABILITIES_EXT: Self = Self(1_000_038_000);
4092 }
4093 #[doc = "Generated from 'VK_EXT_video_encode_h264'"]
4094 impl StructureType {
4095     pub const VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT: Self = Self(1_000_038_001);
4096 }
4097 #[doc = "Generated from 'VK_EXT_video_encode_h264'"]
4098 impl StructureType {
4099     pub const VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT: Self = Self(1_000_038_002);
4100 }
4101 #[doc = "Generated from 'VK_EXT_video_encode_h264'"]
4102 impl StructureType {
4103     pub const VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT: Self = Self(1_000_038_003);
4104 }
4105 #[doc = "Generated from 'VK_EXT_video_encode_h264'"]
4106 impl StructureType {
4107     pub const VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT: Self = Self(1_000_038_004);
4108 }
4109 #[doc = "Generated from 'VK_EXT_video_encode_h264'"]
4110 impl StructureType {
4111     pub const VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT: Self = Self(1_000_038_005);
4112 }
4113 #[doc = "Generated from 'VK_EXT_video_encode_h264'"]
4114 impl StructureType {
4115     pub const VIDEO_ENCODE_H264_NALU_SLICE_EXT: Self = Self(1_000_038_006);
4116 }
4117 #[doc = "Generated from 'VK_EXT_video_encode_h264'"]
4118 impl StructureType {
4119     pub const VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT: Self = Self(1_000_038_007);
4120 }
4121 #[doc = "Generated from 'VK_EXT_video_encode_h264'"]
4122 impl StructureType {
4123     pub const VIDEO_ENCODE_H264_PROFILE_EXT: Self = Self(1_000_038_008);
4124 }
4125 #[doc = "Generated from 'VK_EXT_video_encode_h264'"]
4126 impl VideoCodecOperationFlagsKHR {
4127     pub const ENCODE_H264_EXT: Self = Self(0b1_0000_0000_0000_0000);
4128 }
4129 impl ExtVideoEncodeH265Fn {
name() -> &'static ::std::ffi::CStr4130     pub fn name() -> &'static ::std::ffi::CStr {
4131         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_video_encode_h265\0")
4132             .expect("Wrong extension string")
4133     }
4134     pub const SPEC_VERSION: u32 = 0u32;
4135 }
4136 #[derive(Clone)]
4137 pub struct ExtVideoEncodeH265Fn {}
4138 unsafe impl Send for ExtVideoEncodeH265Fn {}
4139 unsafe impl Sync for ExtVideoEncodeH265Fn {}
4140 impl ExtVideoEncodeH265Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4141     pub fn load<F>(mut _f: F) -> Self
4142     where
4143         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4144     {
4145         ExtVideoEncodeH265Fn {}
4146     }
4147 }
4148 impl ExtVideoDecodeH264Fn {
name() -> &'static ::std::ffi::CStr4149     pub fn name() -> &'static ::std::ffi::CStr {
4150         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_video_decode_h264\0")
4151             .expect("Wrong extension string")
4152     }
4153     pub const SPEC_VERSION: u32 = 3u32;
4154 }
4155 #[derive(Clone)]
4156 pub struct ExtVideoDecodeH264Fn {}
4157 unsafe impl Send for ExtVideoDecodeH264Fn {}
4158 unsafe impl Sync for ExtVideoDecodeH264Fn {}
4159 impl ExtVideoDecodeH264Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4160     pub fn load<F>(mut _f: F) -> Self
4161     where
4162         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4163     {
4164         ExtVideoDecodeH264Fn {}
4165     }
4166 }
4167 #[doc = "Generated from 'VK_EXT_video_decode_h264'"]
4168 impl StructureType {
4169     pub const VIDEO_DECODE_H264_CAPABILITIES_EXT: Self = Self(1_000_040_000);
4170 }
4171 #[doc = "Generated from 'VK_EXT_video_decode_h264'"]
4172 impl StructureType {
4173     pub const VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT: Self = Self(1_000_040_001);
4174 }
4175 #[doc = "Generated from 'VK_EXT_video_decode_h264'"]
4176 impl StructureType {
4177     pub const VIDEO_DECODE_H264_PICTURE_INFO_EXT: Self = Self(1_000_040_002);
4178 }
4179 #[doc = "Generated from 'VK_EXT_video_decode_h264'"]
4180 impl StructureType {
4181     pub const VIDEO_DECODE_H264_MVC_EXT: Self = Self(1_000_040_003);
4182 }
4183 #[doc = "Generated from 'VK_EXT_video_decode_h264'"]
4184 impl StructureType {
4185     pub const VIDEO_DECODE_H264_PROFILE_EXT: Self = Self(1_000_040_004);
4186 }
4187 #[doc = "Generated from 'VK_EXT_video_decode_h264'"]
4188 impl StructureType {
4189     pub const VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT: Self = Self(1_000_040_005);
4190 }
4191 #[doc = "Generated from 'VK_EXT_video_decode_h264'"]
4192 impl StructureType {
4193     pub const VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT: Self = Self(1_000_040_006);
4194 }
4195 #[doc = "Generated from 'VK_EXT_video_decode_h264'"]
4196 impl StructureType {
4197     pub const VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT: Self = Self(1_000_040_007);
4198 }
4199 #[doc = "Generated from 'VK_EXT_video_decode_h264'"]
4200 impl VideoCodecOperationFlagsKHR {
4201     pub const DECODE_H264_EXT: Self = Self(0b1);
4202 }
4203 impl AmdTextureGatherBiasLodFn {
name() -> &'static ::std::ffi::CStr4204     pub fn name() -> &'static ::std::ffi::CStr {
4205         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_texture_gather_bias_lod\0")
4206             .expect("Wrong extension string")
4207     }
4208     pub const SPEC_VERSION: u32 = 1u32;
4209 }
4210 #[derive(Clone)]
4211 pub struct AmdTextureGatherBiasLodFn {}
4212 unsafe impl Send for AmdTextureGatherBiasLodFn {}
4213 unsafe impl Sync for AmdTextureGatherBiasLodFn {}
4214 impl AmdTextureGatherBiasLodFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4215     pub fn load<F>(mut _f: F) -> Self
4216     where
4217         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4218     {
4219         AmdTextureGatherBiasLodFn {}
4220     }
4221 }
4222 #[doc = "Generated from 'VK_AMD_texture_gather_bias_lod'"]
4223 impl StructureType {
4224     pub const TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD: Self = Self(1_000_041_000);
4225 }
4226 impl AmdShaderInfoFn {
name() -> &'static ::std::ffi::CStr4227     pub fn name() -> &'static ::std::ffi::CStr {
4228         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_shader_info\0")
4229             .expect("Wrong extension string")
4230     }
4231     pub const SPEC_VERSION: u32 = 1u32;
4232 }
4233 #[allow(non_camel_case_types)]
4234 pub type PFN_vkGetShaderInfoAMD = unsafe extern "system" fn(
4235     device: Device,
4236     pipeline: Pipeline,
4237     shader_stage: ShaderStageFlags,
4238     info_type: ShaderInfoTypeAMD,
4239     p_info_size: *mut usize,
4240     p_info: *mut c_void,
4241 ) -> Result;
4242 #[derive(Clone)]
4243 pub struct AmdShaderInfoFn {
4244     pub get_shader_info_amd: PFN_vkGetShaderInfoAMD,
4245 }
4246 unsafe impl Send for AmdShaderInfoFn {}
4247 unsafe impl Sync for AmdShaderInfoFn {}
4248 impl AmdShaderInfoFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4249     pub fn load<F>(mut _f: F) -> Self
4250     where
4251         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4252     {
4253         AmdShaderInfoFn {
4254             get_shader_info_amd: unsafe {
4255                 unsafe extern "system" fn get_shader_info_amd(
4256                     _device: Device,
4257                     _pipeline: Pipeline,
4258                     _shader_stage: ShaderStageFlags,
4259                     _info_type: ShaderInfoTypeAMD,
4260                     _p_info_size: *mut usize,
4261                     _p_info: *mut c_void,
4262                 ) -> Result {
4263                     panic!(concat!("Unable to load ", stringify!(get_shader_info_amd)))
4264                 }
4265                 let cname =
4266                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetShaderInfoAMD\0");
4267                 let val = _f(cname);
4268                 if val.is_null() {
4269                     get_shader_info_amd
4270                 } else {
4271                     ::std::mem::transmute(val)
4272                 }
4273             },
4274         }
4275     }
4276     #[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, ) -> Result4277     pub unsafe fn get_shader_info_amd(
4278         &self,
4279         device: Device,
4280         pipeline: Pipeline,
4281         shader_stage: ShaderStageFlags,
4282         info_type: ShaderInfoTypeAMD,
4283         p_info_size: *mut usize,
4284         p_info: *mut c_void,
4285     ) -> Result {
4286         (self.get_shader_info_amd)(
4287             device,
4288             pipeline,
4289             shader_stage,
4290             info_type,
4291             p_info_size,
4292             p_info,
4293         )
4294     }
4295 }
4296 impl AmdExtension44Fn {
name() -> &'static ::std::ffi::CStr4297     pub fn name() -> &'static ::std::ffi::CStr {
4298         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_44\0")
4299             .expect("Wrong extension string")
4300     }
4301     pub const SPEC_VERSION: u32 = 0u32;
4302 }
4303 #[derive(Clone)]
4304 pub struct AmdExtension44Fn {}
4305 unsafe impl Send for AmdExtension44Fn {}
4306 unsafe impl Sync for AmdExtension44Fn {}
4307 impl AmdExtension44Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4308     pub fn load<F>(mut _f: F) -> Self
4309     where
4310         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4311     {
4312         AmdExtension44Fn {}
4313     }
4314 }
4315 impl AmdExtension45Fn {
name() -> &'static ::std::ffi::CStr4316     pub fn name() -> &'static ::std::ffi::CStr {
4317         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_45\0")
4318             .expect("Wrong extension string")
4319     }
4320     pub const SPEC_VERSION: u32 = 0u32;
4321 }
4322 #[derive(Clone)]
4323 pub struct AmdExtension45Fn {}
4324 unsafe impl Send for AmdExtension45Fn {}
4325 unsafe impl Sync for AmdExtension45Fn {}
4326 impl AmdExtension45Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4327     pub fn load<F>(mut _f: F) -> Self
4328     where
4329         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4330     {
4331         AmdExtension45Fn {}
4332     }
4333 }
4334 #[doc = "Generated from 'VK_AMD_extension_45'"]
4335 impl PipelineCreateFlags {
4336     pub const RESERVED_21_AMD: Self = Self(0b10_0000_0000_0000_0000_0000);
4337 }
4338 #[doc = "Generated from 'VK_AMD_extension_45'"]
4339 impl PipelineCreateFlags {
4340     pub const RESERVED_22_AMD: Self = Self(0b100_0000_0000_0000_0000_0000);
4341 }
4342 impl AmdExtension46Fn {
name() -> &'static ::std::ffi::CStr4343     pub fn name() -> &'static ::std::ffi::CStr {
4344         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_46\0")
4345             .expect("Wrong extension string")
4346     }
4347     pub const SPEC_VERSION: u32 = 0u32;
4348 }
4349 #[derive(Clone)]
4350 pub struct AmdExtension46Fn {}
4351 unsafe impl Send for AmdExtension46Fn {}
4352 unsafe impl Sync for AmdExtension46Fn {}
4353 impl AmdExtension46Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4354     pub fn load<F>(mut _f: F) -> Self
4355     where
4356         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4357     {
4358         AmdExtension46Fn {}
4359     }
4360 }
4361 impl AmdShaderImageLoadStoreLodFn {
name() -> &'static ::std::ffi::CStr4362     pub fn name() -> &'static ::std::ffi::CStr {
4363         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_shader_image_load_store_lod\0")
4364             .expect("Wrong extension string")
4365     }
4366     pub const SPEC_VERSION: u32 = 1u32;
4367 }
4368 #[derive(Clone)]
4369 pub struct AmdShaderImageLoadStoreLodFn {}
4370 unsafe impl Send for AmdShaderImageLoadStoreLodFn {}
4371 unsafe impl Sync for AmdShaderImageLoadStoreLodFn {}
4372 impl AmdShaderImageLoadStoreLodFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4373     pub fn load<F>(mut _f: F) -> Self
4374     where
4375         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4376     {
4377         AmdShaderImageLoadStoreLodFn {}
4378     }
4379 }
4380 impl NvxExtension48Fn {
name() -> &'static ::std::ffi::CStr4381     pub fn name() -> &'static ::std::ffi::CStr {
4382         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NVX_extension_48\0")
4383             .expect("Wrong extension string")
4384     }
4385     pub const SPEC_VERSION: u32 = 0u32;
4386 }
4387 #[derive(Clone)]
4388 pub struct NvxExtension48Fn {}
4389 unsafe impl Send for NvxExtension48Fn {}
4390 unsafe impl Sync for NvxExtension48Fn {}
4391 impl NvxExtension48Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4392     pub fn load<F>(mut _f: F) -> Self
4393     where
4394         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4395     {
4396         NvxExtension48Fn {}
4397     }
4398 }
4399 impl GoogleExtension49Fn {
name() -> &'static ::std::ffi::CStr4400     pub fn name() -> &'static ::std::ffi::CStr {
4401         ::std::ffi::CStr::from_bytes_with_nul(b"VK_GOOGLE_extension_49\0")
4402             .expect("Wrong extension string")
4403     }
4404     pub const SPEC_VERSION: u32 = 0u32;
4405 }
4406 #[derive(Clone)]
4407 pub struct GoogleExtension49Fn {}
4408 unsafe impl Send for GoogleExtension49Fn {}
4409 unsafe impl Sync for GoogleExtension49Fn {}
4410 impl GoogleExtension49Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4411     pub fn load<F>(mut _f: F) -> Self
4412     where
4413         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4414     {
4415         GoogleExtension49Fn {}
4416     }
4417 }
4418 impl GgpStreamDescriptorSurfaceFn {
name() -> &'static ::std::ffi::CStr4419     pub fn name() -> &'static ::std::ffi::CStr {
4420         ::std::ffi::CStr::from_bytes_with_nul(b"VK_GGP_stream_descriptor_surface\0")
4421             .expect("Wrong extension string")
4422     }
4423     pub const SPEC_VERSION: u32 = 1u32;
4424 }
4425 #[allow(non_camel_case_types)]
4426 pub type PFN_vkCreateStreamDescriptorSurfaceGGP = unsafe extern "system" fn(
4427     instance: Instance,
4428     p_create_info: *const StreamDescriptorSurfaceCreateInfoGGP,
4429     p_allocator: *const AllocationCallbacks,
4430     p_surface: *mut SurfaceKHR,
4431 ) -> Result;
4432 #[derive(Clone)]
4433 pub struct GgpStreamDescriptorSurfaceFn {
4434     pub create_stream_descriptor_surface_ggp: PFN_vkCreateStreamDescriptorSurfaceGGP,
4435 }
4436 unsafe impl Send for GgpStreamDescriptorSurfaceFn {}
4437 unsafe impl Sync for GgpStreamDescriptorSurfaceFn {}
4438 impl GgpStreamDescriptorSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4439     pub fn load<F>(mut _f: F) -> Self
4440     where
4441         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4442     {
4443         GgpStreamDescriptorSurfaceFn {
4444             create_stream_descriptor_surface_ggp: unsafe {
4445                 unsafe extern "system" fn create_stream_descriptor_surface_ggp(
4446                     _instance: Instance,
4447                     _p_create_info: *const StreamDescriptorSurfaceCreateInfoGGP,
4448                     _p_allocator: *const AllocationCallbacks,
4449                     _p_surface: *mut SurfaceKHR,
4450                 ) -> Result {
4451                     panic!(concat!(
4452                         "Unable to load ",
4453                         stringify!(create_stream_descriptor_surface_ggp)
4454                     ))
4455                 }
4456                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4457                     b"vkCreateStreamDescriptorSurfaceGGP\0",
4458                 );
4459                 let val = _f(cname);
4460                 if val.is_null() {
4461                     create_stream_descriptor_surface_ggp
4462                 } else {
4463                     ::std::mem::transmute(val)
4464                 }
4465             },
4466         }
4467     }
4468     #[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, ) -> Result4469     pub unsafe fn create_stream_descriptor_surface_ggp(
4470         &self,
4471         instance: Instance,
4472         p_create_info: *const StreamDescriptorSurfaceCreateInfoGGP,
4473         p_allocator: *const AllocationCallbacks,
4474         p_surface: *mut SurfaceKHR,
4475     ) -> Result {
4476         (self.create_stream_descriptor_surface_ggp)(instance, p_create_info, p_allocator, p_surface)
4477     }
4478 }
4479 #[doc = "Generated from 'VK_GGP_stream_descriptor_surface'"]
4480 impl StructureType {
4481     pub const STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP: Self = Self(1_000_049_000);
4482 }
4483 impl NvCornerSampledImageFn {
name() -> &'static ::std::ffi::CStr4484     pub fn name() -> &'static ::std::ffi::CStr {
4485         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_corner_sampled_image\0")
4486             .expect("Wrong extension string")
4487     }
4488     pub const SPEC_VERSION: u32 = 2u32;
4489 }
4490 #[derive(Clone)]
4491 pub struct NvCornerSampledImageFn {}
4492 unsafe impl Send for NvCornerSampledImageFn {}
4493 unsafe impl Sync for NvCornerSampledImageFn {}
4494 impl NvCornerSampledImageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4495     pub fn load<F>(mut _f: F) -> Self
4496     where
4497         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4498     {
4499         NvCornerSampledImageFn {}
4500     }
4501 }
4502 #[doc = "Generated from 'VK_NV_corner_sampled_image'"]
4503 impl ImageCreateFlags {
4504     pub const CORNER_SAMPLED_NV: Self = Self(0b10_0000_0000_0000);
4505 }
4506 #[doc = "Generated from 'VK_NV_corner_sampled_image'"]
4507 impl StructureType {
4508     pub const PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV: Self = Self(1_000_050_000);
4509 }
4510 impl NvExtension52Fn {
name() -> &'static ::std::ffi::CStr4511     pub fn name() -> &'static ::std::ffi::CStr {
4512         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_extension_52\0")
4513             .expect("Wrong extension string")
4514     }
4515     pub const SPEC_VERSION: u32 = 0u32;
4516 }
4517 #[derive(Clone)]
4518 pub struct NvExtension52Fn {}
4519 unsafe impl Send for NvExtension52Fn {}
4520 unsafe impl Sync for NvExtension52Fn {}
4521 impl NvExtension52Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4522     pub fn load<F>(mut _f: F) -> Self
4523     where
4524         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4525     {
4526         NvExtension52Fn {}
4527     }
4528 }
4529 #[doc = "Generated from 'VK_NV_extension_52'"]
4530 impl ShaderModuleCreateFlags {
4531     pub const RESERVED_0_NV: Self = Self(0b1);
4532 }
4533 #[doc = "Generated from 'VK_NV_extension_52'"]
4534 impl PipelineShaderStageCreateFlags {
4535     pub const RESERVED_2_NV: Self = Self(0b100);
4536 }
4537 impl NvExtension53Fn {
name() -> &'static ::std::ffi::CStr4538     pub fn name() -> &'static ::std::ffi::CStr {
4539         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_extension_53\0")
4540             .expect("Wrong extension string")
4541     }
4542     pub const SPEC_VERSION: u32 = 0u32;
4543 }
4544 #[derive(Clone)]
4545 pub struct NvExtension53Fn {}
4546 unsafe impl Send for NvExtension53Fn {}
4547 unsafe impl Sync for NvExtension53Fn {}
4548 impl NvExtension53Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4549     pub fn load<F>(mut _f: F) -> Self
4550     where
4551         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4552     {
4553         NvExtension53Fn {}
4554     }
4555 }
4556 impl KhrMultiviewFn {
name() -> &'static ::std::ffi::CStr4557     pub fn name() -> &'static ::std::ffi::CStr {
4558         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_multiview\0")
4559             .expect("Wrong extension string")
4560     }
4561     pub const SPEC_VERSION: u32 = 1u32;
4562 }
4563 #[derive(Clone)]
4564 pub struct KhrMultiviewFn {}
4565 unsafe impl Send for KhrMultiviewFn {}
4566 unsafe impl Sync for KhrMultiviewFn {}
4567 impl KhrMultiviewFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4568     pub fn load<F>(mut _f: F) -> Self
4569     where
4570         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4571     {
4572         KhrMultiviewFn {}
4573     }
4574 }
4575 #[doc = "Generated from 'VK_KHR_multiview'"]
4576 impl StructureType {
4577     pub const RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR: Self = Self::RENDER_PASS_MULTIVIEW_CREATE_INFO;
4578 }
4579 #[doc = "Generated from 'VK_KHR_multiview'"]
4580 impl StructureType {
4581     pub const PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR: Self =
4582         Self::PHYSICAL_DEVICE_MULTIVIEW_FEATURES;
4583 }
4584 #[doc = "Generated from 'VK_KHR_multiview'"]
4585 impl StructureType {
4586     pub const PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR: Self =
4587         Self::PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES;
4588 }
4589 #[doc = "Generated from 'VK_KHR_multiview'"]
4590 impl DependencyFlags {
4591     pub const VIEW_LOCAL_KHR: Self = Self::VIEW_LOCAL;
4592 }
4593 impl ImgFormatPvrtcFn {
name() -> &'static ::std::ffi::CStr4594     pub fn name() -> &'static ::std::ffi::CStr {
4595         ::std::ffi::CStr::from_bytes_with_nul(b"VK_IMG_format_pvrtc\0")
4596             .expect("Wrong extension string")
4597     }
4598     pub const SPEC_VERSION: u32 = 1u32;
4599 }
4600 #[derive(Clone)]
4601 pub struct ImgFormatPvrtcFn {}
4602 unsafe impl Send for ImgFormatPvrtcFn {}
4603 unsafe impl Sync for ImgFormatPvrtcFn {}
4604 impl ImgFormatPvrtcFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4605     pub fn load<F>(mut _f: F) -> Self
4606     where
4607         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4608     {
4609         ImgFormatPvrtcFn {}
4610     }
4611 }
4612 #[doc = "Generated from 'VK_IMG_format_pvrtc'"]
4613 impl Format {
4614     pub const PVRTC1_2BPP_UNORM_BLOCK_IMG: Self = Self(1_000_054_000);
4615 }
4616 #[doc = "Generated from 'VK_IMG_format_pvrtc'"]
4617 impl Format {
4618     pub const PVRTC1_4BPP_UNORM_BLOCK_IMG: Self = Self(1_000_054_001);
4619 }
4620 #[doc = "Generated from 'VK_IMG_format_pvrtc'"]
4621 impl Format {
4622     pub const PVRTC2_2BPP_UNORM_BLOCK_IMG: Self = Self(1_000_054_002);
4623 }
4624 #[doc = "Generated from 'VK_IMG_format_pvrtc'"]
4625 impl Format {
4626     pub const PVRTC2_4BPP_UNORM_BLOCK_IMG: Self = Self(1_000_054_003);
4627 }
4628 #[doc = "Generated from 'VK_IMG_format_pvrtc'"]
4629 impl Format {
4630     pub const PVRTC1_2BPP_SRGB_BLOCK_IMG: Self = Self(1_000_054_004);
4631 }
4632 #[doc = "Generated from 'VK_IMG_format_pvrtc'"]
4633 impl Format {
4634     pub const PVRTC1_4BPP_SRGB_BLOCK_IMG: Self = Self(1_000_054_005);
4635 }
4636 #[doc = "Generated from 'VK_IMG_format_pvrtc'"]
4637 impl Format {
4638     pub const PVRTC2_2BPP_SRGB_BLOCK_IMG: Self = Self(1_000_054_006);
4639 }
4640 #[doc = "Generated from 'VK_IMG_format_pvrtc'"]
4641 impl Format {
4642     pub const PVRTC2_4BPP_SRGB_BLOCK_IMG: Self = Self(1_000_054_007);
4643 }
4644 impl NvExternalMemoryCapabilitiesFn {
name() -> &'static ::std::ffi::CStr4645     pub fn name() -> &'static ::std::ffi::CStr {
4646         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_external_memory_capabilities\0")
4647             .expect("Wrong extension string")
4648     }
4649     pub const SPEC_VERSION: u32 = 1u32;
4650 }
4651 #[allow(non_camel_case_types)]
4652 pub type PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV =
4653     unsafe extern "system" fn(
4654         physical_device: PhysicalDevice,
4655         format: Format,
4656         ty: ImageType,
4657         tiling: ImageTiling,
4658         usage: ImageUsageFlags,
4659         flags: ImageCreateFlags,
4660         external_handle_type: ExternalMemoryHandleTypeFlagsNV,
4661         p_external_image_format_properties: *mut ExternalImageFormatPropertiesNV,
4662     ) -> Result;
4663 #[derive(Clone)]
4664 pub struct NvExternalMemoryCapabilitiesFn {
4665     pub get_physical_device_external_image_format_properties_nv:
4666         PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV,
4667 }
4668 unsafe impl Send for NvExternalMemoryCapabilitiesFn {}
4669 unsafe impl Sync for NvExternalMemoryCapabilitiesFn {}
4670 impl NvExternalMemoryCapabilitiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4671     pub fn load<F>(mut _f: F) -> Self
4672     where
4673         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4674     {
4675         NvExternalMemoryCapabilitiesFn {
4676             get_physical_device_external_image_format_properties_nv: unsafe {
4677                 unsafe extern "system" fn get_physical_device_external_image_format_properties_nv(
4678                     _physical_device: PhysicalDevice,
4679                     _format: Format,
4680                     _ty: ImageType,
4681                     _tiling: ImageTiling,
4682                     _usage: ImageUsageFlags,
4683                     _flags: ImageCreateFlags,
4684                     _external_handle_type: ExternalMemoryHandleTypeFlagsNV,
4685                     _p_external_image_format_properties: *mut ExternalImageFormatPropertiesNV,
4686                 ) -> Result {
4687                     panic!(concat!(
4688                         "Unable to load ",
4689                         stringify!(get_physical_device_external_image_format_properties_nv)
4690                     ))
4691                 }
4692                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4693                     b"vkGetPhysicalDeviceExternalImageFormatPropertiesNV\0",
4694                 );
4695                 let val = _f(cname);
4696                 if val.is_null() {
4697                     get_physical_device_external_image_format_properties_nv
4698                 } else {
4699                     ::std::mem::transmute(val)
4700                 }
4701             },
4702         }
4703     }
4704     #[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, ) -> Result4705     pub unsafe fn get_physical_device_external_image_format_properties_nv(
4706         &self,
4707         physical_device: PhysicalDevice,
4708         format: Format,
4709         ty: ImageType,
4710         tiling: ImageTiling,
4711         usage: ImageUsageFlags,
4712         flags: ImageCreateFlags,
4713         external_handle_type: ExternalMemoryHandleTypeFlagsNV,
4714         p_external_image_format_properties: *mut ExternalImageFormatPropertiesNV,
4715     ) -> Result {
4716         (self.get_physical_device_external_image_format_properties_nv)(
4717             physical_device,
4718             format,
4719             ty,
4720             tiling,
4721             usage,
4722             flags,
4723             external_handle_type,
4724             p_external_image_format_properties,
4725         )
4726     }
4727 }
4728 impl NvExternalMemoryFn {
name() -> &'static ::std::ffi::CStr4729     pub fn name() -> &'static ::std::ffi::CStr {
4730         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_external_memory\0")
4731             .expect("Wrong extension string")
4732     }
4733     pub const SPEC_VERSION: u32 = 1u32;
4734 }
4735 #[derive(Clone)]
4736 pub struct NvExternalMemoryFn {}
4737 unsafe impl Send for NvExternalMemoryFn {}
4738 unsafe impl Sync for NvExternalMemoryFn {}
4739 impl NvExternalMemoryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4740     pub fn load<F>(mut _f: F) -> Self
4741     where
4742         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4743     {
4744         NvExternalMemoryFn {}
4745     }
4746 }
4747 #[doc = "Generated from 'VK_NV_external_memory'"]
4748 impl StructureType {
4749     pub const EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV: Self = Self(1_000_056_000);
4750 }
4751 #[doc = "Generated from 'VK_NV_external_memory'"]
4752 impl StructureType {
4753     pub const EXPORT_MEMORY_ALLOCATE_INFO_NV: Self = Self(1_000_056_001);
4754 }
4755 impl NvExternalMemoryWin32Fn {
name() -> &'static ::std::ffi::CStr4756     pub fn name() -> &'static ::std::ffi::CStr {
4757         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_external_memory_win32\0")
4758             .expect("Wrong extension string")
4759     }
4760     pub const SPEC_VERSION: u32 = 1u32;
4761 }
4762 #[allow(non_camel_case_types)]
4763 pub type PFN_vkGetMemoryWin32HandleNV = unsafe extern "system" fn(
4764     device: Device,
4765     memory: DeviceMemory,
4766     handle_type: ExternalMemoryHandleTypeFlagsNV,
4767     p_handle: *mut HANDLE,
4768 ) -> Result;
4769 #[derive(Clone)]
4770 pub struct NvExternalMemoryWin32Fn {
4771     pub get_memory_win32_handle_nv: PFN_vkGetMemoryWin32HandleNV,
4772 }
4773 unsafe impl Send for NvExternalMemoryWin32Fn {}
4774 unsafe impl Sync for NvExternalMemoryWin32Fn {}
4775 impl NvExternalMemoryWin32Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4776     pub fn load<F>(mut _f: F) -> Self
4777     where
4778         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4779     {
4780         NvExternalMemoryWin32Fn {
4781             get_memory_win32_handle_nv: unsafe {
4782                 unsafe extern "system" fn get_memory_win32_handle_nv(
4783                     _device: Device,
4784                     _memory: DeviceMemory,
4785                     _handle_type: ExternalMemoryHandleTypeFlagsNV,
4786                     _p_handle: *mut HANDLE,
4787                 ) -> Result {
4788                     panic!(concat!(
4789                         "Unable to load ",
4790                         stringify!(get_memory_win32_handle_nv)
4791                     ))
4792                 }
4793                 let cname =
4794                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryWin32HandleNV\0");
4795                 let val = _f(cname);
4796                 if val.is_null() {
4797                     get_memory_win32_handle_nv
4798                 } else {
4799                     ::std::mem::transmute(val)
4800                 }
4801             },
4802         }
4803     }
4804     #[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, ) -> Result4805     pub unsafe fn get_memory_win32_handle_nv(
4806         &self,
4807         device: Device,
4808         memory: DeviceMemory,
4809         handle_type: ExternalMemoryHandleTypeFlagsNV,
4810         p_handle: *mut HANDLE,
4811     ) -> Result {
4812         (self.get_memory_win32_handle_nv)(device, memory, handle_type, p_handle)
4813     }
4814 }
4815 #[doc = "Generated from 'VK_NV_external_memory_win32'"]
4816 impl StructureType {
4817     pub const IMPORT_MEMORY_WIN32_HANDLE_INFO_NV: Self = Self(1_000_057_000);
4818 }
4819 #[doc = "Generated from 'VK_NV_external_memory_win32'"]
4820 impl StructureType {
4821     pub const EXPORT_MEMORY_WIN32_HANDLE_INFO_NV: Self = Self(1_000_057_001);
4822 }
4823 impl NvWin32KeyedMutexFn {
name() -> &'static ::std::ffi::CStr4824     pub fn name() -> &'static ::std::ffi::CStr {
4825         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_win32_keyed_mutex\0")
4826             .expect("Wrong extension string")
4827     }
4828     pub const SPEC_VERSION: u32 = 2u32;
4829 }
4830 #[derive(Clone)]
4831 pub struct NvWin32KeyedMutexFn {}
4832 unsafe impl Send for NvWin32KeyedMutexFn {}
4833 unsafe impl Sync for NvWin32KeyedMutexFn {}
4834 impl NvWin32KeyedMutexFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4835     pub fn load<F>(mut _f: F) -> Self
4836     where
4837         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4838     {
4839         NvWin32KeyedMutexFn {}
4840     }
4841 }
4842 #[doc = "Generated from 'VK_NV_win32_keyed_mutex'"]
4843 impl StructureType {
4844     pub const WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV: Self = Self(1_000_058_000);
4845 }
4846 impl KhrGetPhysicalDeviceProperties2Fn {
name() -> &'static ::std::ffi::CStr4847     pub fn name() -> &'static ::std::ffi::CStr {
4848         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_get_physical_device_properties2\0")
4849             .expect("Wrong extension string")
4850     }
4851     pub const SPEC_VERSION: u32 = 2u32;
4852 }
4853 #[allow(non_camel_case_types)]
4854 pub type PFN_vkGetPhysicalDeviceFeatures2 = unsafe extern "system" fn(
4855     physical_device: PhysicalDevice,
4856     p_features: *mut PhysicalDeviceFeatures2,
4857 );
4858 #[allow(non_camel_case_types)]
4859 pub type PFN_vkGetPhysicalDeviceProperties2 = unsafe extern "system" fn(
4860     physical_device: PhysicalDevice,
4861     p_properties: *mut PhysicalDeviceProperties2,
4862 );
4863 #[allow(non_camel_case_types)]
4864 pub type PFN_vkGetPhysicalDeviceFormatProperties2 = unsafe extern "system" fn(
4865     physical_device: PhysicalDevice,
4866     format: Format,
4867     p_format_properties: *mut FormatProperties2,
4868 );
4869 #[allow(non_camel_case_types)]
4870 pub type PFN_vkGetPhysicalDeviceImageFormatProperties2 = unsafe extern "system" fn(
4871     physical_device: PhysicalDevice,
4872     p_image_format_info: *const PhysicalDeviceImageFormatInfo2,
4873     p_image_format_properties: *mut ImageFormatProperties2,
4874 ) -> Result;
4875 #[allow(non_camel_case_types)]
4876 pub type PFN_vkGetPhysicalDeviceQueueFamilyProperties2 = unsafe extern "system" fn(
4877     physical_device: PhysicalDevice,
4878     p_queue_family_property_count: *mut u32,
4879     p_queue_family_properties: *mut QueueFamilyProperties2,
4880 );
4881 #[allow(non_camel_case_types)]
4882 pub type PFN_vkGetPhysicalDeviceMemoryProperties2 = unsafe extern "system" fn(
4883     physical_device: PhysicalDevice,
4884     p_memory_properties: *mut PhysicalDeviceMemoryProperties2,
4885 );
4886 #[allow(non_camel_case_types)]
4887 pub type PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 = unsafe extern "system" fn(
4888     physical_device: PhysicalDevice,
4889     p_format_info: *const PhysicalDeviceSparseImageFormatInfo2,
4890     p_property_count: *mut u32,
4891     p_properties: *mut SparseImageFormatProperties2,
4892 );
4893 #[derive(Clone)]
4894 pub struct KhrGetPhysicalDeviceProperties2Fn {
4895     pub get_physical_device_features2_khr: PFN_vkGetPhysicalDeviceFeatures2,
4896     pub get_physical_device_properties2_khr: PFN_vkGetPhysicalDeviceProperties2,
4897     pub get_physical_device_format_properties2_khr: PFN_vkGetPhysicalDeviceFormatProperties2,
4898     pub get_physical_device_image_format_properties2_khr:
4899         PFN_vkGetPhysicalDeviceImageFormatProperties2,
4900     pub get_physical_device_queue_family_properties2_khr:
4901         PFN_vkGetPhysicalDeviceQueueFamilyProperties2,
4902     pub get_physical_device_memory_properties2_khr: PFN_vkGetPhysicalDeviceMemoryProperties2,
4903     pub get_physical_device_sparse_image_format_properties2_khr:
4904         PFN_vkGetPhysicalDeviceSparseImageFormatProperties2,
4905 }
4906 unsafe impl Send for KhrGetPhysicalDeviceProperties2Fn {}
4907 unsafe impl Sync for KhrGetPhysicalDeviceProperties2Fn {}
4908 impl KhrGetPhysicalDeviceProperties2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4909     pub fn load<F>(mut _f: F) -> Self
4910     where
4911         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4912     {
4913         KhrGetPhysicalDeviceProperties2Fn {
4914             get_physical_device_features2_khr: unsafe {
4915                 unsafe extern "system" fn get_physical_device_features2_khr(
4916                     _physical_device: PhysicalDevice,
4917                     _p_features: *mut PhysicalDeviceFeatures2,
4918                 ) {
4919                     panic!(concat!(
4920                         "Unable to load ",
4921                         stringify!(get_physical_device_features2_khr)
4922                     ))
4923                 }
4924                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4925                     b"vkGetPhysicalDeviceFeatures2KHR\0",
4926                 );
4927                 let val = _f(cname);
4928                 if val.is_null() {
4929                     get_physical_device_features2_khr
4930                 } else {
4931                     ::std::mem::transmute(val)
4932                 }
4933             },
4934             get_physical_device_properties2_khr: unsafe {
4935                 unsafe extern "system" fn get_physical_device_properties2_khr(
4936                     _physical_device: PhysicalDevice,
4937                     _p_properties: *mut PhysicalDeviceProperties2,
4938                 ) {
4939                     panic!(concat!(
4940                         "Unable to load ",
4941                         stringify!(get_physical_device_properties2_khr)
4942                     ))
4943                 }
4944                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4945                     b"vkGetPhysicalDeviceProperties2KHR\0",
4946                 );
4947                 let val = _f(cname);
4948                 if val.is_null() {
4949                     get_physical_device_properties2_khr
4950                 } else {
4951                     ::std::mem::transmute(val)
4952                 }
4953             },
4954             get_physical_device_format_properties2_khr: unsafe {
4955                 unsafe extern "system" fn get_physical_device_format_properties2_khr(
4956                     _physical_device: PhysicalDevice,
4957                     _format: Format,
4958                     _p_format_properties: *mut FormatProperties2,
4959                 ) {
4960                     panic!(concat!(
4961                         "Unable to load ",
4962                         stringify!(get_physical_device_format_properties2_khr)
4963                     ))
4964                 }
4965                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4966                     b"vkGetPhysicalDeviceFormatProperties2KHR\0",
4967                 );
4968                 let val = _f(cname);
4969                 if val.is_null() {
4970                     get_physical_device_format_properties2_khr
4971                 } else {
4972                     ::std::mem::transmute(val)
4973                 }
4974             },
4975             get_physical_device_image_format_properties2_khr: unsafe {
4976                 unsafe extern "system" fn get_physical_device_image_format_properties2_khr(
4977                     _physical_device: PhysicalDevice,
4978                     _p_image_format_info: *const PhysicalDeviceImageFormatInfo2,
4979                     _p_image_format_properties: *mut ImageFormatProperties2,
4980                 ) -> Result {
4981                     panic!(concat!(
4982                         "Unable to load ",
4983                         stringify!(get_physical_device_image_format_properties2_khr)
4984                     ))
4985                 }
4986                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4987                     b"vkGetPhysicalDeviceImageFormatProperties2KHR\0",
4988                 );
4989                 let val = _f(cname);
4990                 if val.is_null() {
4991                     get_physical_device_image_format_properties2_khr
4992                 } else {
4993                     ::std::mem::transmute(val)
4994                 }
4995             },
4996             get_physical_device_queue_family_properties2_khr: unsafe {
4997                 unsafe extern "system" fn get_physical_device_queue_family_properties2_khr(
4998                     _physical_device: PhysicalDevice,
4999                     _p_queue_family_property_count: *mut u32,
5000                     _p_queue_family_properties: *mut QueueFamilyProperties2,
5001                 ) {
5002                     panic!(concat!(
5003                         "Unable to load ",
5004                         stringify!(get_physical_device_queue_family_properties2_khr)
5005                     ))
5006                 }
5007                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5008                     b"vkGetPhysicalDeviceQueueFamilyProperties2KHR\0",
5009                 );
5010                 let val = _f(cname);
5011                 if val.is_null() {
5012                     get_physical_device_queue_family_properties2_khr
5013                 } else {
5014                     ::std::mem::transmute(val)
5015                 }
5016             },
5017             get_physical_device_memory_properties2_khr: unsafe {
5018                 unsafe extern "system" fn get_physical_device_memory_properties2_khr(
5019                     _physical_device: PhysicalDevice,
5020                     _p_memory_properties: *mut PhysicalDeviceMemoryProperties2,
5021                 ) {
5022                     panic!(concat!(
5023                         "Unable to load ",
5024                         stringify!(get_physical_device_memory_properties2_khr)
5025                     ))
5026                 }
5027                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5028                     b"vkGetPhysicalDeviceMemoryProperties2KHR\0",
5029                 );
5030                 let val = _f(cname);
5031                 if val.is_null() {
5032                     get_physical_device_memory_properties2_khr
5033                 } else {
5034                     ::std::mem::transmute(val)
5035                 }
5036             },
5037             get_physical_device_sparse_image_format_properties2_khr: unsafe {
5038                 unsafe extern "system" fn get_physical_device_sparse_image_format_properties2_khr(
5039                     _physical_device: PhysicalDevice,
5040                     _p_format_info: *const PhysicalDeviceSparseImageFormatInfo2,
5041                     _p_property_count: *mut u32,
5042                     _p_properties: *mut SparseImageFormatProperties2,
5043                 ) {
5044                     panic!(concat!(
5045                         "Unable to load ",
5046                         stringify!(get_physical_device_sparse_image_format_properties2_khr)
5047                     ))
5048                 }
5049                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5050                     b"vkGetPhysicalDeviceSparseImageFormatProperties2KHR\0",
5051                 );
5052                 let val = _f(cname);
5053                 if val.is_null() {
5054                     get_physical_device_sparse_image_format_properties2_khr
5055                 } else {
5056                     ::std::mem::transmute(val)
5057                 }
5058             },
5059         }
5060     }
5061     #[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, )5062     pub unsafe fn get_physical_device_features2_khr(
5063         &self,
5064         physical_device: PhysicalDevice,
5065         p_features: *mut PhysicalDeviceFeatures2,
5066     ) {
5067         (self.get_physical_device_features2_khr)(physical_device, p_features)
5068     }
5069     #[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, )5070     pub unsafe fn get_physical_device_properties2_khr(
5071         &self,
5072         physical_device: PhysicalDevice,
5073         p_properties: *mut PhysicalDeviceProperties2,
5074     ) {
5075         (self.get_physical_device_properties2_khr)(physical_device, p_properties)
5076     }
5077     #[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, )5078     pub unsafe fn get_physical_device_format_properties2_khr(
5079         &self,
5080         physical_device: PhysicalDevice,
5081         format: Format,
5082         p_format_properties: *mut FormatProperties2,
5083     ) {
5084         (self.get_physical_device_format_properties2_khr)(
5085             physical_device,
5086             format,
5087             p_format_properties,
5088         )
5089     }
5090     #[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, ) -> Result5091     pub unsafe fn get_physical_device_image_format_properties2_khr(
5092         &self,
5093         physical_device: PhysicalDevice,
5094         p_image_format_info: *const PhysicalDeviceImageFormatInfo2,
5095         p_image_format_properties: *mut ImageFormatProperties2,
5096     ) -> Result {
5097         (self.get_physical_device_image_format_properties2_khr)(
5098             physical_device,
5099             p_image_format_info,
5100             p_image_format_properties,
5101         )
5102     }
5103     #[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, )5104     pub unsafe fn get_physical_device_queue_family_properties2_khr(
5105         &self,
5106         physical_device: PhysicalDevice,
5107         p_queue_family_property_count: *mut u32,
5108         p_queue_family_properties: *mut QueueFamilyProperties2,
5109     ) {
5110         (self.get_physical_device_queue_family_properties2_khr)(
5111             physical_device,
5112             p_queue_family_property_count,
5113             p_queue_family_properties,
5114         )
5115     }
5116     #[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, )5117     pub unsafe fn get_physical_device_memory_properties2_khr(
5118         &self,
5119         physical_device: PhysicalDevice,
5120         p_memory_properties: *mut PhysicalDeviceMemoryProperties2,
5121     ) {
5122         (self.get_physical_device_memory_properties2_khr)(physical_device, p_memory_properties)
5123     }
5124     #[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, )5125     pub unsafe fn get_physical_device_sparse_image_format_properties2_khr(
5126         &self,
5127         physical_device: PhysicalDevice,
5128         p_format_info: *const PhysicalDeviceSparseImageFormatInfo2,
5129         p_property_count: *mut u32,
5130         p_properties: *mut SparseImageFormatProperties2,
5131     ) {
5132         (self.get_physical_device_sparse_image_format_properties2_khr)(
5133             physical_device,
5134             p_format_info,
5135             p_property_count,
5136             p_properties,
5137         )
5138     }
5139 }
5140 #[doc = "Generated from 'VK_KHR_get_physical_device_properties2'"]
5141 impl StructureType {
5142     pub const PHYSICAL_DEVICE_FEATURES_2_KHR: Self = Self::PHYSICAL_DEVICE_FEATURES_2;
5143 }
5144 #[doc = "Generated from 'VK_KHR_get_physical_device_properties2'"]
5145 impl StructureType {
5146     pub const PHYSICAL_DEVICE_PROPERTIES_2_KHR: Self = Self::PHYSICAL_DEVICE_PROPERTIES_2;
5147 }
5148 #[doc = "Generated from 'VK_KHR_get_physical_device_properties2'"]
5149 impl StructureType {
5150     pub const FORMAT_PROPERTIES_2_KHR: Self = Self::FORMAT_PROPERTIES_2;
5151 }
5152 #[doc = "Generated from 'VK_KHR_get_physical_device_properties2'"]
5153 impl StructureType {
5154     pub const IMAGE_FORMAT_PROPERTIES_2_KHR: Self = Self::IMAGE_FORMAT_PROPERTIES_2;
5155 }
5156 #[doc = "Generated from 'VK_KHR_get_physical_device_properties2'"]
5157 impl StructureType {
5158     pub const PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR: Self =
5159         Self::PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2;
5160 }
5161 #[doc = "Generated from 'VK_KHR_get_physical_device_properties2'"]
5162 impl StructureType {
5163     pub const QUEUE_FAMILY_PROPERTIES_2_KHR: Self = Self::QUEUE_FAMILY_PROPERTIES_2;
5164 }
5165 #[doc = "Generated from 'VK_KHR_get_physical_device_properties2'"]
5166 impl StructureType {
5167     pub const PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR: Self =
5168         Self::PHYSICAL_DEVICE_MEMORY_PROPERTIES_2;
5169 }
5170 #[doc = "Generated from 'VK_KHR_get_physical_device_properties2'"]
5171 impl StructureType {
5172     pub const SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR: Self = Self::SPARSE_IMAGE_FORMAT_PROPERTIES_2;
5173 }
5174 #[doc = "Generated from 'VK_KHR_get_physical_device_properties2'"]
5175 impl StructureType {
5176     pub const PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR: Self =
5177         Self::PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2;
5178 }
5179 impl KhrDeviceGroupFn {
name() -> &'static ::std::ffi::CStr5180     pub fn name() -> &'static ::std::ffi::CStr {
5181         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_device_group\0")
5182             .expect("Wrong extension string")
5183     }
5184     pub const SPEC_VERSION: u32 = 4u32;
5185 }
5186 #[allow(non_camel_case_types)]
5187 pub type PFN_vkGetDeviceGroupPeerMemoryFeatures = unsafe extern "system" fn(
5188     device: Device,
5189     heap_index: u32,
5190     local_device_index: u32,
5191     remote_device_index: u32,
5192     p_peer_memory_features: *mut PeerMemoryFeatureFlags,
5193 );
5194 #[allow(non_camel_case_types)]
5195 pub type PFN_vkCmdSetDeviceMask =
5196     unsafe extern "system" fn(command_buffer: CommandBuffer, device_mask: u32);
5197 #[allow(non_camel_case_types)]
5198 pub type PFN_vkCmdDispatchBase = unsafe extern "system" fn(
5199     command_buffer: CommandBuffer,
5200     base_group_x: u32,
5201     base_group_y: u32,
5202     base_group_z: u32,
5203     group_count_x: u32,
5204     group_count_y: u32,
5205     group_count_z: u32,
5206 );
5207 #[derive(Clone)]
5208 pub struct KhrDeviceGroupFn {
5209     pub get_device_group_peer_memory_features_khr: PFN_vkGetDeviceGroupPeerMemoryFeatures,
5210     pub cmd_set_device_mask_khr: PFN_vkCmdSetDeviceMask,
5211     pub cmd_dispatch_base_khr: PFN_vkCmdDispatchBase,
5212     pub get_device_group_present_capabilities_khr:
5213         crate::vk::PFN_vkGetDeviceGroupPresentCapabilitiesKHR,
5214     pub get_device_group_surface_present_modes_khr:
5215         crate::vk::PFN_vkGetDeviceGroupSurfacePresentModesKHR,
5216     pub get_physical_device_present_rectangles_khr:
5217         crate::vk::PFN_vkGetPhysicalDevicePresentRectanglesKHR,
5218     pub acquire_next_image2_khr: crate::vk::PFN_vkAcquireNextImage2KHR,
5219 }
5220 unsafe impl Send for KhrDeviceGroupFn {}
5221 unsafe impl Sync for KhrDeviceGroupFn {}
5222 impl KhrDeviceGroupFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5223     pub fn load<F>(mut _f: F) -> Self
5224     where
5225         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5226     {
5227         KhrDeviceGroupFn {
5228             get_device_group_peer_memory_features_khr: unsafe {
5229                 unsafe extern "system" fn get_device_group_peer_memory_features_khr(
5230                     _device: Device,
5231                     _heap_index: u32,
5232                     _local_device_index: u32,
5233                     _remote_device_index: u32,
5234                     _p_peer_memory_features: *mut PeerMemoryFeatureFlags,
5235                 ) {
5236                     panic!(concat!(
5237                         "Unable to load ",
5238                         stringify!(get_device_group_peer_memory_features_khr)
5239                     ))
5240                 }
5241                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5242                     b"vkGetDeviceGroupPeerMemoryFeaturesKHR\0",
5243                 );
5244                 let val = _f(cname);
5245                 if val.is_null() {
5246                     get_device_group_peer_memory_features_khr
5247                 } else {
5248                     ::std::mem::transmute(val)
5249                 }
5250             },
5251             cmd_set_device_mask_khr: unsafe {
5252                 unsafe extern "system" fn cmd_set_device_mask_khr(
5253                     _command_buffer: CommandBuffer,
5254                     _device_mask: u32,
5255                 ) {
5256                     panic!(concat!(
5257                         "Unable to load ",
5258                         stringify!(cmd_set_device_mask_khr)
5259                     ))
5260                 }
5261                 let cname =
5262                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDeviceMaskKHR\0");
5263                 let val = _f(cname);
5264                 if val.is_null() {
5265                     cmd_set_device_mask_khr
5266                 } else {
5267                     ::std::mem::transmute(val)
5268                 }
5269             },
5270             cmd_dispatch_base_khr: unsafe {
5271                 unsafe extern "system" fn cmd_dispatch_base_khr(
5272                     _command_buffer: CommandBuffer,
5273                     _base_group_x: u32,
5274                     _base_group_y: u32,
5275                     _base_group_z: u32,
5276                     _group_count_x: u32,
5277                     _group_count_y: u32,
5278                     _group_count_z: u32,
5279                 ) {
5280                     panic!(concat!(
5281                         "Unable to load ",
5282                         stringify!(cmd_dispatch_base_khr)
5283                     ))
5284                 }
5285                 let cname =
5286                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDispatchBaseKHR\0");
5287                 let val = _f(cname);
5288                 if val.is_null() {
5289                     cmd_dispatch_base_khr
5290                 } else {
5291                     ::std::mem::transmute(val)
5292                 }
5293             },
5294             get_device_group_present_capabilities_khr: unsafe {
5295                 unsafe extern "system" fn get_device_group_present_capabilities_khr(
5296                     _device: Device,
5297                     _p_device_group_present_capabilities: *mut DeviceGroupPresentCapabilitiesKHR,
5298                 ) -> Result {
5299                     panic!(concat!(
5300                         "Unable to load ",
5301                         stringify!(get_device_group_present_capabilities_khr)
5302                     ))
5303                 }
5304                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5305                     b"vkGetDeviceGroupPresentCapabilitiesKHR\0",
5306                 );
5307                 let val = _f(cname);
5308                 if val.is_null() {
5309                     get_device_group_present_capabilities_khr
5310                 } else {
5311                     ::std::mem::transmute(val)
5312                 }
5313             },
5314             get_device_group_surface_present_modes_khr: unsafe {
5315                 unsafe extern "system" fn get_device_group_surface_present_modes_khr(
5316                     _device: Device,
5317                     _surface: SurfaceKHR,
5318                     _p_modes: *mut DeviceGroupPresentModeFlagsKHR,
5319                 ) -> Result {
5320                     panic!(concat!(
5321                         "Unable to load ",
5322                         stringify!(get_device_group_surface_present_modes_khr)
5323                     ))
5324                 }
5325                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5326                     b"vkGetDeviceGroupSurfacePresentModesKHR\0",
5327                 );
5328                 let val = _f(cname);
5329                 if val.is_null() {
5330                     get_device_group_surface_present_modes_khr
5331                 } else {
5332                     ::std::mem::transmute(val)
5333                 }
5334             },
5335             get_physical_device_present_rectangles_khr: unsafe {
5336                 unsafe extern "system" fn get_physical_device_present_rectangles_khr(
5337                     _physical_device: PhysicalDevice,
5338                     _surface: SurfaceKHR,
5339                     _p_rect_count: *mut u32,
5340                     _p_rects: *mut Rect2D,
5341                 ) -> Result {
5342                     panic!(concat!(
5343                         "Unable to load ",
5344                         stringify!(get_physical_device_present_rectangles_khr)
5345                     ))
5346                 }
5347                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5348                     b"vkGetPhysicalDevicePresentRectanglesKHR\0",
5349                 );
5350                 let val = _f(cname);
5351                 if val.is_null() {
5352                     get_physical_device_present_rectangles_khr
5353                 } else {
5354                     ::std::mem::transmute(val)
5355                 }
5356             },
5357             acquire_next_image2_khr: unsafe {
5358                 unsafe extern "system" fn acquire_next_image2_khr(
5359                     _device: Device,
5360                     _p_acquire_info: *const AcquireNextImageInfoKHR,
5361                     _p_image_index: *mut u32,
5362                 ) -> Result {
5363                     panic!(concat!(
5364                         "Unable to load ",
5365                         stringify!(acquire_next_image2_khr)
5366                     ))
5367                 }
5368                 let cname =
5369                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireNextImage2KHR\0");
5370                 let val = _f(cname);
5371                 if val.is_null() {
5372                     acquire_next_image2_khr
5373                 } else {
5374                     ::std::mem::transmute(val)
5375                 }
5376             },
5377         }
5378     }
5379     #[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, )5380     pub unsafe fn get_device_group_peer_memory_features_khr(
5381         &self,
5382         device: Device,
5383         heap_index: u32,
5384         local_device_index: u32,
5385         remote_device_index: u32,
5386         p_peer_memory_features: *mut PeerMemoryFeatureFlags,
5387     ) {
5388         (self.get_device_group_peer_memory_features_khr)(
5389             device,
5390             heap_index,
5391             local_device_index,
5392             remote_device_index,
5393             p_peer_memory_features,
5394         )
5395     }
5396     #[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)5397     pub unsafe fn cmd_set_device_mask_khr(&self, command_buffer: CommandBuffer, device_mask: u32) {
5398         (self.cmd_set_device_mask_khr)(command_buffer, device_mask)
5399     }
5400     #[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, )5401     pub unsafe fn cmd_dispatch_base_khr(
5402         &self,
5403         command_buffer: CommandBuffer,
5404         base_group_x: u32,
5405         base_group_y: u32,
5406         base_group_z: u32,
5407         group_count_x: u32,
5408         group_count_y: u32,
5409         group_count_z: u32,
5410     ) {
5411         (self.cmd_dispatch_base_khr)(
5412             command_buffer,
5413             base_group_x,
5414             base_group_y,
5415             base_group_z,
5416             group_count_x,
5417             group_count_y,
5418             group_count_z,
5419         )
5420     }
5421     #[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, ) -> Result5422     pub unsafe fn get_device_group_present_capabilities_khr(
5423         &self,
5424         device: Device,
5425         p_device_group_present_capabilities: *mut DeviceGroupPresentCapabilitiesKHR,
5426     ) -> Result {
5427         (self.get_device_group_present_capabilities_khr)(
5428             device,
5429             p_device_group_present_capabilities,
5430         )
5431     }
5432     #[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, ) -> Result5433     pub unsafe fn get_device_group_surface_present_modes_khr(
5434         &self,
5435         device: Device,
5436         surface: SurfaceKHR,
5437         p_modes: *mut DeviceGroupPresentModeFlagsKHR,
5438     ) -> Result {
5439         (self.get_device_group_surface_present_modes_khr)(device, surface, p_modes)
5440     }
5441     #[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, ) -> Result5442     pub unsafe fn get_physical_device_present_rectangles_khr(
5443         &self,
5444         physical_device: PhysicalDevice,
5445         surface: SurfaceKHR,
5446         p_rect_count: *mut u32,
5447         p_rects: *mut Rect2D,
5448     ) -> Result {
5449         (self.get_physical_device_present_rectangles_khr)(
5450             physical_device,
5451             surface,
5452             p_rect_count,
5453             p_rects,
5454         )
5455     }
5456     #[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, ) -> Result5457     pub unsafe fn acquire_next_image2_khr(
5458         &self,
5459         device: Device,
5460         p_acquire_info: *const AcquireNextImageInfoKHR,
5461         p_image_index: *mut u32,
5462     ) -> Result {
5463         (self.acquire_next_image2_khr)(device, p_acquire_info, p_image_index)
5464     }
5465 }
5466 #[doc = "Generated from 'VK_KHR_device_group'"]
5467 impl StructureType {
5468     pub const MEMORY_ALLOCATE_FLAGS_INFO_KHR: Self = Self::MEMORY_ALLOCATE_FLAGS_INFO;
5469 }
5470 #[doc = "Generated from 'VK_KHR_device_group'"]
5471 impl StructureType {
5472     pub const DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR: Self =
5473         Self::DEVICE_GROUP_RENDER_PASS_BEGIN_INFO;
5474 }
5475 #[doc = "Generated from 'VK_KHR_device_group'"]
5476 impl StructureType {
5477     pub const DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR: Self =
5478         Self::DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO;
5479 }
5480 #[doc = "Generated from 'VK_KHR_device_group'"]
5481 impl StructureType {
5482     pub const DEVICE_GROUP_SUBMIT_INFO_KHR: Self = Self::DEVICE_GROUP_SUBMIT_INFO;
5483 }
5484 #[doc = "Generated from 'VK_KHR_device_group'"]
5485 impl StructureType {
5486     pub const DEVICE_GROUP_BIND_SPARSE_INFO_KHR: Self = Self::DEVICE_GROUP_BIND_SPARSE_INFO;
5487 }
5488 #[doc = "Generated from 'VK_KHR_device_group'"]
5489 impl PeerMemoryFeatureFlags {
5490     pub const COPY_SRC_KHR: Self = Self::COPY_SRC;
5491 }
5492 #[doc = "Generated from 'VK_KHR_device_group'"]
5493 impl PeerMemoryFeatureFlags {
5494     pub const COPY_DST_KHR: Self = Self::COPY_DST;
5495 }
5496 #[doc = "Generated from 'VK_KHR_device_group'"]
5497 impl PeerMemoryFeatureFlags {
5498     pub const GENERIC_SRC_KHR: Self = Self::GENERIC_SRC;
5499 }
5500 #[doc = "Generated from 'VK_KHR_device_group'"]
5501 impl PeerMemoryFeatureFlags {
5502     pub const GENERIC_DST_KHR: Self = Self::GENERIC_DST;
5503 }
5504 #[doc = "Generated from 'VK_KHR_device_group'"]
5505 impl MemoryAllocateFlags {
5506     pub const DEVICE_MASK_KHR: Self = Self::DEVICE_MASK;
5507 }
5508 #[doc = "Generated from 'VK_KHR_device_group'"]
5509 impl PipelineCreateFlags {
5510     pub const VIEW_INDEX_FROM_DEVICE_INDEX_KHR: Self = Self::VIEW_INDEX_FROM_DEVICE_INDEX;
5511 }
5512 #[doc = "Generated from 'VK_KHR_device_group'"]
5513 impl DependencyFlags {
5514     pub const DEVICE_GROUP_KHR: Self = Self::DEVICE_GROUP;
5515 }
5516 #[doc = "Generated from 'VK_KHR_device_group'"]
5517 impl StructureType {
5518     pub const BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR: Self =
5519         Self::BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO;
5520 }
5521 #[doc = "Generated from 'VK_KHR_device_group'"]
5522 impl StructureType {
5523     pub const BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR: Self =
5524         Self::BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO;
5525 }
5526 #[doc = "Generated from 'VK_KHR_device_group'"]
5527 impl ImageCreateFlags {
5528     pub const SPLIT_INSTANCE_BIND_REGIONS_KHR: Self = Self::SPLIT_INSTANCE_BIND_REGIONS;
5529 }
5530 impl ExtValidationFlagsFn {
name() -> &'static ::std::ffi::CStr5531     pub fn name() -> &'static ::std::ffi::CStr {
5532         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_validation_flags\0")
5533             .expect("Wrong extension string")
5534     }
5535     pub const SPEC_VERSION: u32 = 2u32;
5536 }
5537 #[derive(Clone)]
5538 pub struct ExtValidationFlagsFn {}
5539 unsafe impl Send for ExtValidationFlagsFn {}
5540 unsafe impl Sync for ExtValidationFlagsFn {}
5541 impl ExtValidationFlagsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5542     pub fn load<F>(mut _f: F) -> Self
5543     where
5544         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5545     {
5546         ExtValidationFlagsFn {}
5547     }
5548 }
5549 #[doc = "Generated from 'VK_EXT_validation_flags'"]
5550 impl StructureType {
5551     pub const VALIDATION_FLAGS_EXT: Self = Self(1_000_061_000);
5552 }
5553 impl NnViSurfaceFn {
name() -> &'static ::std::ffi::CStr5554     pub fn name() -> &'static ::std::ffi::CStr {
5555         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NN_vi_surface\0")
5556             .expect("Wrong extension string")
5557     }
5558     pub const SPEC_VERSION: u32 = 1u32;
5559 }
5560 #[allow(non_camel_case_types)]
5561 pub type PFN_vkCreateViSurfaceNN = unsafe extern "system" fn(
5562     instance: Instance,
5563     p_create_info: *const ViSurfaceCreateInfoNN,
5564     p_allocator: *const AllocationCallbacks,
5565     p_surface: *mut SurfaceKHR,
5566 ) -> Result;
5567 #[derive(Clone)]
5568 pub struct NnViSurfaceFn {
5569     pub create_vi_surface_nn: PFN_vkCreateViSurfaceNN,
5570 }
5571 unsafe impl Send for NnViSurfaceFn {}
5572 unsafe impl Sync for NnViSurfaceFn {}
5573 impl NnViSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5574     pub fn load<F>(mut _f: F) -> Self
5575     where
5576         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5577     {
5578         NnViSurfaceFn {
5579             create_vi_surface_nn: unsafe {
5580                 unsafe extern "system" fn create_vi_surface_nn(
5581                     _instance: Instance,
5582                     _p_create_info: *const ViSurfaceCreateInfoNN,
5583                     _p_allocator: *const AllocationCallbacks,
5584                     _p_surface: *mut SurfaceKHR,
5585                 ) -> Result {
5586                     panic!(concat!("Unable to load ", stringify!(create_vi_surface_nn)))
5587                 }
5588                 let cname =
5589                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateViSurfaceNN\0");
5590                 let val = _f(cname);
5591                 if val.is_null() {
5592                     create_vi_surface_nn
5593                 } else {
5594                     ::std::mem::transmute(val)
5595                 }
5596             },
5597         }
5598     }
5599     #[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, ) -> Result5600     pub unsafe fn create_vi_surface_nn(
5601         &self,
5602         instance: Instance,
5603         p_create_info: *const ViSurfaceCreateInfoNN,
5604         p_allocator: *const AllocationCallbacks,
5605         p_surface: *mut SurfaceKHR,
5606     ) -> Result {
5607         (self.create_vi_surface_nn)(instance, p_create_info, p_allocator, p_surface)
5608     }
5609 }
5610 #[doc = "Generated from 'VK_NN_vi_surface'"]
5611 impl StructureType {
5612     pub const VI_SURFACE_CREATE_INFO_NN: Self = Self(1_000_062_000);
5613 }
5614 impl KhrShaderDrawParametersFn {
name() -> &'static ::std::ffi::CStr5615     pub fn name() -> &'static ::std::ffi::CStr {
5616         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_shader_draw_parameters\0")
5617             .expect("Wrong extension string")
5618     }
5619     pub const SPEC_VERSION: u32 = 1u32;
5620 }
5621 #[derive(Clone)]
5622 pub struct KhrShaderDrawParametersFn {}
5623 unsafe impl Send for KhrShaderDrawParametersFn {}
5624 unsafe impl Sync for KhrShaderDrawParametersFn {}
5625 impl KhrShaderDrawParametersFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5626     pub fn load<F>(mut _f: F) -> Self
5627     where
5628         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5629     {
5630         KhrShaderDrawParametersFn {}
5631     }
5632 }
5633 impl ExtShaderSubgroupBallotFn {
name() -> &'static ::std::ffi::CStr5634     pub fn name() -> &'static ::std::ffi::CStr {
5635         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_shader_subgroup_ballot\0")
5636             .expect("Wrong extension string")
5637     }
5638     pub const SPEC_VERSION: u32 = 1u32;
5639 }
5640 #[derive(Clone)]
5641 pub struct ExtShaderSubgroupBallotFn {}
5642 unsafe impl Send for ExtShaderSubgroupBallotFn {}
5643 unsafe impl Sync for ExtShaderSubgroupBallotFn {}
5644 impl ExtShaderSubgroupBallotFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5645     pub fn load<F>(mut _f: F) -> Self
5646     where
5647         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5648     {
5649         ExtShaderSubgroupBallotFn {}
5650     }
5651 }
5652 impl ExtShaderSubgroupVoteFn {
name() -> &'static ::std::ffi::CStr5653     pub fn name() -> &'static ::std::ffi::CStr {
5654         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_shader_subgroup_vote\0")
5655             .expect("Wrong extension string")
5656     }
5657     pub const SPEC_VERSION: u32 = 1u32;
5658 }
5659 #[derive(Clone)]
5660 pub struct ExtShaderSubgroupVoteFn {}
5661 unsafe impl Send for ExtShaderSubgroupVoteFn {}
5662 unsafe impl Sync for ExtShaderSubgroupVoteFn {}
5663 impl ExtShaderSubgroupVoteFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5664     pub fn load<F>(mut _f: F) -> Self
5665     where
5666         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5667     {
5668         ExtShaderSubgroupVoteFn {}
5669     }
5670 }
5671 impl ExtTextureCompressionAstcHdrFn {
name() -> &'static ::std::ffi::CStr5672     pub fn name() -> &'static ::std::ffi::CStr {
5673         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_texture_compression_astc_hdr\0")
5674             .expect("Wrong extension string")
5675     }
5676     pub const SPEC_VERSION: u32 = 1u32;
5677 }
5678 #[derive(Clone)]
5679 pub struct ExtTextureCompressionAstcHdrFn {}
5680 unsafe impl Send for ExtTextureCompressionAstcHdrFn {}
5681 unsafe impl Sync for ExtTextureCompressionAstcHdrFn {}
5682 impl ExtTextureCompressionAstcHdrFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5683     pub fn load<F>(mut _f: F) -> Self
5684     where
5685         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5686     {
5687         ExtTextureCompressionAstcHdrFn {}
5688     }
5689 }
5690 #[doc = "Generated from 'VK_EXT_texture_compression_astc_hdr'"]
5691 impl StructureType {
5692     pub const PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT: Self = Self(1_000_066_000);
5693 }
5694 #[doc = "Generated from 'VK_EXT_texture_compression_astc_hdr'"]
5695 impl Format {
5696     pub const ASTC_4X4_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_000);
5697 }
5698 #[doc = "Generated from 'VK_EXT_texture_compression_astc_hdr'"]
5699 impl Format {
5700     pub const ASTC_5X4_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_001);
5701 }
5702 #[doc = "Generated from 'VK_EXT_texture_compression_astc_hdr'"]
5703 impl Format {
5704     pub const ASTC_5X5_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_002);
5705 }
5706 #[doc = "Generated from 'VK_EXT_texture_compression_astc_hdr'"]
5707 impl Format {
5708     pub const ASTC_6X5_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_003);
5709 }
5710 #[doc = "Generated from 'VK_EXT_texture_compression_astc_hdr'"]
5711 impl Format {
5712     pub const ASTC_6X6_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_004);
5713 }
5714 #[doc = "Generated from 'VK_EXT_texture_compression_astc_hdr'"]
5715 impl Format {
5716     pub const ASTC_8X5_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_005);
5717 }
5718 #[doc = "Generated from 'VK_EXT_texture_compression_astc_hdr'"]
5719 impl Format {
5720     pub const ASTC_8X6_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_006);
5721 }
5722 #[doc = "Generated from 'VK_EXT_texture_compression_astc_hdr'"]
5723 impl Format {
5724     pub const ASTC_8X8_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_007);
5725 }
5726 #[doc = "Generated from 'VK_EXT_texture_compression_astc_hdr'"]
5727 impl Format {
5728     pub const ASTC_10X5_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_008);
5729 }
5730 #[doc = "Generated from 'VK_EXT_texture_compression_astc_hdr'"]
5731 impl Format {
5732     pub const ASTC_10X6_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_009);
5733 }
5734 #[doc = "Generated from 'VK_EXT_texture_compression_astc_hdr'"]
5735 impl Format {
5736     pub const ASTC_10X8_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_010);
5737 }
5738 #[doc = "Generated from 'VK_EXT_texture_compression_astc_hdr'"]
5739 impl Format {
5740     pub const ASTC_10X10_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_011);
5741 }
5742 #[doc = "Generated from 'VK_EXT_texture_compression_astc_hdr'"]
5743 impl Format {
5744     pub const ASTC_12X10_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_012);
5745 }
5746 #[doc = "Generated from 'VK_EXT_texture_compression_astc_hdr'"]
5747 impl Format {
5748     pub const ASTC_12X12_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_013);
5749 }
5750 impl ExtAstcDecodeModeFn {
name() -> &'static ::std::ffi::CStr5751     pub fn name() -> &'static ::std::ffi::CStr {
5752         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_astc_decode_mode\0")
5753             .expect("Wrong extension string")
5754     }
5755     pub const SPEC_VERSION: u32 = 1u32;
5756 }
5757 #[derive(Clone)]
5758 pub struct ExtAstcDecodeModeFn {}
5759 unsafe impl Send for ExtAstcDecodeModeFn {}
5760 unsafe impl Sync for ExtAstcDecodeModeFn {}
5761 impl ExtAstcDecodeModeFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5762     pub fn load<F>(mut _f: F) -> Self
5763     where
5764         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5765     {
5766         ExtAstcDecodeModeFn {}
5767     }
5768 }
5769 #[doc = "Generated from 'VK_EXT_astc_decode_mode'"]
5770 impl StructureType {
5771     pub const IMAGE_VIEW_ASTC_DECODE_MODE_EXT: Self = Self(1_000_067_000);
5772 }
5773 #[doc = "Generated from 'VK_EXT_astc_decode_mode'"]
5774 impl StructureType {
5775     pub const PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT: Self = Self(1_000_067_001);
5776 }
5777 impl ImgExtension69Fn {
name() -> &'static ::std::ffi::CStr5778     pub fn name() -> &'static ::std::ffi::CStr {
5779         ::std::ffi::CStr::from_bytes_with_nul(b"VK_IMG_extension_69\0")
5780             .expect("Wrong extension string")
5781     }
5782     pub const SPEC_VERSION: u32 = 0u32;
5783 }
5784 #[derive(Clone)]
5785 pub struct ImgExtension69Fn {}
5786 unsafe impl Send for ImgExtension69Fn {}
5787 unsafe impl Sync for ImgExtension69Fn {}
5788 impl ImgExtension69Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5789     pub fn load<F>(mut _f: F) -> Self
5790     where
5791         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5792     {
5793         ImgExtension69Fn {}
5794     }
5795 }
5796 impl KhrMaintenance1Fn {
name() -> &'static ::std::ffi::CStr5797     pub fn name() -> &'static ::std::ffi::CStr {
5798         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_maintenance1\0")
5799             .expect("Wrong extension string")
5800     }
5801     pub const SPEC_VERSION: u32 = 2u32;
5802 }
5803 #[allow(non_camel_case_types)]
5804 pub type PFN_vkTrimCommandPool = unsafe extern "system" fn(
5805     device: Device,
5806     command_pool: CommandPool,
5807     flags: CommandPoolTrimFlags,
5808 );
5809 #[derive(Clone)]
5810 pub struct KhrMaintenance1Fn {
5811     pub trim_command_pool_khr: PFN_vkTrimCommandPool,
5812 }
5813 unsafe impl Send for KhrMaintenance1Fn {}
5814 unsafe impl Sync for KhrMaintenance1Fn {}
5815 impl KhrMaintenance1Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5816     pub fn load<F>(mut _f: F) -> Self
5817     where
5818         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5819     {
5820         KhrMaintenance1Fn {
5821             trim_command_pool_khr: unsafe {
5822                 unsafe extern "system" fn trim_command_pool_khr(
5823                     _device: Device,
5824                     _command_pool: CommandPool,
5825                     _flags: CommandPoolTrimFlags,
5826                 ) {
5827                     panic!(concat!(
5828                         "Unable to load ",
5829                         stringify!(trim_command_pool_khr)
5830                     ))
5831                 }
5832                 let cname =
5833                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkTrimCommandPoolKHR\0");
5834                 let val = _f(cname);
5835                 if val.is_null() {
5836                     trim_command_pool_khr
5837                 } else {
5838                     ::std::mem::transmute(val)
5839                 }
5840             },
5841         }
5842     }
5843     #[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, )5844     pub unsafe fn trim_command_pool_khr(
5845         &self,
5846         device: Device,
5847         command_pool: CommandPool,
5848         flags: CommandPoolTrimFlags,
5849     ) {
5850         (self.trim_command_pool_khr)(device, command_pool, flags)
5851     }
5852 }
5853 #[doc = "Generated from 'VK_KHR_maintenance1'"]
5854 impl Result {
5855     pub const ERROR_OUT_OF_POOL_MEMORY_KHR: Self = Self::ERROR_OUT_OF_POOL_MEMORY;
5856 }
5857 #[doc = "Generated from 'VK_KHR_maintenance1'"]
5858 impl FormatFeatureFlags {
5859     pub const TRANSFER_SRC_KHR: Self = Self::TRANSFER_SRC;
5860 }
5861 #[doc = "Generated from 'VK_KHR_maintenance1'"]
5862 impl FormatFeatureFlags {
5863     pub const TRANSFER_DST_KHR: Self = Self::TRANSFER_DST;
5864 }
5865 #[doc = "Generated from 'VK_KHR_maintenance1'"]
5866 impl ImageCreateFlags {
5867     pub const TYPE_2D_ARRAY_COMPATIBLE_KHR: Self = Self::TYPE_2D_ARRAY_COMPATIBLE;
5868 }
5869 impl KhrDeviceGroupCreationFn {
name() -> &'static ::std::ffi::CStr5870     pub fn name() -> &'static ::std::ffi::CStr {
5871         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_device_group_creation\0")
5872             .expect("Wrong extension string")
5873     }
5874     pub const SPEC_VERSION: u32 = 1u32;
5875 }
5876 #[allow(non_camel_case_types)]
5877 pub type PFN_vkEnumeratePhysicalDeviceGroups = unsafe extern "system" fn(
5878     instance: Instance,
5879     p_physical_device_group_count: *mut u32,
5880     p_physical_device_group_properties: *mut PhysicalDeviceGroupProperties,
5881 ) -> Result;
5882 #[derive(Clone)]
5883 pub struct KhrDeviceGroupCreationFn {
5884     pub enumerate_physical_device_groups_khr: PFN_vkEnumeratePhysicalDeviceGroups,
5885 }
5886 unsafe impl Send for KhrDeviceGroupCreationFn {}
5887 unsafe impl Sync for KhrDeviceGroupCreationFn {}
5888 impl KhrDeviceGroupCreationFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5889     pub fn load<F>(mut _f: F) -> Self
5890     where
5891         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5892     {
5893         KhrDeviceGroupCreationFn {
5894             enumerate_physical_device_groups_khr: unsafe {
5895                 unsafe extern "system" fn enumerate_physical_device_groups_khr(
5896                     _instance: Instance,
5897                     _p_physical_device_group_count: *mut u32,
5898                     _p_physical_device_group_properties: *mut PhysicalDeviceGroupProperties,
5899                 ) -> Result {
5900                     panic!(concat!(
5901                         "Unable to load ",
5902                         stringify!(enumerate_physical_device_groups_khr)
5903                     ))
5904                 }
5905                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5906                     b"vkEnumeratePhysicalDeviceGroupsKHR\0",
5907                 );
5908                 let val = _f(cname);
5909                 if val.is_null() {
5910                     enumerate_physical_device_groups_khr
5911                 } else {
5912                     ::std::mem::transmute(val)
5913                 }
5914             },
5915         }
5916     }
5917     #[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, ) -> Result5918     pub unsafe fn enumerate_physical_device_groups_khr(
5919         &self,
5920         instance: Instance,
5921         p_physical_device_group_count: *mut u32,
5922         p_physical_device_group_properties: *mut PhysicalDeviceGroupProperties,
5923     ) -> Result {
5924         (self.enumerate_physical_device_groups_khr)(
5925             instance,
5926             p_physical_device_group_count,
5927             p_physical_device_group_properties,
5928         )
5929     }
5930 }
5931 #[doc = "Generated from 'VK_KHR_device_group_creation'"]
5932 impl StructureType {
5933     pub const PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR: Self = Self::PHYSICAL_DEVICE_GROUP_PROPERTIES;
5934 }
5935 #[doc = "Generated from 'VK_KHR_device_group_creation'"]
5936 impl StructureType {
5937     pub const DEVICE_GROUP_DEVICE_CREATE_INFO_KHR: Self = Self::DEVICE_GROUP_DEVICE_CREATE_INFO;
5938 }
5939 #[doc = "Generated from 'VK_KHR_device_group_creation'"]
5940 impl MemoryHeapFlags {
5941     pub const MULTI_INSTANCE_KHR: Self = Self::MULTI_INSTANCE;
5942 }
5943 impl KhrExternalMemoryCapabilitiesFn {
name() -> &'static ::std::ffi::CStr5944     pub fn name() -> &'static ::std::ffi::CStr {
5945         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_external_memory_capabilities\0")
5946             .expect("Wrong extension string")
5947     }
5948     pub const SPEC_VERSION: u32 = 1u32;
5949 }
5950 #[allow(non_camel_case_types)]
5951 pub type PFN_vkGetPhysicalDeviceExternalBufferProperties = unsafe extern "system" fn(
5952     physical_device: PhysicalDevice,
5953     p_external_buffer_info: *const PhysicalDeviceExternalBufferInfo,
5954     p_external_buffer_properties: *mut ExternalBufferProperties,
5955 );
5956 #[derive(Clone)]
5957 pub struct KhrExternalMemoryCapabilitiesFn {
5958     pub get_physical_device_external_buffer_properties_khr:
5959         PFN_vkGetPhysicalDeviceExternalBufferProperties,
5960 }
5961 unsafe impl Send for KhrExternalMemoryCapabilitiesFn {}
5962 unsafe impl Sync for KhrExternalMemoryCapabilitiesFn {}
5963 impl KhrExternalMemoryCapabilitiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5964     pub fn load<F>(mut _f: F) -> Self
5965     where
5966         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5967     {
5968         KhrExternalMemoryCapabilitiesFn {
5969             get_physical_device_external_buffer_properties_khr: unsafe {
5970                 unsafe extern "system" fn get_physical_device_external_buffer_properties_khr(
5971                     _physical_device: PhysicalDevice,
5972                     _p_external_buffer_info: *const PhysicalDeviceExternalBufferInfo,
5973                     _p_external_buffer_properties: *mut ExternalBufferProperties,
5974                 ) {
5975                     panic!(concat!(
5976                         "Unable to load ",
5977                         stringify!(get_physical_device_external_buffer_properties_khr)
5978                     ))
5979                 }
5980                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5981                     b"vkGetPhysicalDeviceExternalBufferPropertiesKHR\0",
5982                 );
5983                 let val = _f(cname);
5984                 if val.is_null() {
5985                     get_physical_device_external_buffer_properties_khr
5986                 } else {
5987                     ::std::mem::transmute(val)
5988                 }
5989             },
5990         }
5991     }
5992     #[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, )5993     pub unsafe fn get_physical_device_external_buffer_properties_khr(
5994         &self,
5995         physical_device: PhysicalDevice,
5996         p_external_buffer_info: *const PhysicalDeviceExternalBufferInfo,
5997         p_external_buffer_properties: *mut ExternalBufferProperties,
5998     ) {
5999         (self.get_physical_device_external_buffer_properties_khr)(
6000             physical_device,
6001             p_external_buffer_info,
6002             p_external_buffer_properties,
6003         )
6004     }
6005 }
6006 #[doc = "Generated from 'VK_KHR_external_memory_capabilities'"]
6007 impl StructureType {
6008     pub const PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR: Self =
6009         Self::PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO;
6010 }
6011 #[doc = "Generated from 'VK_KHR_external_memory_capabilities'"]
6012 impl StructureType {
6013     pub const EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR: Self = Self::EXTERNAL_IMAGE_FORMAT_PROPERTIES;
6014 }
6015 #[doc = "Generated from 'VK_KHR_external_memory_capabilities'"]
6016 impl StructureType {
6017     pub const PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR: Self =
6018         Self::PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO;
6019 }
6020 #[doc = "Generated from 'VK_KHR_external_memory_capabilities'"]
6021 impl StructureType {
6022     pub const EXTERNAL_BUFFER_PROPERTIES_KHR: Self = Self::EXTERNAL_BUFFER_PROPERTIES;
6023 }
6024 #[doc = "Generated from 'VK_KHR_external_memory_capabilities'"]
6025 impl StructureType {
6026     pub const PHYSICAL_DEVICE_ID_PROPERTIES_KHR: Self = Self::PHYSICAL_DEVICE_ID_PROPERTIES;
6027 }
6028 #[doc = "Generated from 'VK_KHR_external_memory_capabilities'"]
6029 impl ExternalMemoryHandleTypeFlags {
6030     pub const OPAQUE_FD_KHR: Self = Self::OPAQUE_FD;
6031 }
6032 #[doc = "Generated from 'VK_KHR_external_memory_capabilities'"]
6033 impl ExternalMemoryHandleTypeFlags {
6034     pub const OPAQUE_WIN32_KHR: Self = Self::OPAQUE_WIN32;
6035 }
6036 #[doc = "Generated from 'VK_KHR_external_memory_capabilities'"]
6037 impl ExternalMemoryHandleTypeFlags {
6038     pub const OPAQUE_WIN32_KMT_KHR: Self = Self::OPAQUE_WIN32_KMT;
6039 }
6040 #[doc = "Generated from 'VK_KHR_external_memory_capabilities'"]
6041 impl ExternalMemoryHandleTypeFlags {
6042     pub const D3D11_TEXTURE_KHR: Self = Self::D3D11_TEXTURE;
6043 }
6044 #[doc = "Generated from 'VK_KHR_external_memory_capabilities'"]
6045 impl ExternalMemoryHandleTypeFlags {
6046     pub const D3D11_TEXTURE_KMT_KHR: Self = Self::D3D11_TEXTURE_KMT;
6047 }
6048 #[doc = "Generated from 'VK_KHR_external_memory_capabilities'"]
6049 impl ExternalMemoryHandleTypeFlags {
6050     pub const D3D12_HEAP_KHR: Self = Self::D3D12_HEAP;
6051 }
6052 #[doc = "Generated from 'VK_KHR_external_memory_capabilities'"]
6053 impl ExternalMemoryHandleTypeFlags {
6054     pub const D3D12_RESOURCE_KHR: Self = Self::D3D12_RESOURCE;
6055 }
6056 #[doc = "Generated from 'VK_KHR_external_memory_capabilities'"]
6057 impl ExternalMemoryFeatureFlags {
6058     pub const DEDICATED_ONLY_KHR: Self = Self::DEDICATED_ONLY;
6059 }
6060 #[doc = "Generated from 'VK_KHR_external_memory_capabilities'"]
6061 impl ExternalMemoryFeatureFlags {
6062     pub const EXPORTABLE_KHR: Self = Self::EXPORTABLE;
6063 }
6064 #[doc = "Generated from 'VK_KHR_external_memory_capabilities'"]
6065 impl ExternalMemoryFeatureFlags {
6066     pub const IMPORTABLE_KHR: Self = Self::IMPORTABLE;
6067 }
6068 impl KhrExternalMemoryFn {
name() -> &'static ::std::ffi::CStr6069     pub fn name() -> &'static ::std::ffi::CStr {
6070         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_external_memory\0")
6071             .expect("Wrong extension string")
6072     }
6073     pub const SPEC_VERSION: u32 = 1u32;
6074 }
6075 #[derive(Clone)]
6076 pub struct KhrExternalMemoryFn {}
6077 unsafe impl Send for KhrExternalMemoryFn {}
6078 unsafe impl Sync for KhrExternalMemoryFn {}
6079 impl KhrExternalMemoryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6080     pub fn load<F>(mut _f: F) -> Self
6081     where
6082         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6083     {
6084         KhrExternalMemoryFn {}
6085     }
6086 }
6087 #[doc = "Generated from 'VK_KHR_external_memory'"]
6088 impl StructureType {
6089     pub const EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR: Self =
6090         Self::EXTERNAL_MEMORY_BUFFER_CREATE_INFO;
6091 }
6092 #[doc = "Generated from 'VK_KHR_external_memory'"]
6093 impl StructureType {
6094     pub const EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR: Self = Self::EXTERNAL_MEMORY_IMAGE_CREATE_INFO;
6095 }
6096 #[doc = "Generated from 'VK_KHR_external_memory'"]
6097 impl StructureType {
6098     pub const EXPORT_MEMORY_ALLOCATE_INFO_KHR: Self = Self::EXPORT_MEMORY_ALLOCATE_INFO;
6099 }
6100 #[doc = "Generated from 'VK_KHR_external_memory'"]
6101 impl Result {
6102     pub const ERROR_INVALID_EXTERNAL_HANDLE_KHR: Self = Self::ERROR_INVALID_EXTERNAL_HANDLE;
6103 }
6104 impl KhrExternalMemoryWin32Fn {
name() -> &'static ::std::ffi::CStr6105     pub fn name() -> &'static ::std::ffi::CStr {
6106         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_external_memory_win32\0")
6107             .expect("Wrong extension string")
6108     }
6109     pub const SPEC_VERSION: u32 = 1u32;
6110 }
6111 #[allow(non_camel_case_types)]
6112 pub type PFN_vkGetMemoryWin32HandleKHR = unsafe extern "system" fn(
6113     device: Device,
6114     p_get_win32_handle_info: *const MemoryGetWin32HandleInfoKHR,
6115     p_handle: *mut HANDLE,
6116 ) -> Result;
6117 #[allow(non_camel_case_types)]
6118 pub type PFN_vkGetMemoryWin32HandlePropertiesKHR = unsafe extern "system" fn(
6119     device: Device,
6120     handle_type: ExternalMemoryHandleTypeFlags,
6121     handle: HANDLE,
6122     p_memory_win32_handle_properties: *mut MemoryWin32HandlePropertiesKHR,
6123 ) -> Result;
6124 #[derive(Clone)]
6125 pub struct KhrExternalMemoryWin32Fn {
6126     pub get_memory_win32_handle_khr: PFN_vkGetMemoryWin32HandleKHR,
6127     pub get_memory_win32_handle_properties_khr: PFN_vkGetMemoryWin32HandlePropertiesKHR,
6128 }
6129 unsafe impl Send for KhrExternalMemoryWin32Fn {}
6130 unsafe impl Sync for KhrExternalMemoryWin32Fn {}
6131 impl KhrExternalMemoryWin32Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6132     pub fn load<F>(mut _f: F) -> Self
6133     where
6134         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6135     {
6136         KhrExternalMemoryWin32Fn {
6137             get_memory_win32_handle_khr: unsafe {
6138                 unsafe extern "system" fn get_memory_win32_handle_khr(
6139                     _device: Device,
6140                     _p_get_win32_handle_info: *const MemoryGetWin32HandleInfoKHR,
6141                     _p_handle: *mut HANDLE,
6142                 ) -> Result {
6143                     panic!(concat!(
6144                         "Unable to load ",
6145                         stringify!(get_memory_win32_handle_khr)
6146                     ))
6147                 }
6148                 let cname =
6149                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryWin32HandleKHR\0");
6150                 let val = _f(cname);
6151                 if val.is_null() {
6152                     get_memory_win32_handle_khr
6153                 } else {
6154                     ::std::mem::transmute(val)
6155                 }
6156             },
6157             get_memory_win32_handle_properties_khr: unsafe {
6158                 unsafe extern "system" fn get_memory_win32_handle_properties_khr(
6159                     _device: Device,
6160                     _handle_type: ExternalMemoryHandleTypeFlags,
6161                     _handle: HANDLE,
6162                     _p_memory_win32_handle_properties: *mut MemoryWin32HandlePropertiesKHR,
6163                 ) -> Result {
6164                     panic!(concat!(
6165                         "Unable to load ",
6166                         stringify!(get_memory_win32_handle_properties_khr)
6167                     ))
6168                 }
6169                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6170                     b"vkGetMemoryWin32HandlePropertiesKHR\0",
6171                 );
6172                 let val = _f(cname);
6173                 if val.is_null() {
6174                     get_memory_win32_handle_properties_khr
6175                 } else {
6176                     ::std::mem::transmute(val)
6177                 }
6178             },
6179         }
6180     }
6181     #[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, ) -> Result6182     pub unsafe fn get_memory_win32_handle_khr(
6183         &self,
6184         device: Device,
6185         p_get_win32_handle_info: *const MemoryGetWin32HandleInfoKHR,
6186         p_handle: *mut HANDLE,
6187     ) -> Result {
6188         (self.get_memory_win32_handle_khr)(device, p_get_win32_handle_info, p_handle)
6189     }
6190     #[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, ) -> Result6191     pub unsafe fn get_memory_win32_handle_properties_khr(
6192         &self,
6193         device: Device,
6194         handle_type: ExternalMemoryHandleTypeFlags,
6195         handle: HANDLE,
6196         p_memory_win32_handle_properties: *mut MemoryWin32HandlePropertiesKHR,
6197     ) -> Result {
6198         (self.get_memory_win32_handle_properties_khr)(
6199             device,
6200             handle_type,
6201             handle,
6202             p_memory_win32_handle_properties,
6203         )
6204     }
6205 }
6206 #[doc = "Generated from 'VK_KHR_external_memory_win32'"]
6207 impl StructureType {
6208     pub const IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_073_000);
6209 }
6210 #[doc = "Generated from 'VK_KHR_external_memory_win32'"]
6211 impl StructureType {
6212     pub const EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_073_001);
6213 }
6214 #[doc = "Generated from 'VK_KHR_external_memory_win32'"]
6215 impl StructureType {
6216     pub const MEMORY_WIN32_HANDLE_PROPERTIES_KHR: Self = Self(1_000_073_002);
6217 }
6218 #[doc = "Generated from 'VK_KHR_external_memory_win32'"]
6219 impl StructureType {
6220     pub const MEMORY_GET_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_073_003);
6221 }
6222 impl KhrExternalMemoryFdFn {
name() -> &'static ::std::ffi::CStr6223     pub fn name() -> &'static ::std::ffi::CStr {
6224         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_external_memory_fd\0")
6225             .expect("Wrong extension string")
6226     }
6227     pub const SPEC_VERSION: u32 = 1u32;
6228 }
6229 #[allow(non_camel_case_types)]
6230 pub type PFN_vkGetMemoryFdKHR = unsafe extern "system" fn(
6231     device: Device,
6232     p_get_fd_info: *const MemoryGetFdInfoKHR,
6233     p_fd: *mut c_int,
6234 ) -> Result;
6235 #[allow(non_camel_case_types)]
6236 pub type PFN_vkGetMemoryFdPropertiesKHR = unsafe extern "system" fn(
6237     device: Device,
6238     handle_type: ExternalMemoryHandleTypeFlags,
6239     fd: c_int,
6240     p_memory_fd_properties: *mut MemoryFdPropertiesKHR,
6241 ) -> Result;
6242 #[derive(Clone)]
6243 pub struct KhrExternalMemoryFdFn {
6244     pub get_memory_fd_khr: PFN_vkGetMemoryFdKHR,
6245     pub get_memory_fd_properties_khr: PFN_vkGetMemoryFdPropertiesKHR,
6246 }
6247 unsafe impl Send for KhrExternalMemoryFdFn {}
6248 unsafe impl Sync for KhrExternalMemoryFdFn {}
6249 impl KhrExternalMemoryFdFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6250     pub fn load<F>(mut _f: F) -> Self
6251     where
6252         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6253     {
6254         KhrExternalMemoryFdFn {
6255             get_memory_fd_khr: unsafe {
6256                 unsafe extern "system" fn get_memory_fd_khr(
6257                     _device: Device,
6258                     _p_get_fd_info: *const MemoryGetFdInfoKHR,
6259                     _p_fd: *mut c_int,
6260                 ) -> Result {
6261                     panic!(concat!("Unable to load ", stringify!(get_memory_fd_khr)))
6262                 }
6263                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryFdKHR\0");
6264                 let val = _f(cname);
6265                 if val.is_null() {
6266                     get_memory_fd_khr
6267                 } else {
6268                     ::std::mem::transmute(val)
6269                 }
6270             },
6271             get_memory_fd_properties_khr: unsafe {
6272                 unsafe extern "system" fn get_memory_fd_properties_khr(
6273                     _device: Device,
6274                     _handle_type: ExternalMemoryHandleTypeFlags,
6275                     _fd: c_int,
6276                     _p_memory_fd_properties: *mut MemoryFdPropertiesKHR,
6277                 ) -> Result {
6278                     panic!(concat!(
6279                         "Unable to load ",
6280                         stringify!(get_memory_fd_properties_khr)
6281                     ))
6282                 }
6283                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6284                     b"vkGetMemoryFdPropertiesKHR\0",
6285                 );
6286                 let val = _f(cname);
6287                 if val.is_null() {
6288                     get_memory_fd_properties_khr
6289                 } else {
6290                     ::std::mem::transmute(val)
6291                 }
6292             },
6293         }
6294     }
6295     #[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, ) -> Result6296     pub unsafe fn get_memory_fd_khr(
6297         &self,
6298         device: Device,
6299         p_get_fd_info: *const MemoryGetFdInfoKHR,
6300         p_fd: *mut c_int,
6301     ) -> Result {
6302         (self.get_memory_fd_khr)(device, p_get_fd_info, p_fd)
6303     }
6304     #[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, ) -> Result6305     pub unsafe fn get_memory_fd_properties_khr(
6306         &self,
6307         device: Device,
6308         handle_type: ExternalMemoryHandleTypeFlags,
6309         fd: c_int,
6310         p_memory_fd_properties: *mut MemoryFdPropertiesKHR,
6311     ) -> Result {
6312         (self.get_memory_fd_properties_khr)(device, handle_type, fd, p_memory_fd_properties)
6313     }
6314 }
6315 #[doc = "Generated from 'VK_KHR_external_memory_fd'"]
6316 impl StructureType {
6317     pub const IMPORT_MEMORY_FD_INFO_KHR: Self = Self(1_000_074_000);
6318 }
6319 #[doc = "Generated from 'VK_KHR_external_memory_fd'"]
6320 impl StructureType {
6321     pub const MEMORY_FD_PROPERTIES_KHR: Self = Self(1_000_074_001);
6322 }
6323 #[doc = "Generated from 'VK_KHR_external_memory_fd'"]
6324 impl StructureType {
6325     pub const MEMORY_GET_FD_INFO_KHR: Self = Self(1_000_074_002);
6326 }
6327 impl KhrWin32KeyedMutexFn {
name() -> &'static ::std::ffi::CStr6328     pub fn name() -> &'static ::std::ffi::CStr {
6329         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_win32_keyed_mutex\0")
6330             .expect("Wrong extension string")
6331     }
6332     pub const SPEC_VERSION: u32 = 1u32;
6333 }
6334 #[derive(Clone)]
6335 pub struct KhrWin32KeyedMutexFn {}
6336 unsafe impl Send for KhrWin32KeyedMutexFn {}
6337 unsafe impl Sync for KhrWin32KeyedMutexFn {}
6338 impl KhrWin32KeyedMutexFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6339     pub fn load<F>(mut _f: F) -> Self
6340     where
6341         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6342     {
6343         KhrWin32KeyedMutexFn {}
6344     }
6345 }
6346 #[doc = "Generated from 'VK_KHR_win32_keyed_mutex'"]
6347 impl StructureType {
6348     pub const WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR: Self = Self(1_000_075_000);
6349 }
6350 impl KhrExternalSemaphoreCapabilitiesFn {
name() -> &'static ::std::ffi::CStr6351     pub fn name() -> &'static ::std::ffi::CStr {
6352         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_external_semaphore_capabilities\0")
6353             .expect("Wrong extension string")
6354     }
6355     pub const SPEC_VERSION: u32 = 1u32;
6356 }
6357 #[allow(non_camel_case_types)]
6358 pub type PFN_vkGetPhysicalDeviceExternalSemaphoreProperties = unsafe extern "system" fn(
6359     physical_device: PhysicalDevice,
6360     p_external_semaphore_info: *const PhysicalDeviceExternalSemaphoreInfo,
6361     p_external_semaphore_properties: *mut ExternalSemaphoreProperties,
6362 );
6363 #[derive(Clone)]
6364 pub struct KhrExternalSemaphoreCapabilitiesFn {
6365     pub get_physical_device_external_semaphore_properties_khr:
6366         PFN_vkGetPhysicalDeviceExternalSemaphoreProperties,
6367 }
6368 unsafe impl Send for KhrExternalSemaphoreCapabilitiesFn {}
6369 unsafe impl Sync for KhrExternalSemaphoreCapabilitiesFn {}
6370 impl KhrExternalSemaphoreCapabilitiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6371     pub fn load<F>(mut _f: F) -> Self
6372     where
6373         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6374     {
6375         KhrExternalSemaphoreCapabilitiesFn {
6376             get_physical_device_external_semaphore_properties_khr: unsafe {
6377                 unsafe extern "system" fn get_physical_device_external_semaphore_properties_khr(
6378                     _physical_device: PhysicalDevice,
6379                     _p_external_semaphore_info: *const PhysicalDeviceExternalSemaphoreInfo,
6380                     _p_external_semaphore_properties: *mut ExternalSemaphoreProperties,
6381                 ) {
6382                     panic!(concat!(
6383                         "Unable to load ",
6384                         stringify!(get_physical_device_external_semaphore_properties_khr)
6385                     ))
6386                 }
6387                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6388                     b"vkGetPhysicalDeviceExternalSemaphorePropertiesKHR\0",
6389                 );
6390                 let val = _f(cname);
6391                 if val.is_null() {
6392                     get_physical_device_external_semaphore_properties_khr
6393                 } else {
6394                     ::std::mem::transmute(val)
6395                 }
6396             },
6397         }
6398     }
6399     #[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, )6400     pub unsafe fn get_physical_device_external_semaphore_properties_khr(
6401         &self,
6402         physical_device: PhysicalDevice,
6403         p_external_semaphore_info: *const PhysicalDeviceExternalSemaphoreInfo,
6404         p_external_semaphore_properties: *mut ExternalSemaphoreProperties,
6405     ) {
6406         (self.get_physical_device_external_semaphore_properties_khr)(
6407             physical_device,
6408             p_external_semaphore_info,
6409             p_external_semaphore_properties,
6410         )
6411     }
6412 }
6413 #[doc = "Generated from 'VK_KHR_external_semaphore_capabilities'"]
6414 impl StructureType {
6415     pub const PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR: Self =
6416         Self::PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO;
6417 }
6418 #[doc = "Generated from 'VK_KHR_external_semaphore_capabilities'"]
6419 impl StructureType {
6420     pub const EXTERNAL_SEMAPHORE_PROPERTIES_KHR: Self = Self::EXTERNAL_SEMAPHORE_PROPERTIES;
6421 }
6422 #[doc = "Generated from 'VK_KHR_external_semaphore_capabilities'"]
6423 impl ExternalSemaphoreHandleTypeFlags {
6424     pub const OPAQUE_FD_KHR: Self = Self::OPAQUE_FD;
6425 }
6426 #[doc = "Generated from 'VK_KHR_external_semaphore_capabilities'"]
6427 impl ExternalSemaphoreHandleTypeFlags {
6428     pub const OPAQUE_WIN32_KHR: Self = Self::OPAQUE_WIN32;
6429 }
6430 #[doc = "Generated from 'VK_KHR_external_semaphore_capabilities'"]
6431 impl ExternalSemaphoreHandleTypeFlags {
6432     pub const OPAQUE_WIN32_KMT_KHR: Self = Self::OPAQUE_WIN32_KMT;
6433 }
6434 #[doc = "Generated from 'VK_KHR_external_semaphore_capabilities'"]
6435 impl ExternalSemaphoreHandleTypeFlags {
6436     pub const D3D12_FENCE_KHR: Self = Self::D3D12_FENCE;
6437 }
6438 #[doc = "Generated from 'VK_KHR_external_semaphore_capabilities'"]
6439 impl ExternalSemaphoreHandleTypeFlags {
6440     pub const SYNC_FD_KHR: Self = Self::SYNC_FD;
6441 }
6442 #[doc = "Generated from 'VK_KHR_external_semaphore_capabilities'"]
6443 impl ExternalSemaphoreFeatureFlags {
6444     pub const EXPORTABLE_KHR: Self = Self::EXPORTABLE;
6445 }
6446 #[doc = "Generated from 'VK_KHR_external_semaphore_capabilities'"]
6447 impl ExternalSemaphoreFeatureFlags {
6448     pub const IMPORTABLE_KHR: Self = Self::IMPORTABLE;
6449 }
6450 impl KhrExternalSemaphoreFn {
name() -> &'static ::std::ffi::CStr6451     pub fn name() -> &'static ::std::ffi::CStr {
6452         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_external_semaphore\0")
6453             .expect("Wrong extension string")
6454     }
6455     pub const SPEC_VERSION: u32 = 1u32;
6456 }
6457 #[derive(Clone)]
6458 pub struct KhrExternalSemaphoreFn {}
6459 unsafe impl Send for KhrExternalSemaphoreFn {}
6460 unsafe impl Sync for KhrExternalSemaphoreFn {}
6461 impl KhrExternalSemaphoreFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6462     pub fn load<F>(mut _f: F) -> Self
6463     where
6464         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6465     {
6466         KhrExternalSemaphoreFn {}
6467     }
6468 }
6469 #[doc = "Generated from 'VK_KHR_external_semaphore'"]
6470 impl StructureType {
6471     pub const EXPORT_SEMAPHORE_CREATE_INFO_KHR: Self = Self::EXPORT_SEMAPHORE_CREATE_INFO;
6472 }
6473 #[doc = "Generated from 'VK_KHR_external_semaphore'"]
6474 impl SemaphoreImportFlags {
6475     pub const TEMPORARY_KHR: Self = Self::TEMPORARY;
6476 }
6477 impl KhrExternalSemaphoreWin32Fn {
name() -> &'static ::std::ffi::CStr6478     pub fn name() -> &'static ::std::ffi::CStr {
6479         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_external_semaphore_win32\0")
6480             .expect("Wrong extension string")
6481     }
6482     pub const SPEC_VERSION: u32 = 1u32;
6483 }
6484 #[allow(non_camel_case_types)]
6485 pub type PFN_vkImportSemaphoreWin32HandleKHR = unsafe extern "system" fn(
6486     device: Device,
6487     p_import_semaphore_win32_handle_info: *const ImportSemaphoreWin32HandleInfoKHR,
6488 ) -> Result;
6489 #[allow(non_camel_case_types)]
6490 pub type PFN_vkGetSemaphoreWin32HandleKHR = unsafe extern "system" fn(
6491     device: Device,
6492     p_get_win32_handle_info: *const SemaphoreGetWin32HandleInfoKHR,
6493     p_handle: *mut HANDLE,
6494 ) -> Result;
6495 #[derive(Clone)]
6496 pub struct KhrExternalSemaphoreWin32Fn {
6497     pub import_semaphore_win32_handle_khr: PFN_vkImportSemaphoreWin32HandleKHR,
6498     pub get_semaphore_win32_handle_khr: PFN_vkGetSemaphoreWin32HandleKHR,
6499 }
6500 unsafe impl Send for KhrExternalSemaphoreWin32Fn {}
6501 unsafe impl Sync for KhrExternalSemaphoreWin32Fn {}
6502 impl KhrExternalSemaphoreWin32Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6503     pub fn load<F>(mut _f: F) -> Self
6504     where
6505         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6506     {
6507         KhrExternalSemaphoreWin32Fn {
6508             import_semaphore_win32_handle_khr: unsafe {
6509                 unsafe extern "system" fn import_semaphore_win32_handle_khr(
6510                     _device: Device,
6511                     _p_import_semaphore_win32_handle_info: *const ImportSemaphoreWin32HandleInfoKHR,
6512                 ) -> Result {
6513                     panic!(concat!(
6514                         "Unable to load ",
6515                         stringify!(import_semaphore_win32_handle_khr)
6516                     ))
6517                 }
6518                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6519                     b"vkImportSemaphoreWin32HandleKHR\0",
6520                 );
6521                 let val = _f(cname);
6522                 if val.is_null() {
6523                     import_semaphore_win32_handle_khr
6524                 } else {
6525                     ::std::mem::transmute(val)
6526                 }
6527             },
6528             get_semaphore_win32_handle_khr: unsafe {
6529                 unsafe extern "system" fn get_semaphore_win32_handle_khr(
6530                     _device: Device,
6531                     _p_get_win32_handle_info: *const SemaphoreGetWin32HandleInfoKHR,
6532                     _p_handle: *mut HANDLE,
6533                 ) -> Result {
6534                     panic!(concat!(
6535                         "Unable to load ",
6536                         stringify!(get_semaphore_win32_handle_khr)
6537                     ))
6538                 }
6539                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6540                     b"vkGetSemaphoreWin32HandleKHR\0",
6541                 );
6542                 let val = _f(cname);
6543                 if val.is_null() {
6544                     get_semaphore_win32_handle_khr
6545                 } else {
6546                     ::std::mem::transmute(val)
6547                 }
6548             },
6549         }
6550     }
6551     #[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, ) -> Result6552     pub unsafe fn import_semaphore_win32_handle_khr(
6553         &self,
6554         device: Device,
6555         p_import_semaphore_win32_handle_info: *const ImportSemaphoreWin32HandleInfoKHR,
6556     ) -> Result {
6557         (self.import_semaphore_win32_handle_khr)(device, p_import_semaphore_win32_handle_info)
6558     }
6559     #[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, ) -> Result6560     pub unsafe fn get_semaphore_win32_handle_khr(
6561         &self,
6562         device: Device,
6563         p_get_win32_handle_info: *const SemaphoreGetWin32HandleInfoKHR,
6564         p_handle: *mut HANDLE,
6565     ) -> Result {
6566         (self.get_semaphore_win32_handle_khr)(device, p_get_win32_handle_info, p_handle)
6567     }
6568 }
6569 #[doc = "Generated from 'VK_KHR_external_semaphore_win32'"]
6570 impl StructureType {
6571     pub const IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_078_000);
6572 }
6573 #[doc = "Generated from 'VK_KHR_external_semaphore_win32'"]
6574 impl StructureType {
6575     pub const EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_078_001);
6576 }
6577 #[doc = "Generated from 'VK_KHR_external_semaphore_win32'"]
6578 impl StructureType {
6579     pub const D3D12_FENCE_SUBMIT_INFO_KHR: Self = Self(1_000_078_002);
6580 }
6581 #[doc = "Generated from 'VK_KHR_external_semaphore_win32'"]
6582 impl StructureType {
6583     pub const SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_078_003);
6584 }
6585 impl KhrExternalSemaphoreFdFn {
name() -> &'static ::std::ffi::CStr6586     pub fn name() -> &'static ::std::ffi::CStr {
6587         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_external_semaphore_fd\0")
6588             .expect("Wrong extension string")
6589     }
6590     pub const SPEC_VERSION: u32 = 1u32;
6591 }
6592 #[allow(non_camel_case_types)]
6593 pub type PFN_vkImportSemaphoreFdKHR = unsafe extern "system" fn(
6594     device: Device,
6595     p_import_semaphore_fd_info: *const ImportSemaphoreFdInfoKHR,
6596 ) -> Result;
6597 #[allow(non_camel_case_types)]
6598 pub type PFN_vkGetSemaphoreFdKHR = unsafe extern "system" fn(
6599     device: Device,
6600     p_get_fd_info: *const SemaphoreGetFdInfoKHR,
6601     p_fd: *mut c_int,
6602 ) -> Result;
6603 #[derive(Clone)]
6604 pub struct KhrExternalSemaphoreFdFn {
6605     pub import_semaphore_fd_khr: PFN_vkImportSemaphoreFdKHR,
6606     pub get_semaphore_fd_khr: PFN_vkGetSemaphoreFdKHR,
6607 }
6608 unsafe impl Send for KhrExternalSemaphoreFdFn {}
6609 unsafe impl Sync for KhrExternalSemaphoreFdFn {}
6610 impl KhrExternalSemaphoreFdFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6611     pub fn load<F>(mut _f: F) -> Self
6612     where
6613         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6614     {
6615         KhrExternalSemaphoreFdFn {
6616             import_semaphore_fd_khr: unsafe {
6617                 unsafe extern "system" fn import_semaphore_fd_khr(
6618                     _device: Device,
6619                     _p_import_semaphore_fd_info: *const ImportSemaphoreFdInfoKHR,
6620                 ) -> Result {
6621                     panic!(concat!(
6622                         "Unable to load ",
6623                         stringify!(import_semaphore_fd_khr)
6624                     ))
6625                 }
6626                 let cname =
6627                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkImportSemaphoreFdKHR\0");
6628                 let val = _f(cname);
6629                 if val.is_null() {
6630                     import_semaphore_fd_khr
6631                 } else {
6632                     ::std::mem::transmute(val)
6633                 }
6634             },
6635             get_semaphore_fd_khr: unsafe {
6636                 unsafe extern "system" fn get_semaphore_fd_khr(
6637                     _device: Device,
6638                     _p_get_fd_info: *const SemaphoreGetFdInfoKHR,
6639                     _p_fd: *mut c_int,
6640                 ) -> Result {
6641                     panic!(concat!("Unable to load ", stringify!(get_semaphore_fd_khr)))
6642                 }
6643                 let cname =
6644                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetSemaphoreFdKHR\0");
6645                 let val = _f(cname);
6646                 if val.is_null() {
6647                     get_semaphore_fd_khr
6648                 } else {
6649                     ::std::mem::transmute(val)
6650                 }
6651             },
6652         }
6653     }
6654     #[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, ) -> Result6655     pub unsafe fn import_semaphore_fd_khr(
6656         &self,
6657         device: Device,
6658         p_import_semaphore_fd_info: *const ImportSemaphoreFdInfoKHR,
6659     ) -> Result {
6660         (self.import_semaphore_fd_khr)(device, p_import_semaphore_fd_info)
6661     }
6662     #[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, ) -> Result6663     pub unsafe fn get_semaphore_fd_khr(
6664         &self,
6665         device: Device,
6666         p_get_fd_info: *const SemaphoreGetFdInfoKHR,
6667         p_fd: *mut c_int,
6668     ) -> Result {
6669         (self.get_semaphore_fd_khr)(device, p_get_fd_info, p_fd)
6670     }
6671 }
6672 #[doc = "Generated from 'VK_KHR_external_semaphore_fd'"]
6673 impl StructureType {
6674     pub const IMPORT_SEMAPHORE_FD_INFO_KHR: Self = Self(1_000_079_000);
6675 }
6676 #[doc = "Generated from 'VK_KHR_external_semaphore_fd'"]
6677 impl StructureType {
6678     pub const SEMAPHORE_GET_FD_INFO_KHR: Self = Self(1_000_079_001);
6679 }
6680 impl KhrPushDescriptorFn {
name() -> &'static ::std::ffi::CStr6681     pub fn name() -> &'static ::std::ffi::CStr {
6682         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_push_descriptor\0")
6683             .expect("Wrong extension string")
6684     }
6685     pub const SPEC_VERSION: u32 = 2u32;
6686 }
6687 #[allow(non_camel_case_types)]
6688 pub type PFN_vkCmdPushDescriptorSetKHR = unsafe extern "system" fn(
6689     command_buffer: CommandBuffer,
6690     pipeline_bind_point: PipelineBindPoint,
6691     layout: PipelineLayout,
6692     set: u32,
6693     descriptor_write_count: u32,
6694     p_descriptor_writes: *const WriteDescriptorSet,
6695 );
6696 #[allow(non_camel_case_types)]
6697 pub type PFN_vkCmdPushDescriptorSetWithTemplateKHR = unsafe extern "system" fn(
6698     command_buffer: CommandBuffer,
6699     descriptor_update_template: DescriptorUpdateTemplate,
6700     layout: PipelineLayout,
6701     set: u32,
6702     p_data: *const c_void,
6703 );
6704 #[derive(Clone)]
6705 pub struct KhrPushDescriptorFn {
6706     pub cmd_push_descriptor_set_khr: PFN_vkCmdPushDescriptorSetKHR,
6707     pub cmd_push_descriptor_set_with_template_khr: PFN_vkCmdPushDescriptorSetWithTemplateKHR,
6708 }
6709 unsafe impl Send for KhrPushDescriptorFn {}
6710 unsafe impl Sync for KhrPushDescriptorFn {}
6711 impl KhrPushDescriptorFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6712     pub fn load<F>(mut _f: F) -> Self
6713     where
6714         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6715     {
6716         KhrPushDescriptorFn {
6717             cmd_push_descriptor_set_khr: unsafe {
6718                 unsafe extern "system" fn cmd_push_descriptor_set_khr(
6719                     _command_buffer: CommandBuffer,
6720                     _pipeline_bind_point: PipelineBindPoint,
6721                     _layout: PipelineLayout,
6722                     _set: u32,
6723                     _descriptor_write_count: u32,
6724                     _p_descriptor_writes: *const WriteDescriptorSet,
6725                 ) {
6726                     panic!(concat!(
6727                         "Unable to load ",
6728                         stringify!(cmd_push_descriptor_set_khr)
6729                     ))
6730                 }
6731                 let cname =
6732                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdPushDescriptorSetKHR\0");
6733                 let val = _f(cname);
6734                 if val.is_null() {
6735                     cmd_push_descriptor_set_khr
6736                 } else {
6737                     ::std::mem::transmute(val)
6738                 }
6739             },
6740             cmd_push_descriptor_set_with_template_khr: unsafe {
6741                 unsafe extern "system" fn cmd_push_descriptor_set_with_template_khr(
6742                     _command_buffer: CommandBuffer,
6743                     _descriptor_update_template: DescriptorUpdateTemplate,
6744                     _layout: PipelineLayout,
6745                     _set: u32,
6746                     _p_data: *const c_void,
6747                 ) {
6748                     panic!(concat!(
6749                         "Unable to load ",
6750                         stringify!(cmd_push_descriptor_set_with_template_khr)
6751                     ))
6752                 }
6753                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6754                     b"vkCmdPushDescriptorSetWithTemplateKHR\0",
6755                 );
6756                 let val = _f(cname);
6757                 if val.is_null() {
6758                     cmd_push_descriptor_set_with_template_khr
6759                 } else {
6760                     ::std::mem::transmute(val)
6761                 }
6762             },
6763         }
6764     }
6765     #[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, )6766     pub unsafe fn cmd_push_descriptor_set_khr(
6767         &self,
6768         command_buffer: CommandBuffer,
6769         pipeline_bind_point: PipelineBindPoint,
6770         layout: PipelineLayout,
6771         set: u32,
6772         descriptor_write_count: u32,
6773         p_descriptor_writes: *const WriteDescriptorSet,
6774     ) {
6775         (self.cmd_push_descriptor_set_khr)(
6776             command_buffer,
6777             pipeline_bind_point,
6778             layout,
6779             set,
6780             descriptor_write_count,
6781             p_descriptor_writes,
6782         )
6783     }
6784     #[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, )6785     pub unsafe fn cmd_push_descriptor_set_with_template_khr(
6786         &self,
6787         command_buffer: CommandBuffer,
6788         descriptor_update_template: DescriptorUpdateTemplate,
6789         layout: PipelineLayout,
6790         set: u32,
6791         p_data: *const c_void,
6792     ) {
6793         (self.cmd_push_descriptor_set_with_template_khr)(
6794             command_buffer,
6795             descriptor_update_template,
6796             layout,
6797             set,
6798             p_data,
6799         )
6800     }
6801 }
6802 #[doc = "Generated from 'VK_KHR_push_descriptor'"]
6803 impl StructureType {
6804     pub const PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR: Self = Self(1_000_080_000);
6805 }
6806 #[doc = "Generated from 'VK_KHR_push_descriptor'"]
6807 impl DescriptorSetLayoutCreateFlags {
6808     pub const PUSH_DESCRIPTOR_KHR: Self = Self(0b1);
6809 }
6810 #[doc = "Generated from 'VK_KHR_push_descriptor'"]
6811 impl DescriptorUpdateTemplateType {
6812     pub const PUSH_DESCRIPTORS_KHR: Self = Self(1);
6813 }
6814 impl ExtConditionalRenderingFn {
name() -> &'static ::std::ffi::CStr6815     pub fn name() -> &'static ::std::ffi::CStr {
6816         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_conditional_rendering\0")
6817             .expect("Wrong extension string")
6818     }
6819     pub const SPEC_VERSION: u32 = 2u32;
6820 }
6821 #[allow(non_camel_case_types)]
6822 pub type PFN_vkCmdBeginConditionalRenderingEXT = unsafe extern "system" fn(
6823     command_buffer: CommandBuffer,
6824     p_conditional_rendering_begin: *const ConditionalRenderingBeginInfoEXT,
6825 );
6826 #[allow(non_camel_case_types)]
6827 pub type PFN_vkCmdEndConditionalRenderingEXT =
6828     unsafe extern "system" fn(command_buffer: CommandBuffer);
6829 #[derive(Clone)]
6830 pub struct ExtConditionalRenderingFn {
6831     pub cmd_begin_conditional_rendering_ext: PFN_vkCmdBeginConditionalRenderingEXT,
6832     pub cmd_end_conditional_rendering_ext: PFN_vkCmdEndConditionalRenderingEXT,
6833 }
6834 unsafe impl Send for ExtConditionalRenderingFn {}
6835 unsafe impl Sync for ExtConditionalRenderingFn {}
6836 impl ExtConditionalRenderingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6837     pub fn load<F>(mut _f: F) -> Self
6838     where
6839         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6840     {
6841         ExtConditionalRenderingFn {
6842             cmd_begin_conditional_rendering_ext: unsafe {
6843                 unsafe extern "system" fn cmd_begin_conditional_rendering_ext(
6844                     _command_buffer: CommandBuffer,
6845                     _p_conditional_rendering_begin: *const ConditionalRenderingBeginInfoEXT,
6846                 ) {
6847                     panic!(concat!(
6848                         "Unable to load ",
6849                         stringify!(cmd_begin_conditional_rendering_ext)
6850                     ))
6851                 }
6852                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6853                     b"vkCmdBeginConditionalRenderingEXT\0",
6854                 );
6855                 let val = _f(cname);
6856                 if val.is_null() {
6857                     cmd_begin_conditional_rendering_ext
6858                 } else {
6859                     ::std::mem::transmute(val)
6860                 }
6861             },
6862             cmd_end_conditional_rendering_ext: unsafe {
6863                 unsafe extern "system" fn cmd_end_conditional_rendering_ext(
6864                     _command_buffer: CommandBuffer,
6865                 ) {
6866                     panic!(concat!(
6867                         "Unable to load ",
6868                         stringify!(cmd_end_conditional_rendering_ext)
6869                     ))
6870                 }
6871                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6872                     b"vkCmdEndConditionalRenderingEXT\0",
6873                 );
6874                 let val = _f(cname);
6875                 if val.is_null() {
6876                     cmd_end_conditional_rendering_ext
6877                 } else {
6878                     ::std::mem::transmute(val)
6879                 }
6880             },
6881         }
6882     }
6883     #[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, )6884     pub unsafe fn cmd_begin_conditional_rendering_ext(
6885         &self,
6886         command_buffer: CommandBuffer,
6887         p_conditional_rendering_begin: *const ConditionalRenderingBeginInfoEXT,
6888     ) {
6889         (self.cmd_begin_conditional_rendering_ext)(command_buffer, p_conditional_rendering_begin)
6890     }
6891     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdEndConditionalRenderingEXT.html>"]
cmd_end_conditional_rendering_ext(&self, command_buffer: CommandBuffer)6892     pub unsafe fn cmd_end_conditional_rendering_ext(&self, command_buffer: CommandBuffer) {
6893         (self.cmd_end_conditional_rendering_ext)(command_buffer)
6894     }
6895 }
6896 #[doc = "Generated from 'VK_EXT_conditional_rendering'"]
6897 impl StructureType {
6898     pub const COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT: Self = Self(1_000_081_000);
6899 }
6900 #[doc = "Generated from 'VK_EXT_conditional_rendering'"]
6901 impl StructureType {
6902     pub const PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT: Self = Self(1_000_081_001);
6903 }
6904 #[doc = "Generated from 'VK_EXT_conditional_rendering'"]
6905 impl StructureType {
6906     pub const CONDITIONAL_RENDERING_BEGIN_INFO_EXT: Self = Self(1_000_081_002);
6907 }
6908 #[doc = "Generated from 'VK_EXT_conditional_rendering'"]
6909 impl AccessFlags {
6910     pub const CONDITIONAL_RENDERING_READ_EXT: Self = Self(0b1_0000_0000_0000_0000_0000);
6911 }
6912 #[doc = "Generated from 'VK_EXT_conditional_rendering'"]
6913 impl BufferUsageFlags {
6914     pub const CONDITIONAL_RENDERING_EXT: Self = Self(0b10_0000_0000);
6915 }
6916 #[doc = "Generated from 'VK_EXT_conditional_rendering'"]
6917 impl PipelineStageFlags {
6918     pub const CONDITIONAL_RENDERING_EXT: Self = Self(0b100_0000_0000_0000_0000);
6919 }
6920 impl KhrShaderFloat16Int8Fn {
name() -> &'static ::std::ffi::CStr6921     pub fn name() -> &'static ::std::ffi::CStr {
6922         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_shader_float16_int8\0")
6923             .expect("Wrong extension string")
6924     }
6925     pub const SPEC_VERSION: u32 = 1u32;
6926 }
6927 #[derive(Clone)]
6928 pub struct KhrShaderFloat16Int8Fn {}
6929 unsafe impl Send for KhrShaderFloat16Int8Fn {}
6930 unsafe impl Sync for KhrShaderFloat16Int8Fn {}
6931 impl KhrShaderFloat16Int8Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6932     pub fn load<F>(mut _f: F) -> Self
6933     where
6934         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6935     {
6936         KhrShaderFloat16Int8Fn {}
6937     }
6938 }
6939 #[doc = "Generated from 'VK_KHR_shader_float16_int8'"]
6940 impl StructureType {
6941     pub const PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR: Self =
6942         Self::PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
6943 }
6944 #[doc = "Generated from 'VK_KHR_shader_float16_int8'"]
6945 impl StructureType {
6946     pub const PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR: Self =
6947         Self::PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
6948 }
6949 impl Khr16bitStorageFn {
name() -> &'static ::std::ffi::CStr6950     pub fn name() -> &'static ::std::ffi::CStr {
6951         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_16bit_storage\0")
6952             .expect("Wrong extension string")
6953     }
6954     pub const SPEC_VERSION: u32 = 1u32;
6955 }
6956 #[derive(Clone)]
6957 pub struct Khr16bitStorageFn {}
6958 unsafe impl Send for Khr16bitStorageFn {}
6959 unsafe impl Sync for Khr16bitStorageFn {}
6960 impl Khr16bitStorageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6961     pub fn load<F>(mut _f: F) -> Self
6962     where
6963         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6964     {
6965         Khr16bitStorageFn {}
6966     }
6967 }
6968 #[doc = "Generated from 'VK_KHR_16bit_storage'"]
6969 impl StructureType {
6970     pub const PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR: Self =
6971         Self::PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES;
6972 }
6973 impl KhrIncrementalPresentFn {
name() -> &'static ::std::ffi::CStr6974     pub fn name() -> &'static ::std::ffi::CStr {
6975         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_incremental_present\0")
6976             .expect("Wrong extension string")
6977     }
6978     pub const SPEC_VERSION: u32 = 2u32;
6979 }
6980 #[derive(Clone)]
6981 pub struct KhrIncrementalPresentFn {}
6982 unsafe impl Send for KhrIncrementalPresentFn {}
6983 unsafe impl Sync for KhrIncrementalPresentFn {}
6984 impl KhrIncrementalPresentFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6985     pub fn load<F>(mut _f: F) -> Self
6986     where
6987         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6988     {
6989         KhrIncrementalPresentFn {}
6990     }
6991 }
6992 #[doc = "Generated from 'VK_KHR_incremental_present'"]
6993 impl StructureType {
6994     pub const PRESENT_REGIONS_KHR: Self = Self(1_000_084_000);
6995 }
6996 impl KhrDescriptorUpdateTemplateFn {
name() -> &'static ::std::ffi::CStr6997     pub fn name() -> &'static ::std::ffi::CStr {
6998         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_descriptor_update_template\0")
6999             .expect("Wrong extension string")
7000     }
7001     pub const SPEC_VERSION: u32 = 1u32;
7002 }
7003 #[allow(non_camel_case_types)]
7004 pub type PFN_vkCreateDescriptorUpdateTemplate = unsafe extern "system" fn(
7005     device: Device,
7006     p_create_info: *const DescriptorUpdateTemplateCreateInfo,
7007     p_allocator: *const AllocationCallbacks,
7008     p_descriptor_update_template: *mut DescriptorUpdateTemplate,
7009 ) -> Result;
7010 #[allow(non_camel_case_types)]
7011 pub type PFN_vkDestroyDescriptorUpdateTemplate = unsafe extern "system" fn(
7012     device: Device,
7013     descriptor_update_template: DescriptorUpdateTemplate,
7014     p_allocator: *const AllocationCallbacks,
7015 );
7016 #[allow(non_camel_case_types)]
7017 pub type PFN_vkUpdateDescriptorSetWithTemplate = unsafe extern "system" fn(
7018     device: Device,
7019     descriptor_set: DescriptorSet,
7020     descriptor_update_template: DescriptorUpdateTemplate,
7021     p_data: *const c_void,
7022 );
7023 #[derive(Clone)]
7024 pub struct KhrDescriptorUpdateTemplateFn {
7025     pub create_descriptor_update_template_khr: PFN_vkCreateDescriptorUpdateTemplate,
7026     pub destroy_descriptor_update_template_khr: PFN_vkDestroyDescriptorUpdateTemplate,
7027     pub update_descriptor_set_with_template_khr: PFN_vkUpdateDescriptorSetWithTemplate,
7028     pub cmd_push_descriptor_set_with_template_khr:
7029         crate::vk::PFN_vkCmdPushDescriptorSetWithTemplateKHR,
7030 }
7031 unsafe impl Send for KhrDescriptorUpdateTemplateFn {}
7032 unsafe impl Sync for KhrDescriptorUpdateTemplateFn {}
7033 impl KhrDescriptorUpdateTemplateFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7034     pub fn load<F>(mut _f: F) -> Self
7035     where
7036         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7037     {
7038         KhrDescriptorUpdateTemplateFn {
7039             create_descriptor_update_template_khr: unsafe {
7040                 unsafe extern "system" fn create_descriptor_update_template_khr(
7041                     _device: Device,
7042                     _p_create_info: *const DescriptorUpdateTemplateCreateInfo,
7043                     _p_allocator: *const AllocationCallbacks,
7044                     _p_descriptor_update_template: *mut DescriptorUpdateTemplate,
7045                 ) -> Result {
7046                     panic!(concat!(
7047                         "Unable to load ",
7048                         stringify!(create_descriptor_update_template_khr)
7049                     ))
7050                 }
7051                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7052                     b"vkCreateDescriptorUpdateTemplateKHR\0",
7053                 );
7054                 let val = _f(cname);
7055                 if val.is_null() {
7056                     create_descriptor_update_template_khr
7057                 } else {
7058                     ::std::mem::transmute(val)
7059                 }
7060             },
7061             destroy_descriptor_update_template_khr: unsafe {
7062                 unsafe extern "system" fn destroy_descriptor_update_template_khr(
7063                     _device: Device,
7064                     _descriptor_update_template: DescriptorUpdateTemplate,
7065                     _p_allocator: *const AllocationCallbacks,
7066                 ) {
7067                     panic!(concat!(
7068                         "Unable to load ",
7069                         stringify!(destroy_descriptor_update_template_khr)
7070                     ))
7071                 }
7072                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7073                     b"vkDestroyDescriptorUpdateTemplateKHR\0",
7074                 );
7075                 let val = _f(cname);
7076                 if val.is_null() {
7077                     destroy_descriptor_update_template_khr
7078                 } else {
7079                     ::std::mem::transmute(val)
7080                 }
7081             },
7082             update_descriptor_set_with_template_khr: unsafe {
7083                 unsafe extern "system" fn update_descriptor_set_with_template_khr(
7084                     _device: Device,
7085                     _descriptor_set: DescriptorSet,
7086                     _descriptor_update_template: DescriptorUpdateTemplate,
7087                     _p_data: *const c_void,
7088                 ) {
7089                     panic!(concat!(
7090                         "Unable to load ",
7091                         stringify!(update_descriptor_set_with_template_khr)
7092                     ))
7093                 }
7094                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7095                     b"vkUpdateDescriptorSetWithTemplateKHR\0",
7096                 );
7097                 let val = _f(cname);
7098                 if val.is_null() {
7099                     update_descriptor_set_with_template_khr
7100                 } else {
7101                     ::std::mem::transmute(val)
7102                 }
7103             },
7104             cmd_push_descriptor_set_with_template_khr: unsafe {
7105                 unsafe extern "system" fn cmd_push_descriptor_set_with_template_khr(
7106                     _command_buffer: CommandBuffer,
7107                     _descriptor_update_template: DescriptorUpdateTemplate,
7108                     _layout: PipelineLayout,
7109                     _set: u32,
7110                     _p_data: *const c_void,
7111                 ) {
7112                     panic!(concat!(
7113                         "Unable to load ",
7114                         stringify!(cmd_push_descriptor_set_with_template_khr)
7115                     ))
7116                 }
7117                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7118                     b"vkCmdPushDescriptorSetWithTemplateKHR\0",
7119                 );
7120                 let val = _f(cname);
7121                 if val.is_null() {
7122                     cmd_push_descriptor_set_with_template_khr
7123                 } else {
7124                     ::std::mem::transmute(val)
7125                 }
7126             },
7127         }
7128     }
7129     #[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, ) -> Result7130     pub unsafe fn create_descriptor_update_template_khr(
7131         &self,
7132         device: Device,
7133         p_create_info: *const DescriptorUpdateTemplateCreateInfo,
7134         p_allocator: *const AllocationCallbacks,
7135         p_descriptor_update_template: *mut DescriptorUpdateTemplate,
7136     ) -> Result {
7137         (self.create_descriptor_update_template_khr)(
7138             device,
7139             p_create_info,
7140             p_allocator,
7141             p_descriptor_update_template,
7142         )
7143     }
7144     #[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, )7145     pub unsafe fn destroy_descriptor_update_template_khr(
7146         &self,
7147         device: Device,
7148         descriptor_update_template: DescriptorUpdateTemplate,
7149         p_allocator: *const AllocationCallbacks,
7150     ) {
7151         (self.destroy_descriptor_update_template_khr)(
7152             device,
7153             descriptor_update_template,
7154             p_allocator,
7155         )
7156     }
7157     #[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, )7158     pub unsafe fn update_descriptor_set_with_template_khr(
7159         &self,
7160         device: Device,
7161         descriptor_set: DescriptorSet,
7162         descriptor_update_template: DescriptorUpdateTemplate,
7163         p_data: *const c_void,
7164     ) {
7165         (self.update_descriptor_set_with_template_khr)(
7166             device,
7167             descriptor_set,
7168             descriptor_update_template,
7169             p_data,
7170         )
7171     }
7172     #[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, )7173     pub unsafe fn cmd_push_descriptor_set_with_template_khr(
7174         &self,
7175         command_buffer: CommandBuffer,
7176         descriptor_update_template: DescriptorUpdateTemplate,
7177         layout: PipelineLayout,
7178         set: u32,
7179         p_data: *const c_void,
7180     ) {
7181         (self.cmd_push_descriptor_set_with_template_khr)(
7182             command_buffer,
7183             descriptor_update_template,
7184             layout,
7185             set,
7186             p_data,
7187         )
7188     }
7189 }
7190 #[doc = "Generated from 'VK_KHR_descriptor_update_template'"]
7191 impl StructureType {
7192     pub const DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR: Self =
7193         Self::DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO;
7194 }
7195 #[doc = "Generated from 'VK_KHR_descriptor_update_template'"]
7196 impl ObjectType {
7197     pub const DESCRIPTOR_UPDATE_TEMPLATE_KHR: Self = Self::DESCRIPTOR_UPDATE_TEMPLATE;
7198 }
7199 #[doc = "Generated from 'VK_KHR_descriptor_update_template'"]
7200 impl DescriptorUpdateTemplateType {
7201     pub const DESCRIPTOR_SET_KHR: Self = Self::DESCRIPTOR_SET;
7202 }
7203 #[doc = "Generated from 'VK_KHR_descriptor_update_template'"]
7204 impl DebugReportObjectTypeEXT {
7205     pub const DESCRIPTOR_UPDATE_TEMPLATE_KHR: Self = Self::DESCRIPTOR_UPDATE_TEMPLATE;
7206 }
7207 impl NvxDeviceGeneratedCommandsFn {
name() -> &'static ::std::ffi::CStr7208     pub fn name() -> &'static ::std::ffi::CStr {
7209         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NVX_device_generated_commands\0")
7210             .expect("Wrong extension string")
7211     }
7212     pub const SPEC_VERSION: u32 = 3u32;
7213 }
7214 #[derive(Clone)]
7215 pub struct NvxDeviceGeneratedCommandsFn {}
7216 unsafe impl Send for NvxDeviceGeneratedCommandsFn {}
7217 unsafe impl Sync for NvxDeviceGeneratedCommandsFn {}
7218 impl NvxDeviceGeneratedCommandsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7219     pub fn load<F>(mut _f: F) -> Self
7220     where
7221         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7222     {
7223         NvxDeviceGeneratedCommandsFn {}
7224     }
7225 }
7226 impl NvClipSpaceWScalingFn {
name() -> &'static ::std::ffi::CStr7227     pub fn name() -> &'static ::std::ffi::CStr {
7228         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_clip_space_w_scaling\0")
7229             .expect("Wrong extension string")
7230     }
7231     pub const SPEC_VERSION: u32 = 1u32;
7232 }
7233 #[allow(non_camel_case_types)]
7234 pub type PFN_vkCmdSetViewportWScalingNV = unsafe extern "system" fn(
7235     command_buffer: CommandBuffer,
7236     first_viewport: u32,
7237     viewport_count: u32,
7238     p_viewport_w_scalings: *const ViewportWScalingNV,
7239 );
7240 #[derive(Clone)]
7241 pub struct NvClipSpaceWScalingFn {
7242     pub cmd_set_viewport_w_scaling_nv: PFN_vkCmdSetViewportWScalingNV,
7243 }
7244 unsafe impl Send for NvClipSpaceWScalingFn {}
7245 unsafe impl Sync for NvClipSpaceWScalingFn {}
7246 impl NvClipSpaceWScalingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7247     pub fn load<F>(mut _f: F) -> Self
7248     where
7249         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7250     {
7251         NvClipSpaceWScalingFn {
7252             cmd_set_viewport_w_scaling_nv: unsafe {
7253                 unsafe extern "system" fn cmd_set_viewport_w_scaling_nv(
7254                     _command_buffer: CommandBuffer,
7255                     _first_viewport: u32,
7256                     _viewport_count: u32,
7257                     _p_viewport_w_scalings: *const ViewportWScalingNV,
7258                 ) {
7259                     panic!(concat!(
7260                         "Unable to load ",
7261                         stringify!(cmd_set_viewport_w_scaling_nv)
7262                     ))
7263                 }
7264                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7265                     b"vkCmdSetViewportWScalingNV\0",
7266                 );
7267                 let val = _f(cname);
7268                 if val.is_null() {
7269                     cmd_set_viewport_w_scaling_nv
7270                 } else {
7271                     ::std::mem::transmute(val)
7272                 }
7273             },
7274         }
7275     }
7276     #[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, )7277     pub unsafe fn cmd_set_viewport_w_scaling_nv(
7278         &self,
7279         command_buffer: CommandBuffer,
7280         first_viewport: u32,
7281         viewport_count: u32,
7282         p_viewport_w_scalings: *const ViewportWScalingNV,
7283     ) {
7284         (self.cmd_set_viewport_w_scaling_nv)(
7285             command_buffer,
7286             first_viewport,
7287             viewport_count,
7288             p_viewport_w_scalings,
7289         )
7290     }
7291 }
7292 #[doc = "Generated from 'VK_NV_clip_space_w_scaling'"]
7293 impl StructureType {
7294     pub const PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV: Self = Self(1_000_087_000);
7295 }
7296 #[doc = "Generated from 'VK_NV_clip_space_w_scaling'"]
7297 impl DynamicState {
7298     pub const VIEWPORT_W_SCALING_NV: Self = Self(1_000_087_000);
7299 }
7300 impl ExtDirectModeDisplayFn {
name() -> &'static ::std::ffi::CStr7301     pub fn name() -> &'static ::std::ffi::CStr {
7302         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_direct_mode_display\0")
7303             .expect("Wrong extension string")
7304     }
7305     pub const SPEC_VERSION: u32 = 1u32;
7306 }
7307 #[allow(non_camel_case_types)]
7308 pub type PFN_vkReleaseDisplayEXT =
7309     unsafe extern "system" fn(physical_device: PhysicalDevice, display: DisplayKHR) -> Result;
7310 #[derive(Clone)]
7311 pub struct ExtDirectModeDisplayFn {
7312     pub release_display_ext: PFN_vkReleaseDisplayEXT,
7313 }
7314 unsafe impl Send for ExtDirectModeDisplayFn {}
7315 unsafe impl Sync for ExtDirectModeDisplayFn {}
7316 impl ExtDirectModeDisplayFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7317     pub fn load<F>(mut _f: F) -> Self
7318     where
7319         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7320     {
7321         ExtDirectModeDisplayFn {
7322             release_display_ext: unsafe {
7323                 unsafe extern "system" fn release_display_ext(
7324                     _physical_device: PhysicalDevice,
7325                     _display: DisplayKHR,
7326                 ) -> Result {
7327                     panic!(concat!("Unable to load ", stringify!(release_display_ext)))
7328                 }
7329                 let cname =
7330                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkReleaseDisplayEXT\0");
7331                 let val = _f(cname);
7332                 if val.is_null() {
7333                     release_display_ext
7334                 } else {
7335                     ::std::mem::transmute(val)
7336                 }
7337             },
7338         }
7339     }
7340     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkReleaseDisplayEXT.html>"]
release_display_ext( &self, physical_device: PhysicalDevice, display: DisplayKHR, ) -> Result7341     pub unsafe fn release_display_ext(
7342         &self,
7343         physical_device: PhysicalDevice,
7344         display: DisplayKHR,
7345     ) -> Result {
7346         (self.release_display_ext)(physical_device, display)
7347     }
7348 }
7349 impl ExtAcquireXlibDisplayFn {
name() -> &'static ::std::ffi::CStr7350     pub fn name() -> &'static ::std::ffi::CStr {
7351         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_acquire_xlib_display\0")
7352             .expect("Wrong extension string")
7353     }
7354     pub const SPEC_VERSION: u32 = 1u32;
7355 }
7356 #[allow(non_camel_case_types)]
7357 pub type PFN_vkAcquireXlibDisplayEXT = unsafe extern "system" fn(
7358     physical_device: PhysicalDevice,
7359     dpy: *mut Display,
7360     display: DisplayKHR,
7361 ) -> Result;
7362 #[allow(non_camel_case_types)]
7363 pub type PFN_vkGetRandROutputDisplayEXT = unsafe extern "system" fn(
7364     physical_device: PhysicalDevice,
7365     dpy: *mut Display,
7366     rr_output: RROutput,
7367     p_display: *mut DisplayKHR,
7368 ) -> Result;
7369 #[derive(Clone)]
7370 pub struct ExtAcquireXlibDisplayFn {
7371     pub acquire_xlib_display_ext: PFN_vkAcquireXlibDisplayEXT,
7372     pub get_rand_r_output_display_ext: PFN_vkGetRandROutputDisplayEXT,
7373 }
7374 unsafe impl Send for ExtAcquireXlibDisplayFn {}
7375 unsafe impl Sync for ExtAcquireXlibDisplayFn {}
7376 impl ExtAcquireXlibDisplayFn {
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         ExtAcquireXlibDisplayFn {
7382             acquire_xlib_display_ext: unsafe {
7383                 unsafe extern "system" fn acquire_xlib_display_ext(
7384                     _physical_device: PhysicalDevice,
7385                     _dpy: *mut Display,
7386                     _display: DisplayKHR,
7387                 ) -> Result {
7388                     panic!(concat!(
7389                         "Unable to load ",
7390                         stringify!(acquire_xlib_display_ext)
7391                     ))
7392                 }
7393                 let cname =
7394                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireXlibDisplayEXT\0");
7395                 let val = _f(cname);
7396                 if val.is_null() {
7397                     acquire_xlib_display_ext
7398                 } else {
7399                     ::std::mem::transmute(val)
7400                 }
7401             },
7402             get_rand_r_output_display_ext: unsafe {
7403                 unsafe extern "system" fn get_rand_r_output_display_ext(
7404                     _physical_device: PhysicalDevice,
7405                     _dpy: *mut Display,
7406                     _rr_output: RROutput,
7407                     _p_display: *mut DisplayKHR,
7408                 ) -> Result {
7409                     panic!(concat!(
7410                         "Unable to load ",
7411                         stringify!(get_rand_r_output_display_ext)
7412                     ))
7413                 }
7414                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7415                     b"vkGetRandROutputDisplayEXT\0",
7416                 );
7417                 let val = _f(cname);
7418                 if val.is_null() {
7419                     get_rand_r_output_display_ext
7420                 } else {
7421                     ::std::mem::transmute(val)
7422                 }
7423             },
7424         }
7425     }
7426     #[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, ) -> Result7427     pub unsafe fn acquire_xlib_display_ext(
7428         &self,
7429         physical_device: PhysicalDevice,
7430         dpy: *mut Display,
7431         display: DisplayKHR,
7432     ) -> Result {
7433         (self.acquire_xlib_display_ext)(physical_device, dpy, display)
7434     }
7435     #[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, ) -> Result7436     pub unsafe fn get_rand_r_output_display_ext(
7437         &self,
7438         physical_device: PhysicalDevice,
7439         dpy: *mut Display,
7440         rr_output: RROutput,
7441         p_display: *mut DisplayKHR,
7442     ) -> Result {
7443         (self.get_rand_r_output_display_ext)(physical_device, dpy, rr_output, p_display)
7444     }
7445 }
7446 impl ExtDisplaySurfaceCounterFn {
name() -> &'static ::std::ffi::CStr7447     pub fn name() -> &'static ::std::ffi::CStr {
7448         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_display_surface_counter\0")
7449             .expect("Wrong extension string")
7450     }
7451     pub const SPEC_VERSION: u32 = 1u32;
7452 }
7453 #[allow(non_camel_case_types)]
7454 pub type PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = unsafe extern "system" fn(
7455     physical_device: PhysicalDevice,
7456     surface: SurfaceKHR,
7457     p_surface_capabilities: *mut SurfaceCapabilities2EXT,
7458 ) -> Result;
7459 #[derive(Clone)]
7460 pub struct ExtDisplaySurfaceCounterFn {
7461     pub get_physical_device_surface_capabilities2_ext:
7462         PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT,
7463 }
7464 unsafe impl Send for ExtDisplaySurfaceCounterFn {}
7465 unsafe impl Sync for ExtDisplaySurfaceCounterFn {}
7466 impl ExtDisplaySurfaceCounterFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7467     pub fn load<F>(mut _f: F) -> Self
7468     where
7469         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7470     {
7471         ExtDisplaySurfaceCounterFn {
7472             get_physical_device_surface_capabilities2_ext: unsafe {
7473                 unsafe extern "system" fn get_physical_device_surface_capabilities2_ext(
7474                     _physical_device: PhysicalDevice,
7475                     _surface: SurfaceKHR,
7476                     _p_surface_capabilities: *mut SurfaceCapabilities2EXT,
7477                 ) -> Result {
7478                     panic!(concat!(
7479                         "Unable to load ",
7480                         stringify!(get_physical_device_surface_capabilities2_ext)
7481                     ))
7482                 }
7483                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7484                     b"vkGetPhysicalDeviceSurfaceCapabilities2EXT\0",
7485                 );
7486                 let val = _f(cname);
7487                 if val.is_null() {
7488                     get_physical_device_surface_capabilities2_ext
7489                 } else {
7490                     ::std::mem::transmute(val)
7491                 }
7492             },
7493         }
7494     }
7495     #[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, ) -> Result7496     pub unsafe fn get_physical_device_surface_capabilities2_ext(
7497         &self,
7498         physical_device: PhysicalDevice,
7499         surface: SurfaceKHR,
7500         p_surface_capabilities: *mut SurfaceCapabilities2EXT,
7501     ) -> Result {
7502         (self.get_physical_device_surface_capabilities2_ext)(
7503             physical_device,
7504             surface,
7505             p_surface_capabilities,
7506         )
7507     }
7508 }
7509 #[doc = "Generated from 'VK_EXT_display_surface_counter'"]
7510 impl StructureType {
7511     pub const SURFACE_CAPABILITIES_2_EXT: Self = Self(1_000_090_000);
7512 }
7513 #[doc = "Generated from 'VK_EXT_display_surface_counter'"]
7514 impl StructureType {
7515     pub const SURFACE_CAPABILITIES2_EXT: Self = Self::SURFACE_CAPABILITIES_2_EXT;
7516 }
7517 impl ExtDisplayControlFn {
name() -> &'static ::std::ffi::CStr7518     pub fn name() -> &'static ::std::ffi::CStr {
7519         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_display_control\0")
7520             .expect("Wrong extension string")
7521     }
7522     pub const SPEC_VERSION: u32 = 1u32;
7523 }
7524 #[allow(non_camel_case_types)]
7525 pub type PFN_vkDisplayPowerControlEXT = unsafe extern "system" fn(
7526     device: Device,
7527     display: DisplayKHR,
7528     p_display_power_info: *const DisplayPowerInfoEXT,
7529 ) -> Result;
7530 #[allow(non_camel_case_types)]
7531 pub type PFN_vkRegisterDeviceEventEXT = unsafe extern "system" fn(
7532     device: Device,
7533     p_device_event_info: *const DeviceEventInfoEXT,
7534     p_allocator: *const AllocationCallbacks,
7535     p_fence: *mut Fence,
7536 ) -> Result;
7537 #[allow(non_camel_case_types)]
7538 pub type PFN_vkRegisterDisplayEventEXT = unsafe extern "system" fn(
7539     device: Device,
7540     display: DisplayKHR,
7541     p_display_event_info: *const DisplayEventInfoEXT,
7542     p_allocator: *const AllocationCallbacks,
7543     p_fence: *mut Fence,
7544 ) -> Result;
7545 #[allow(non_camel_case_types)]
7546 pub type PFN_vkGetSwapchainCounterEXT = unsafe extern "system" fn(
7547     device: Device,
7548     swapchain: SwapchainKHR,
7549     counter: SurfaceCounterFlagsEXT,
7550     p_counter_value: *mut u64,
7551 ) -> Result;
7552 #[derive(Clone)]
7553 pub struct ExtDisplayControlFn {
7554     pub display_power_control_ext: PFN_vkDisplayPowerControlEXT,
7555     pub register_device_event_ext: PFN_vkRegisterDeviceEventEXT,
7556     pub register_display_event_ext: PFN_vkRegisterDisplayEventEXT,
7557     pub get_swapchain_counter_ext: PFN_vkGetSwapchainCounterEXT,
7558 }
7559 unsafe impl Send for ExtDisplayControlFn {}
7560 unsafe impl Sync for ExtDisplayControlFn {}
7561 impl ExtDisplayControlFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7562     pub fn load<F>(mut _f: F) -> Self
7563     where
7564         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7565     {
7566         ExtDisplayControlFn {
7567             display_power_control_ext: unsafe {
7568                 unsafe extern "system" fn display_power_control_ext(
7569                     _device: Device,
7570                     _display: DisplayKHR,
7571                     _p_display_power_info: *const DisplayPowerInfoEXT,
7572                 ) -> Result {
7573                     panic!(concat!(
7574                         "Unable to load ",
7575                         stringify!(display_power_control_ext)
7576                     ))
7577                 }
7578                 let cname =
7579                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDisplayPowerControlEXT\0");
7580                 let val = _f(cname);
7581                 if val.is_null() {
7582                     display_power_control_ext
7583                 } else {
7584                     ::std::mem::transmute(val)
7585                 }
7586             },
7587             register_device_event_ext: unsafe {
7588                 unsafe extern "system" fn register_device_event_ext(
7589                     _device: Device,
7590                     _p_device_event_info: *const DeviceEventInfoEXT,
7591                     _p_allocator: *const AllocationCallbacks,
7592                     _p_fence: *mut Fence,
7593                 ) -> Result {
7594                     panic!(concat!(
7595                         "Unable to load ",
7596                         stringify!(register_device_event_ext)
7597                     ))
7598                 }
7599                 let cname =
7600                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkRegisterDeviceEventEXT\0");
7601                 let val = _f(cname);
7602                 if val.is_null() {
7603                     register_device_event_ext
7604                 } else {
7605                     ::std::mem::transmute(val)
7606                 }
7607             },
7608             register_display_event_ext: unsafe {
7609                 unsafe extern "system" fn register_display_event_ext(
7610                     _device: Device,
7611                     _display: DisplayKHR,
7612                     _p_display_event_info: *const DisplayEventInfoEXT,
7613                     _p_allocator: *const AllocationCallbacks,
7614                     _p_fence: *mut Fence,
7615                 ) -> Result {
7616                     panic!(concat!(
7617                         "Unable to load ",
7618                         stringify!(register_display_event_ext)
7619                     ))
7620                 }
7621                 let cname =
7622                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkRegisterDisplayEventEXT\0");
7623                 let val = _f(cname);
7624                 if val.is_null() {
7625                     register_display_event_ext
7626                 } else {
7627                     ::std::mem::transmute(val)
7628                 }
7629             },
7630             get_swapchain_counter_ext: unsafe {
7631                 unsafe extern "system" fn get_swapchain_counter_ext(
7632                     _device: Device,
7633                     _swapchain: SwapchainKHR,
7634                     _counter: SurfaceCounterFlagsEXT,
7635                     _p_counter_value: *mut u64,
7636                 ) -> Result {
7637                     panic!(concat!(
7638                         "Unable to load ",
7639                         stringify!(get_swapchain_counter_ext)
7640                     ))
7641                 }
7642                 let cname =
7643                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetSwapchainCounterEXT\0");
7644                 let val = _f(cname);
7645                 if val.is_null() {
7646                     get_swapchain_counter_ext
7647                 } else {
7648                     ::std::mem::transmute(val)
7649                 }
7650             },
7651         }
7652     }
7653     #[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, ) -> Result7654     pub unsafe fn display_power_control_ext(
7655         &self,
7656         device: Device,
7657         display: DisplayKHR,
7658         p_display_power_info: *const DisplayPowerInfoEXT,
7659     ) -> Result {
7660         (self.display_power_control_ext)(device, display, p_display_power_info)
7661     }
7662     #[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, ) -> Result7663     pub unsafe fn register_device_event_ext(
7664         &self,
7665         device: Device,
7666         p_device_event_info: *const DeviceEventInfoEXT,
7667         p_allocator: *const AllocationCallbacks,
7668         p_fence: *mut Fence,
7669     ) -> Result {
7670         (self.register_device_event_ext)(device, p_device_event_info, p_allocator, p_fence)
7671     }
7672     #[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, ) -> Result7673     pub unsafe fn register_display_event_ext(
7674         &self,
7675         device: Device,
7676         display: DisplayKHR,
7677         p_display_event_info: *const DisplayEventInfoEXT,
7678         p_allocator: *const AllocationCallbacks,
7679         p_fence: *mut Fence,
7680     ) -> Result {
7681         (self.register_display_event_ext)(
7682             device,
7683             display,
7684             p_display_event_info,
7685             p_allocator,
7686             p_fence,
7687         )
7688     }
7689     #[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, ) -> Result7690     pub unsafe fn get_swapchain_counter_ext(
7691         &self,
7692         device: Device,
7693         swapchain: SwapchainKHR,
7694         counter: SurfaceCounterFlagsEXT,
7695         p_counter_value: *mut u64,
7696     ) -> Result {
7697         (self.get_swapchain_counter_ext)(device, swapchain, counter, p_counter_value)
7698     }
7699 }
7700 #[doc = "Generated from 'VK_EXT_display_control'"]
7701 impl StructureType {
7702     pub const DISPLAY_POWER_INFO_EXT: Self = Self(1_000_091_000);
7703 }
7704 #[doc = "Generated from 'VK_EXT_display_control'"]
7705 impl StructureType {
7706     pub const DEVICE_EVENT_INFO_EXT: Self = Self(1_000_091_001);
7707 }
7708 #[doc = "Generated from 'VK_EXT_display_control'"]
7709 impl StructureType {
7710     pub const DISPLAY_EVENT_INFO_EXT: Self = Self(1_000_091_002);
7711 }
7712 #[doc = "Generated from 'VK_EXT_display_control'"]
7713 impl StructureType {
7714     pub const SWAPCHAIN_COUNTER_CREATE_INFO_EXT: Self = Self(1_000_091_003);
7715 }
7716 impl GoogleDisplayTimingFn {
name() -> &'static ::std::ffi::CStr7717     pub fn name() -> &'static ::std::ffi::CStr {
7718         ::std::ffi::CStr::from_bytes_with_nul(b"VK_GOOGLE_display_timing\0")
7719             .expect("Wrong extension string")
7720     }
7721     pub const SPEC_VERSION: u32 = 1u32;
7722 }
7723 #[allow(non_camel_case_types)]
7724 pub type PFN_vkGetRefreshCycleDurationGOOGLE = unsafe extern "system" fn(
7725     device: Device,
7726     swapchain: SwapchainKHR,
7727     p_display_timing_properties: *mut RefreshCycleDurationGOOGLE,
7728 ) -> Result;
7729 #[allow(non_camel_case_types)]
7730 pub type PFN_vkGetPastPresentationTimingGOOGLE = unsafe extern "system" fn(
7731     device: Device,
7732     swapchain: SwapchainKHR,
7733     p_presentation_timing_count: *mut u32,
7734     p_presentation_timings: *mut PastPresentationTimingGOOGLE,
7735 ) -> Result;
7736 #[derive(Clone)]
7737 pub struct GoogleDisplayTimingFn {
7738     pub get_refresh_cycle_duration_google: PFN_vkGetRefreshCycleDurationGOOGLE,
7739     pub get_past_presentation_timing_google: PFN_vkGetPastPresentationTimingGOOGLE,
7740 }
7741 unsafe impl Send for GoogleDisplayTimingFn {}
7742 unsafe impl Sync for GoogleDisplayTimingFn {}
7743 impl GoogleDisplayTimingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7744     pub fn load<F>(mut _f: F) -> Self
7745     where
7746         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7747     {
7748         GoogleDisplayTimingFn {
7749             get_refresh_cycle_duration_google: unsafe {
7750                 unsafe extern "system" fn get_refresh_cycle_duration_google(
7751                     _device: Device,
7752                     _swapchain: SwapchainKHR,
7753                     _p_display_timing_properties: *mut RefreshCycleDurationGOOGLE,
7754                 ) -> Result {
7755                     panic!(concat!(
7756                         "Unable to load ",
7757                         stringify!(get_refresh_cycle_duration_google)
7758                     ))
7759                 }
7760                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7761                     b"vkGetRefreshCycleDurationGOOGLE\0",
7762                 );
7763                 let val = _f(cname);
7764                 if val.is_null() {
7765                     get_refresh_cycle_duration_google
7766                 } else {
7767                     ::std::mem::transmute(val)
7768                 }
7769             },
7770             get_past_presentation_timing_google: unsafe {
7771                 unsafe extern "system" fn get_past_presentation_timing_google(
7772                     _device: Device,
7773                     _swapchain: SwapchainKHR,
7774                     _p_presentation_timing_count: *mut u32,
7775                     _p_presentation_timings: *mut PastPresentationTimingGOOGLE,
7776                 ) -> Result {
7777                     panic!(concat!(
7778                         "Unable to load ",
7779                         stringify!(get_past_presentation_timing_google)
7780                     ))
7781                 }
7782                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7783                     b"vkGetPastPresentationTimingGOOGLE\0",
7784                 );
7785                 let val = _f(cname);
7786                 if val.is_null() {
7787                     get_past_presentation_timing_google
7788                 } else {
7789                     ::std::mem::transmute(val)
7790                 }
7791             },
7792         }
7793     }
7794     #[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, ) -> Result7795     pub unsafe fn get_refresh_cycle_duration_google(
7796         &self,
7797         device: Device,
7798         swapchain: SwapchainKHR,
7799         p_display_timing_properties: *mut RefreshCycleDurationGOOGLE,
7800     ) -> Result {
7801         (self.get_refresh_cycle_duration_google)(device, swapchain, p_display_timing_properties)
7802     }
7803     #[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, ) -> Result7804     pub unsafe fn get_past_presentation_timing_google(
7805         &self,
7806         device: Device,
7807         swapchain: SwapchainKHR,
7808         p_presentation_timing_count: *mut u32,
7809         p_presentation_timings: *mut PastPresentationTimingGOOGLE,
7810     ) -> Result {
7811         (self.get_past_presentation_timing_google)(
7812             device,
7813             swapchain,
7814             p_presentation_timing_count,
7815             p_presentation_timings,
7816         )
7817     }
7818 }
7819 #[doc = "Generated from 'VK_GOOGLE_display_timing'"]
7820 impl StructureType {
7821     pub const PRESENT_TIMES_INFO_GOOGLE: Self = Self(1_000_092_000);
7822 }
7823 impl NvSampleMaskOverrideCoverageFn {
name() -> &'static ::std::ffi::CStr7824     pub fn name() -> &'static ::std::ffi::CStr {
7825         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_sample_mask_override_coverage\0")
7826             .expect("Wrong extension string")
7827     }
7828     pub const SPEC_VERSION: u32 = 1u32;
7829 }
7830 #[derive(Clone)]
7831 pub struct NvSampleMaskOverrideCoverageFn {}
7832 unsafe impl Send for NvSampleMaskOverrideCoverageFn {}
7833 unsafe impl Sync for NvSampleMaskOverrideCoverageFn {}
7834 impl NvSampleMaskOverrideCoverageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7835     pub fn load<F>(mut _f: F) -> Self
7836     where
7837         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7838     {
7839         NvSampleMaskOverrideCoverageFn {}
7840     }
7841 }
7842 impl NvGeometryShaderPassthroughFn {
name() -> &'static ::std::ffi::CStr7843     pub fn name() -> &'static ::std::ffi::CStr {
7844         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_geometry_shader_passthrough\0")
7845             .expect("Wrong extension string")
7846     }
7847     pub const SPEC_VERSION: u32 = 1u32;
7848 }
7849 #[derive(Clone)]
7850 pub struct NvGeometryShaderPassthroughFn {}
7851 unsafe impl Send for NvGeometryShaderPassthroughFn {}
7852 unsafe impl Sync for NvGeometryShaderPassthroughFn {}
7853 impl NvGeometryShaderPassthroughFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7854     pub fn load<F>(mut _f: F) -> Self
7855     where
7856         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7857     {
7858         NvGeometryShaderPassthroughFn {}
7859     }
7860 }
7861 impl NvViewportArray2Fn {
name() -> &'static ::std::ffi::CStr7862     pub fn name() -> &'static ::std::ffi::CStr {
7863         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_viewport_array2\0")
7864             .expect("Wrong extension string")
7865     }
7866     pub const SPEC_VERSION: u32 = 1u32;
7867 }
7868 #[derive(Clone)]
7869 pub struct NvViewportArray2Fn {}
7870 unsafe impl Send for NvViewportArray2Fn {}
7871 unsafe impl Sync for NvViewportArray2Fn {}
7872 impl NvViewportArray2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7873     pub fn load<F>(mut _f: F) -> Self
7874     where
7875         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7876     {
7877         NvViewportArray2Fn {}
7878     }
7879 }
7880 impl NvxMultiviewPerViewAttributesFn {
name() -> &'static ::std::ffi::CStr7881     pub fn name() -> &'static ::std::ffi::CStr {
7882         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NVX_multiview_per_view_attributes\0")
7883             .expect("Wrong extension string")
7884     }
7885     pub const SPEC_VERSION: u32 = 1u32;
7886 }
7887 #[derive(Clone)]
7888 pub struct NvxMultiviewPerViewAttributesFn {}
7889 unsafe impl Send for NvxMultiviewPerViewAttributesFn {}
7890 unsafe impl Sync for NvxMultiviewPerViewAttributesFn {}
7891 impl NvxMultiviewPerViewAttributesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7892     pub fn load<F>(mut _f: F) -> Self
7893     where
7894         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7895     {
7896         NvxMultiviewPerViewAttributesFn {}
7897     }
7898 }
7899 #[doc = "Generated from 'VK_NVX_multiview_per_view_attributes'"]
7900 impl StructureType {
7901     pub const PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX: Self =
7902         Self(1_000_097_000);
7903 }
7904 #[doc = "Generated from 'VK_NVX_multiview_per_view_attributes'"]
7905 impl SubpassDescriptionFlags {
7906     pub const PER_VIEW_ATTRIBUTES_NVX: Self = Self(0b1);
7907 }
7908 #[doc = "Generated from 'VK_NVX_multiview_per_view_attributes'"]
7909 impl SubpassDescriptionFlags {
7910     pub const PER_VIEW_POSITION_X_ONLY_NVX: Self = Self(0b10);
7911 }
7912 impl NvViewportSwizzleFn {
name() -> &'static ::std::ffi::CStr7913     pub fn name() -> &'static ::std::ffi::CStr {
7914         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_viewport_swizzle\0")
7915             .expect("Wrong extension string")
7916     }
7917     pub const SPEC_VERSION: u32 = 1u32;
7918 }
7919 #[derive(Clone)]
7920 pub struct NvViewportSwizzleFn {}
7921 unsafe impl Send for NvViewportSwizzleFn {}
7922 unsafe impl Sync for NvViewportSwizzleFn {}
7923 impl NvViewportSwizzleFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7924     pub fn load<F>(mut _f: F) -> Self
7925     where
7926         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7927     {
7928         NvViewportSwizzleFn {}
7929     }
7930 }
7931 #[doc = "Generated from 'VK_NV_viewport_swizzle'"]
7932 impl StructureType {
7933     pub const PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV: Self = Self(1_000_098_000);
7934 }
7935 impl ExtDiscardRectanglesFn {
name() -> &'static ::std::ffi::CStr7936     pub fn name() -> &'static ::std::ffi::CStr {
7937         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_discard_rectangles\0")
7938             .expect("Wrong extension string")
7939     }
7940     pub const SPEC_VERSION: u32 = 1u32;
7941 }
7942 #[allow(non_camel_case_types)]
7943 pub type PFN_vkCmdSetDiscardRectangleEXT = unsafe extern "system" fn(
7944     command_buffer: CommandBuffer,
7945     first_discard_rectangle: u32,
7946     discard_rectangle_count: u32,
7947     p_discard_rectangles: *const Rect2D,
7948 );
7949 #[derive(Clone)]
7950 pub struct ExtDiscardRectanglesFn {
7951     pub cmd_set_discard_rectangle_ext: PFN_vkCmdSetDiscardRectangleEXT,
7952 }
7953 unsafe impl Send for ExtDiscardRectanglesFn {}
7954 unsafe impl Sync for ExtDiscardRectanglesFn {}
7955 impl ExtDiscardRectanglesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7956     pub fn load<F>(mut _f: F) -> Self
7957     where
7958         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7959     {
7960         ExtDiscardRectanglesFn {
7961             cmd_set_discard_rectangle_ext: unsafe {
7962                 unsafe extern "system" fn cmd_set_discard_rectangle_ext(
7963                     _command_buffer: CommandBuffer,
7964                     _first_discard_rectangle: u32,
7965                     _discard_rectangle_count: u32,
7966                     _p_discard_rectangles: *const Rect2D,
7967                 ) {
7968                     panic!(concat!(
7969                         "Unable to load ",
7970                         stringify!(cmd_set_discard_rectangle_ext)
7971                     ))
7972                 }
7973                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7974                     b"vkCmdSetDiscardRectangleEXT\0",
7975                 );
7976                 let val = _f(cname);
7977                 if val.is_null() {
7978                     cmd_set_discard_rectangle_ext
7979                 } else {
7980                     ::std::mem::transmute(val)
7981                 }
7982             },
7983         }
7984     }
7985     #[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, )7986     pub unsafe fn cmd_set_discard_rectangle_ext(
7987         &self,
7988         command_buffer: CommandBuffer,
7989         first_discard_rectangle: u32,
7990         discard_rectangle_count: u32,
7991         p_discard_rectangles: *const Rect2D,
7992     ) {
7993         (self.cmd_set_discard_rectangle_ext)(
7994             command_buffer,
7995             first_discard_rectangle,
7996             discard_rectangle_count,
7997             p_discard_rectangles,
7998         )
7999     }
8000 }
8001 #[doc = "Generated from 'VK_EXT_discard_rectangles'"]
8002 impl StructureType {
8003     pub const PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT: Self = Self(1_000_099_000);
8004 }
8005 #[doc = "Generated from 'VK_EXT_discard_rectangles'"]
8006 impl StructureType {
8007     pub const PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT: Self = Self(1_000_099_001);
8008 }
8009 #[doc = "Generated from 'VK_EXT_discard_rectangles'"]
8010 impl DynamicState {
8011     pub const DISCARD_RECTANGLE_EXT: Self = Self(1_000_099_000);
8012 }
8013 impl NvExtension101Fn {
name() -> &'static ::std::ffi::CStr8014     pub fn name() -> &'static ::std::ffi::CStr {
8015         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_extension_101\0")
8016             .expect("Wrong extension string")
8017     }
8018     pub const SPEC_VERSION: u32 = 0u32;
8019 }
8020 #[derive(Clone)]
8021 pub struct NvExtension101Fn {}
8022 unsafe impl Send for NvExtension101Fn {}
8023 unsafe impl Sync for NvExtension101Fn {}
8024 impl NvExtension101Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8025     pub fn load<F>(mut _f: F) -> Self
8026     where
8027         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8028     {
8029         NvExtension101Fn {}
8030     }
8031 }
8032 impl ExtConservativeRasterizationFn {
name() -> &'static ::std::ffi::CStr8033     pub fn name() -> &'static ::std::ffi::CStr {
8034         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_conservative_rasterization\0")
8035             .expect("Wrong extension string")
8036     }
8037     pub const SPEC_VERSION: u32 = 1u32;
8038 }
8039 #[derive(Clone)]
8040 pub struct ExtConservativeRasterizationFn {}
8041 unsafe impl Send for ExtConservativeRasterizationFn {}
8042 unsafe impl Sync for ExtConservativeRasterizationFn {}
8043 impl ExtConservativeRasterizationFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8044     pub fn load<F>(mut _f: F) -> Self
8045     where
8046         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8047     {
8048         ExtConservativeRasterizationFn {}
8049     }
8050 }
8051 #[doc = "Generated from 'VK_EXT_conservative_rasterization'"]
8052 impl StructureType {
8053     pub const PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT: Self = Self(1_000_101_000);
8054 }
8055 #[doc = "Generated from 'VK_EXT_conservative_rasterization'"]
8056 impl StructureType {
8057     pub const PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT: Self = Self(1_000_101_001);
8058 }
8059 impl ExtDepthClipEnableFn {
name() -> &'static ::std::ffi::CStr8060     pub fn name() -> &'static ::std::ffi::CStr {
8061         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_depth_clip_enable\0")
8062             .expect("Wrong extension string")
8063     }
8064     pub const SPEC_VERSION: u32 = 1u32;
8065 }
8066 #[derive(Clone)]
8067 pub struct ExtDepthClipEnableFn {}
8068 unsafe impl Send for ExtDepthClipEnableFn {}
8069 unsafe impl Sync for ExtDepthClipEnableFn {}
8070 impl ExtDepthClipEnableFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8071     pub fn load<F>(mut _f: F) -> Self
8072     where
8073         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8074     {
8075         ExtDepthClipEnableFn {}
8076     }
8077 }
8078 #[doc = "Generated from 'VK_EXT_depth_clip_enable'"]
8079 impl StructureType {
8080     pub const PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: Self = Self(1_000_102_000);
8081 }
8082 #[doc = "Generated from 'VK_EXT_depth_clip_enable'"]
8083 impl StructureType {
8084     pub const PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: Self = Self(1_000_102_001);
8085 }
8086 impl NvExtension104Fn {
name() -> &'static ::std::ffi::CStr8087     pub fn name() -> &'static ::std::ffi::CStr {
8088         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_extension_104\0")
8089             .expect("Wrong extension string")
8090     }
8091     pub const SPEC_VERSION: u32 = 0u32;
8092 }
8093 #[derive(Clone)]
8094 pub struct NvExtension104Fn {}
8095 unsafe impl Send for NvExtension104Fn {}
8096 unsafe impl Sync for NvExtension104Fn {}
8097 impl NvExtension104Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8098     pub fn load<F>(mut _f: F) -> Self
8099     where
8100         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8101     {
8102         NvExtension104Fn {}
8103     }
8104 }
8105 impl ExtSwapchainColorspaceFn {
name() -> &'static ::std::ffi::CStr8106     pub fn name() -> &'static ::std::ffi::CStr {
8107         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_swapchain_colorspace\0")
8108             .expect("Wrong extension string")
8109     }
8110     pub const SPEC_VERSION: u32 = 4u32;
8111 }
8112 #[derive(Clone)]
8113 pub struct ExtSwapchainColorspaceFn {}
8114 unsafe impl Send for ExtSwapchainColorspaceFn {}
8115 unsafe impl Sync for ExtSwapchainColorspaceFn {}
8116 impl ExtSwapchainColorspaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8117     pub fn load<F>(mut _f: F) -> Self
8118     where
8119         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8120     {
8121         ExtSwapchainColorspaceFn {}
8122     }
8123 }
8124 #[doc = "Generated from 'VK_EXT_swapchain_colorspace'"]
8125 impl ColorSpaceKHR {
8126     pub const DISPLAY_P3_NONLINEAR_EXT: Self = Self(1_000_104_001);
8127 }
8128 #[doc = "Generated from 'VK_EXT_swapchain_colorspace'"]
8129 impl ColorSpaceKHR {
8130     pub const EXTENDED_SRGB_LINEAR_EXT: Self = Self(1_000_104_002);
8131 }
8132 #[doc = "Generated from 'VK_EXT_swapchain_colorspace'"]
8133 impl ColorSpaceKHR {
8134     pub const DISPLAY_P3_LINEAR_EXT: Self = Self(1_000_104_003);
8135 }
8136 #[doc = "Generated from 'VK_EXT_swapchain_colorspace'"]
8137 impl ColorSpaceKHR {
8138     pub const DCI_P3_NONLINEAR_EXT: Self = Self(1_000_104_004);
8139 }
8140 #[doc = "Generated from 'VK_EXT_swapchain_colorspace'"]
8141 impl ColorSpaceKHR {
8142     pub const BT709_LINEAR_EXT: Self = Self(1_000_104_005);
8143 }
8144 #[doc = "Generated from 'VK_EXT_swapchain_colorspace'"]
8145 impl ColorSpaceKHR {
8146     pub const BT709_NONLINEAR_EXT: Self = Self(1_000_104_006);
8147 }
8148 #[doc = "Generated from 'VK_EXT_swapchain_colorspace'"]
8149 impl ColorSpaceKHR {
8150     pub const BT2020_LINEAR_EXT: Self = Self(1_000_104_007);
8151 }
8152 #[doc = "Generated from 'VK_EXT_swapchain_colorspace'"]
8153 impl ColorSpaceKHR {
8154     pub const HDR10_ST2084_EXT: Self = Self(1_000_104_008);
8155 }
8156 #[doc = "Generated from 'VK_EXT_swapchain_colorspace'"]
8157 impl ColorSpaceKHR {
8158     pub const DOLBYVISION_EXT: Self = Self(1_000_104_009);
8159 }
8160 #[doc = "Generated from 'VK_EXT_swapchain_colorspace'"]
8161 impl ColorSpaceKHR {
8162     pub const HDR10_HLG_EXT: Self = Self(1_000_104_010);
8163 }
8164 #[doc = "Generated from 'VK_EXT_swapchain_colorspace'"]
8165 impl ColorSpaceKHR {
8166     pub const ADOBERGB_LINEAR_EXT: Self = Self(1_000_104_011);
8167 }
8168 #[doc = "Generated from 'VK_EXT_swapchain_colorspace'"]
8169 impl ColorSpaceKHR {
8170     pub const ADOBERGB_NONLINEAR_EXT: Self = Self(1_000_104_012);
8171 }
8172 #[doc = "Generated from 'VK_EXT_swapchain_colorspace'"]
8173 impl ColorSpaceKHR {
8174     pub const PASS_THROUGH_EXT: Self = Self(1_000_104_013);
8175 }
8176 #[doc = "Generated from 'VK_EXT_swapchain_colorspace'"]
8177 impl ColorSpaceKHR {
8178     pub const EXTENDED_SRGB_NONLINEAR_EXT: Self = Self(1_000_104_014);
8179 }
8180 #[doc = "Generated from 'VK_EXT_swapchain_colorspace'"]
8181 impl ColorSpaceKHR {
8182     pub const DCI_P3_LINEAR_EXT: Self = Self::DISPLAY_P3_LINEAR_EXT;
8183 }
8184 impl ExtHdrMetadataFn {
name() -> &'static ::std::ffi::CStr8185     pub fn name() -> &'static ::std::ffi::CStr {
8186         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_hdr_metadata\0")
8187             .expect("Wrong extension string")
8188     }
8189     pub const SPEC_VERSION: u32 = 2u32;
8190 }
8191 #[allow(non_camel_case_types)]
8192 pub type PFN_vkSetHdrMetadataEXT = unsafe extern "system" fn(
8193     device: Device,
8194     swapchain_count: u32,
8195     p_swapchains: *const SwapchainKHR,
8196     p_metadata: *const HdrMetadataEXT,
8197 );
8198 #[derive(Clone)]
8199 pub struct ExtHdrMetadataFn {
8200     pub set_hdr_metadata_ext: PFN_vkSetHdrMetadataEXT,
8201 }
8202 unsafe impl Send for ExtHdrMetadataFn {}
8203 unsafe impl Sync for ExtHdrMetadataFn {}
8204 impl ExtHdrMetadataFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8205     pub fn load<F>(mut _f: F) -> Self
8206     where
8207         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8208     {
8209         ExtHdrMetadataFn {
8210             set_hdr_metadata_ext: unsafe {
8211                 unsafe extern "system" fn set_hdr_metadata_ext(
8212                     _device: Device,
8213                     _swapchain_count: u32,
8214                     _p_swapchains: *const SwapchainKHR,
8215                     _p_metadata: *const HdrMetadataEXT,
8216                 ) {
8217                     panic!(concat!("Unable to load ", stringify!(set_hdr_metadata_ext)))
8218                 }
8219                 let cname =
8220                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkSetHdrMetadataEXT\0");
8221                 let val = _f(cname);
8222                 if val.is_null() {
8223                     set_hdr_metadata_ext
8224                 } else {
8225                     ::std::mem::transmute(val)
8226                 }
8227             },
8228         }
8229     }
8230     #[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, )8231     pub unsafe fn set_hdr_metadata_ext(
8232         &self,
8233         device: Device,
8234         swapchain_count: u32,
8235         p_swapchains: *const SwapchainKHR,
8236         p_metadata: *const HdrMetadataEXT,
8237     ) {
8238         (self.set_hdr_metadata_ext)(device, swapchain_count, p_swapchains, p_metadata)
8239     }
8240 }
8241 #[doc = "Generated from 'VK_EXT_hdr_metadata'"]
8242 impl StructureType {
8243     pub const HDR_METADATA_EXT: Self = Self(1_000_105_000);
8244 }
8245 impl ImgExtension107Fn {
name() -> &'static ::std::ffi::CStr8246     pub fn name() -> &'static ::std::ffi::CStr {
8247         ::std::ffi::CStr::from_bytes_with_nul(b"VK_IMG_extension_107\0")
8248             .expect("Wrong extension string")
8249     }
8250     pub const SPEC_VERSION: u32 = 0u32;
8251 }
8252 #[derive(Clone)]
8253 pub struct ImgExtension107Fn {}
8254 unsafe impl Send for ImgExtension107Fn {}
8255 unsafe impl Sync for ImgExtension107Fn {}
8256 impl ImgExtension107Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8257     pub fn load<F>(mut _f: F) -> Self
8258     where
8259         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8260     {
8261         ImgExtension107Fn {}
8262     }
8263 }
8264 impl ImgExtension108Fn {
name() -> &'static ::std::ffi::CStr8265     pub fn name() -> &'static ::std::ffi::CStr {
8266         ::std::ffi::CStr::from_bytes_with_nul(b"VK_IMG_extension_108\0")
8267             .expect("Wrong extension string")
8268     }
8269     pub const SPEC_VERSION: u32 = 0u32;
8270 }
8271 #[derive(Clone)]
8272 pub struct ImgExtension108Fn {}
8273 unsafe impl Send for ImgExtension108Fn {}
8274 unsafe impl Sync for ImgExtension108Fn {}
8275 impl ImgExtension108Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8276     pub fn load<F>(mut _f: F) -> Self
8277     where
8278         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8279     {
8280         ImgExtension108Fn {}
8281     }
8282 }
8283 impl KhrImagelessFramebufferFn {
name() -> &'static ::std::ffi::CStr8284     pub fn name() -> &'static ::std::ffi::CStr {
8285         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_imageless_framebuffer\0")
8286             .expect("Wrong extension string")
8287     }
8288     pub const SPEC_VERSION: u32 = 1u32;
8289 }
8290 #[derive(Clone)]
8291 pub struct KhrImagelessFramebufferFn {}
8292 unsafe impl Send for KhrImagelessFramebufferFn {}
8293 unsafe impl Sync for KhrImagelessFramebufferFn {}
8294 impl KhrImagelessFramebufferFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8295     pub fn load<F>(mut _f: F) -> Self
8296     where
8297         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8298     {
8299         KhrImagelessFramebufferFn {}
8300     }
8301 }
8302 #[doc = "Generated from 'VK_KHR_imageless_framebuffer'"]
8303 impl StructureType {
8304     pub const PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR: Self =
8305         Self::PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES;
8306 }
8307 #[doc = "Generated from 'VK_KHR_imageless_framebuffer'"]
8308 impl StructureType {
8309     pub const FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR: Self =
8310         Self::FRAMEBUFFER_ATTACHMENTS_CREATE_INFO;
8311 }
8312 #[doc = "Generated from 'VK_KHR_imageless_framebuffer'"]
8313 impl StructureType {
8314     pub const FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR: Self = Self::FRAMEBUFFER_ATTACHMENT_IMAGE_INFO;
8315 }
8316 #[doc = "Generated from 'VK_KHR_imageless_framebuffer'"]
8317 impl StructureType {
8318     pub const RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR: Self = Self::RENDER_PASS_ATTACHMENT_BEGIN_INFO;
8319 }
8320 #[doc = "Generated from 'VK_KHR_imageless_framebuffer'"]
8321 impl FramebufferCreateFlags {
8322     pub const IMAGELESS_KHR: Self = Self::IMAGELESS;
8323 }
8324 impl KhrCreateRenderpass2Fn {
name() -> &'static ::std::ffi::CStr8325     pub fn name() -> &'static ::std::ffi::CStr {
8326         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_create_renderpass2\0")
8327             .expect("Wrong extension string")
8328     }
8329     pub const SPEC_VERSION: u32 = 1u32;
8330 }
8331 #[allow(non_camel_case_types)]
8332 pub type PFN_vkCreateRenderPass2 = unsafe extern "system" fn(
8333     device: Device,
8334     p_create_info: *const RenderPassCreateInfo2,
8335     p_allocator: *const AllocationCallbacks,
8336     p_render_pass: *mut RenderPass,
8337 ) -> Result;
8338 #[allow(non_camel_case_types)]
8339 pub type PFN_vkCmdBeginRenderPass2 = unsafe extern "system" fn(
8340     command_buffer: CommandBuffer,
8341     p_render_pass_begin: *const RenderPassBeginInfo,
8342     p_subpass_begin_info: *const SubpassBeginInfo,
8343 );
8344 #[allow(non_camel_case_types)]
8345 pub type PFN_vkCmdNextSubpass2 = unsafe extern "system" fn(
8346     command_buffer: CommandBuffer,
8347     p_subpass_begin_info: *const SubpassBeginInfo,
8348     p_subpass_end_info: *const SubpassEndInfo,
8349 );
8350 #[allow(non_camel_case_types)]
8351 pub type PFN_vkCmdEndRenderPass2 = unsafe extern "system" fn(
8352     command_buffer: CommandBuffer,
8353     p_subpass_end_info: *const SubpassEndInfo,
8354 );
8355 #[derive(Clone)]
8356 pub struct KhrCreateRenderpass2Fn {
8357     pub create_render_pass2_khr: PFN_vkCreateRenderPass2,
8358     pub cmd_begin_render_pass2_khr: PFN_vkCmdBeginRenderPass2,
8359     pub cmd_next_subpass2_khr: PFN_vkCmdNextSubpass2,
8360     pub cmd_end_render_pass2_khr: PFN_vkCmdEndRenderPass2,
8361 }
8362 unsafe impl Send for KhrCreateRenderpass2Fn {}
8363 unsafe impl Sync for KhrCreateRenderpass2Fn {}
8364 impl KhrCreateRenderpass2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8365     pub fn load<F>(mut _f: F) -> Self
8366     where
8367         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8368     {
8369         KhrCreateRenderpass2Fn {
8370             create_render_pass2_khr: unsafe {
8371                 unsafe extern "system" fn create_render_pass2_khr(
8372                     _device: Device,
8373                     _p_create_info: *const RenderPassCreateInfo2,
8374                     _p_allocator: *const AllocationCallbacks,
8375                     _p_render_pass: *mut RenderPass,
8376                 ) -> Result {
8377                     panic!(concat!(
8378                         "Unable to load ",
8379                         stringify!(create_render_pass2_khr)
8380                     ))
8381                 }
8382                 let cname =
8383                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateRenderPass2KHR\0");
8384                 let val = _f(cname);
8385                 if val.is_null() {
8386                     create_render_pass2_khr
8387                 } else {
8388                     ::std::mem::transmute(val)
8389                 }
8390             },
8391             cmd_begin_render_pass2_khr: unsafe {
8392                 unsafe extern "system" fn cmd_begin_render_pass2_khr(
8393                     _command_buffer: CommandBuffer,
8394                     _p_render_pass_begin: *const RenderPassBeginInfo,
8395                     _p_subpass_begin_info: *const SubpassBeginInfo,
8396                 ) {
8397                     panic!(concat!(
8398                         "Unable to load ",
8399                         stringify!(cmd_begin_render_pass2_khr)
8400                     ))
8401                 }
8402                 let cname =
8403                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginRenderPass2KHR\0");
8404                 let val = _f(cname);
8405                 if val.is_null() {
8406                     cmd_begin_render_pass2_khr
8407                 } else {
8408                     ::std::mem::transmute(val)
8409                 }
8410             },
8411             cmd_next_subpass2_khr: unsafe {
8412                 unsafe extern "system" fn cmd_next_subpass2_khr(
8413                     _command_buffer: CommandBuffer,
8414                     _p_subpass_begin_info: *const SubpassBeginInfo,
8415                     _p_subpass_end_info: *const SubpassEndInfo,
8416                 ) {
8417                     panic!(concat!(
8418                         "Unable to load ",
8419                         stringify!(cmd_next_subpass2_khr)
8420                     ))
8421                 }
8422                 let cname =
8423                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdNextSubpass2KHR\0");
8424                 let val = _f(cname);
8425                 if val.is_null() {
8426                     cmd_next_subpass2_khr
8427                 } else {
8428                     ::std::mem::transmute(val)
8429                 }
8430             },
8431             cmd_end_render_pass2_khr: unsafe {
8432                 unsafe extern "system" fn cmd_end_render_pass2_khr(
8433                     _command_buffer: CommandBuffer,
8434                     _p_subpass_end_info: *const SubpassEndInfo,
8435                 ) {
8436                     panic!(concat!(
8437                         "Unable to load ",
8438                         stringify!(cmd_end_render_pass2_khr)
8439                     ))
8440                 }
8441                 let cname =
8442                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdEndRenderPass2KHR\0");
8443                 let val = _f(cname);
8444                 if val.is_null() {
8445                     cmd_end_render_pass2_khr
8446                 } else {
8447                     ::std::mem::transmute(val)
8448                 }
8449             },
8450         }
8451     }
8452     #[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, ) -> Result8453     pub unsafe fn create_render_pass2_khr(
8454         &self,
8455         device: Device,
8456         p_create_info: *const RenderPassCreateInfo2,
8457         p_allocator: *const AllocationCallbacks,
8458         p_render_pass: *mut RenderPass,
8459     ) -> Result {
8460         (self.create_render_pass2_khr)(device, p_create_info, p_allocator, p_render_pass)
8461     }
8462     #[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, )8463     pub unsafe fn cmd_begin_render_pass2_khr(
8464         &self,
8465         command_buffer: CommandBuffer,
8466         p_render_pass_begin: *const RenderPassBeginInfo,
8467         p_subpass_begin_info: *const SubpassBeginInfo,
8468     ) {
8469         (self.cmd_begin_render_pass2_khr)(command_buffer, p_render_pass_begin, p_subpass_begin_info)
8470     }
8471     #[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, )8472     pub unsafe fn cmd_next_subpass2_khr(
8473         &self,
8474         command_buffer: CommandBuffer,
8475         p_subpass_begin_info: *const SubpassBeginInfo,
8476         p_subpass_end_info: *const SubpassEndInfo,
8477     ) {
8478         (self.cmd_next_subpass2_khr)(command_buffer, p_subpass_begin_info, p_subpass_end_info)
8479     }
8480     #[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, )8481     pub unsafe fn cmd_end_render_pass2_khr(
8482         &self,
8483         command_buffer: CommandBuffer,
8484         p_subpass_end_info: *const SubpassEndInfo,
8485     ) {
8486         (self.cmd_end_render_pass2_khr)(command_buffer, p_subpass_end_info)
8487     }
8488 }
8489 #[doc = "Generated from 'VK_KHR_create_renderpass2'"]
8490 impl StructureType {
8491     pub const ATTACHMENT_DESCRIPTION_2_KHR: Self = Self::ATTACHMENT_DESCRIPTION_2;
8492 }
8493 #[doc = "Generated from 'VK_KHR_create_renderpass2'"]
8494 impl StructureType {
8495     pub const ATTACHMENT_REFERENCE_2_KHR: Self = Self::ATTACHMENT_REFERENCE_2;
8496 }
8497 #[doc = "Generated from 'VK_KHR_create_renderpass2'"]
8498 impl StructureType {
8499     pub const SUBPASS_DESCRIPTION_2_KHR: Self = Self::SUBPASS_DESCRIPTION_2;
8500 }
8501 #[doc = "Generated from 'VK_KHR_create_renderpass2'"]
8502 impl StructureType {
8503     pub const SUBPASS_DEPENDENCY_2_KHR: Self = Self::SUBPASS_DEPENDENCY_2;
8504 }
8505 #[doc = "Generated from 'VK_KHR_create_renderpass2'"]
8506 impl StructureType {
8507     pub const RENDER_PASS_CREATE_INFO_2_KHR: Self = Self::RENDER_PASS_CREATE_INFO_2;
8508 }
8509 #[doc = "Generated from 'VK_KHR_create_renderpass2'"]
8510 impl StructureType {
8511     pub const SUBPASS_BEGIN_INFO_KHR: Self = Self::SUBPASS_BEGIN_INFO;
8512 }
8513 #[doc = "Generated from 'VK_KHR_create_renderpass2'"]
8514 impl StructureType {
8515     pub const SUBPASS_END_INFO_KHR: Self = Self::SUBPASS_END_INFO;
8516 }
8517 impl ImgExtension111Fn {
name() -> &'static ::std::ffi::CStr8518     pub fn name() -> &'static ::std::ffi::CStr {
8519         ::std::ffi::CStr::from_bytes_with_nul(b"VK_IMG_extension_111\0")
8520             .expect("Wrong extension string")
8521     }
8522     pub const SPEC_VERSION: u32 = 0u32;
8523 }
8524 #[derive(Clone)]
8525 pub struct ImgExtension111Fn {}
8526 unsafe impl Send for ImgExtension111Fn {}
8527 unsafe impl Sync for ImgExtension111Fn {}
8528 impl ImgExtension111Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8529     pub fn load<F>(mut _f: F) -> Self
8530     where
8531         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8532     {
8533         ImgExtension111Fn {}
8534     }
8535 }
8536 impl KhrSharedPresentableImageFn {
name() -> &'static ::std::ffi::CStr8537     pub fn name() -> &'static ::std::ffi::CStr {
8538         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_shared_presentable_image\0")
8539             .expect("Wrong extension string")
8540     }
8541     pub const SPEC_VERSION: u32 = 1u32;
8542 }
8543 #[allow(non_camel_case_types)]
8544 pub type PFN_vkGetSwapchainStatusKHR =
8545     unsafe extern "system" fn(device: Device, swapchain: SwapchainKHR) -> Result;
8546 #[derive(Clone)]
8547 pub struct KhrSharedPresentableImageFn {
8548     pub get_swapchain_status_khr: PFN_vkGetSwapchainStatusKHR,
8549 }
8550 unsafe impl Send for KhrSharedPresentableImageFn {}
8551 unsafe impl Sync for KhrSharedPresentableImageFn {}
8552 impl KhrSharedPresentableImageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8553     pub fn load<F>(mut _f: F) -> Self
8554     where
8555         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8556     {
8557         KhrSharedPresentableImageFn {
8558             get_swapchain_status_khr: unsafe {
8559                 unsafe extern "system" fn get_swapchain_status_khr(
8560                     _device: Device,
8561                     _swapchain: SwapchainKHR,
8562                 ) -> Result {
8563                     panic!(concat!(
8564                         "Unable to load ",
8565                         stringify!(get_swapchain_status_khr)
8566                     ))
8567                 }
8568                 let cname =
8569                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetSwapchainStatusKHR\0");
8570                 let val = _f(cname);
8571                 if val.is_null() {
8572                     get_swapchain_status_khr
8573                 } else {
8574                     ::std::mem::transmute(val)
8575                 }
8576             },
8577         }
8578     }
8579     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetSwapchainStatusKHR.html>"]
get_swapchain_status_khr( &self, device: Device, swapchain: SwapchainKHR, ) -> Result8580     pub unsafe fn get_swapchain_status_khr(
8581         &self,
8582         device: Device,
8583         swapchain: SwapchainKHR,
8584     ) -> Result {
8585         (self.get_swapchain_status_khr)(device, swapchain)
8586     }
8587 }
8588 #[doc = "Generated from 'VK_KHR_shared_presentable_image'"]
8589 impl StructureType {
8590     pub const SHARED_PRESENT_SURFACE_CAPABILITIES_KHR: Self = Self(1_000_111_000);
8591 }
8592 #[doc = "Generated from 'VK_KHR_shared_presentable_image'"]
8593 impl PresentModeKHR {
8594     pub const SHARED_DEMAND_REFRESH: Self = Self(1_000_111_000);
8595 }
8596 #[doc = "Generated from 'VK_KHR_shared_presentable_image'"]
8597 impl PresentModeKHR {
8598     pub const SHARED_CONTINUOUS_REFRESH: Self = Self(1_000_111_001);
8599 }
8600 #[doc = "Generated from 'VK_KHR_shared_presentable_image'"]
8601 impl ImageLayout {
8602     pub const SHARED_PRESENT_KHR: Self = Self(1_000_111_000);
8603 }
8604 impl KhrExternalFenceCapabilitiesFn {
name() -> &'static ::std::ffi::CStr8605     pub fn name() -> &'static ::std::ffi::CStr {
8606         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_external_fence_capabilities\0")
8607             .expect("Wrong extension string")
8608     }
8609     pub const SPEC_VERSION: u32 = 1u32;
8610 }
8611 #[allow(non_camel_case_types)]
8612 pub type PFN_vkGetPhysicalDeviceExternalFenceProperties = unsafe extern "system" fn(
8613     physical_device: PhysicalDevice,
8614     p_external_fence_info: *const PhysicalDeviceExternalFenceInfo,
8615     p_external_fence_properties: *mut ExternalFenceProperties,
8616 );
8617 #[derive(Clone)]
8618 pub struct KhrExternalFenceCapabilitiesFn {
8619     pub get_physical_device_external_fence_properties_khr:
8620         PFN_vkGetPhysicalDeviceExternalFenceProperties,
8621 }
8622 unsafe impl Send for KhrExternalFenceCapabilitiesFn {}
8623 unsafe impl Sync for KhrExternalFenceCapabilitiesFn {}
8624 impl KhrExternalFenceCapabilitiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8625     pub fn load<F>(mut _f: F) -> Self
8626     where
8627         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8628     {
8629         KhrExternalFenceCapabilitiesFn {
8630             get_physical_device_external_fence_properties_khr: unsafe {
8631                 unsafe extern "system" fn get_physical_device_external_fence_properties_khr(
8632                     _physical_device: PhysicalDevice,
8633                     _p_external_fence_info: *const PhysicalDeviceExternalFenceInfo,
8634                     _p_external_fence_properties: *mut ExternalFenceProperties,
8635                 ) {
8636                     panic!(concat!(
8637                         "Unable to load ",
8638                         stringify!(get_physical_device_external_fence_properties_khr)
8639                     ))
8640                 }
8641                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8642                     b"vkGetPhysicalDeviceExternalFencePropertiesKHR\0",
8643                 );
8644                 let val = _f(cname);
8645                 if val.is_null() {
8646                     get_physical_device_external_fence_properties_khr
8647                 } else {
8648                     ::std::mem::transmute(val)
8649                 }
8650             },
8651         }
8652     }
8653     #[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, )8654     pub unsafe fn get_physical_device_external_fence_properties_khr(
8655         &self,
8656         physical_device: PhysicalDevice,
8657         p_external_fence_info: *const PhysicalDeviceExternalFenceInfo,
8658         p_external_fence_properties: *mut ExternalFenceProperties,
8659     ) {
8660         (self.get_physical_device_external_fence_properties_khr)(
8661             physical_device,
8662             p_external_fence_info,
8663             p_external_fence_properties,
8664         )
8665     }
8666 }
8667 #[doc = "Generated from 'VK_KHR_external_fence_capabilities'"]
8668 impl StructureType {
8669     pub const PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR: Self =
8670         Self::PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO;
8671 }
8672 #[doc = "Generated from 'VK_KHR_external_fence_capabilities'"]
8673 impl StructureType {
8674     pub const EXTERNAL_FENCE_PROPERTIES_KHR: Self = Self::EXTERNAL_FENCE_PROPERTIES;
8675 }
8676 #[doc = "Generated from 'VK_KHR_external_fence_capabilities'"]
8677 impl ExternalFenceHandleTypeFlags {
8678     pub const OPAQUE_FD_KHR: Self = Self::OPAQUE_FD;
8679 }
8680 #[doc = "Generated from 'VK_KHR_external_fence_capabilities'"]
8681 impl ExternalFenceHandleTypeFlags {
8682     pub const OPAQUE_WIN32_KHR: Self = Self::OPAQUE_WIN32;
8683 }
8684 #[doc = "Generated from 'VK_KHR_external_fence_capabilities'"]
8685 impl ExternalFenceHandleTypeFlags {
8686     pub const OPAQUE_WIN32_KMT_KHR: Self = Self::OPAQUE_WIN32_KMT;
8687 }
8688 #[doc = "Generated from 'VK_KHR_external_fence_capabilities'"]
8689 impl ExternalFenceHandleTypeFlags {
8690     pub const SYNC_FD_KHR: Self = Self::SYNC_FD;
8691 }
8692 #[doc = "Generated from 'VK_KHR_external_fence_capabilities'"]
8693 impl ExternalFenceFeatureFlags {
8694     pub const EXPORTABLE_KHR: Self = Self::EXPORTABLE;
8695 }
8696 #[doc = "Generated from 'VK_KHR_external_fence_capabilities'"]
8697 impl ExternalFenceFeatureFlags {
8698     pub const IMPORTABLE_KHR: Self = Self::IMPORTABLE;
8699 }
8700 impl KhrExternalFenceFn {
name() -> &'static ::std::ffi::CStr8701     pub fn name() -> &'static ::std::ffi::CStr {
8702         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_external_fence\0")
8703             .expect("Wrong extension string")
8704     }
8705     pub const SPEC_VERSION: u32 = 1u32;
8706 }
8707 #[derive(Clone)]
8708 pub struct KhrExternalFenceFn {}
8709 unsafe impl Send for KhrExternalFenceFn {}
8710 unsafe impl Sync for KhrExternalFenceFn {}
8711 impl KhrExternalFenceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8712     pub fn load<F>(mut _f: F) -> Self
8713     where
8714         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8715     {
8716         KhrExternalFenceFn {}
8717     }
8718 }
8719 #[doc = "Generated from 'VK_KHR_external_fence'"]
8720 impl StructureType {
8721     pub const EXPORT_FENCE_CREATE_INFO_KHR: Self = Self::EXPORT_FENCE_CREATE_INFO;
8722 }
8723 #[doc = "Generated from 'VK_KHR_external_fence'"]
8724 impl FenceImportFlags {
8725     pub const TEMPORARY_KHR: Self = Self::TEMPORARY;
8726 }
8727 impl KhrExternalFenceWin32Fn {
name() -> &'static ::std::ffi::CStr8728     pub fn name() -> &'static ::std::ffi::CStr {
8729         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_external_fence_win32\0")
8730             .expect("Wrong extension string")
8731     }
8732     pub const SPEC_VERSION: u32 = 1u32;
8733 }
8734 #[allow(non_camel_case_types)]
8735 pub type PFN_vkImportFenceWin32HandleKHR = unsafe extern "system" fn(
8736     device: Device,
8737     p_import_fence_win32_handle_info: *const ImportFenceWin32HandleInfoKHR,
8738 ) -> Result;
8739 #[allow(non_camel_case_types)]
8740 pub type PFN_vkGetFenceWin32HandleKHR = unsafe extern "system" fn(
8741     device: Device,
8742     p_get_win32_handle_info: *const FenceGetWin32HandleInfoKHR,
8743     p_handle: *mut HANDLE,
8744 ) -> Result;
8745 #[derive(Clone)]
8746 pub struct KhrExternalFenceWin32Fn {
8747     pub import_fence_win32_handle_khr: PFN_vkImportFenceWin32HandleKHR,
8748     pub get_fence_win32_handle_khr: PFN_vkGetFenceWin32HandleKHR,
8749 }
8750 unsafe impl Send for KhrExternalFenceWin32Fn {}
8751 unsafe impl Sync for KhrExternalFenceWin32Fn {}
8752 impl KhrExternalFenceWin32Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8753     pub fn load<F>(mut _f: F) -> Self
8754     where
8755         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8756     {
8757         KhrExternalFenceWin32Fn {
8758             import_fence_win32_handle_khr: unsafe {
8759                 unsafe extern "system" fn import_fence_win32_handle_khr(
8760                     _device: Device,
8761                     _p_import_fence_win32_handle_info: *const ImportFenceWin32HandleInfoKHR,
8762                 ) -> Result {
8763                     panic!(concat!(
8764                         "Unable to load ",
8765                         stringify!(import_fence_win32_handle_khr)
8766                     ))
8767                 }
8768                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8769                     b"vkImportFenceWin32HandleKHR\0",
8770                 );
8771                 let val = _f(cname);
8772                 if val.is_null() {
8773                     import_fence_win32_handle_khr
8774                 } else {
8775                     ::std::mem::transmute(val)
8776                 }
8777             },
8778             get_fence_win32_handle_khr: unsafe {
8779                 unsafe extern "system" fn get_fence_win32_handle_khr(
8780                     _device: Device,
8781                     _p_get_win32_handle_info: *const FenceGetWin32HandleInfoKHR,
8782                     _p_handle: *mut HANDLE,
8783                 ) -> Result {
8784                     panic!(concat!(
8785                         "Unable to load ",
8786                         stringify!(get_fence_win32_handle_khr)
8787                     ))
8788                 }
8789                 let cname =
8790                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetFenceWin32HandleKHR\0");
8791                 let val = _f(cname);
8792                 if val.is_null() {
8793                     get_fence_win32_handle_khr
8794                 } else {
8795                     ::std::mem::transmute(val)
8796                 }
8797             },
8798         }
8799     }
8800     #[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, ) -> Result8801     pub unsafe fn import_fence_win32_handle_khr(
8802         &self,
8803         device: Device,
8804         p_import_fence_win32_handle_info: *const ImportFenceWin32HandleInfoKHR,
8805     ) -> Result {
8806         (self.import_fence_win32_handle_khr)(device, p_import_fence_win32_handle_info)
8807     }
8808     #[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, ) -> Result8809     pub unsafe fn get_fence_win32_handle_khr(
8810         &self,
8811         device: Device,
8812         p_get_win32_handle_info: *const FenceGetWin32HandleInfoKHR,
8813         p_handle: *mut HANDLE,
8814     ) -> Result {
8815         (self.get_fence_win32_handle_khr)(device, p_get_win32_handle_info, p_handle)
8816     }
8817 }
8818 #[doc = "Generated from 'VK_KHR_external_fence_win32'"]
8819 impl StructureType {
8820     pub const IMPORT_FENCE_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_114_000);
8821 }
8822 #[doc = "Generated from 'VK_KHR_external_fence_win32'"]
8823 impl StructureType {
8824     pub const EXPORT_FENCE_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_114_001);
8825 }
8826 #[doc = "Generated from 'VK_KHR_external_fence_win32'"]
8827 impl StructureType {
8828     pub const FENCE_GET_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_114_002);
8829 }
8830 impl KhrExternalFenceFdFn {
name() -> &'static ::std::ffi::CStr8831     pub fn name() -> &'static ::std::ffi::CStr {
8832         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_external_fence_fd\0")
8833             .expect("Wrong extension string")
8834     }
8835     pub const SPEC_VERSION: u32 = 1u32;
8836 }
8837 #[allow(non_camel_case_types)]
8838 pub type PFN_vkImportFenceFdKHR = unsafe extern "system" fn(
8839     device: Device,
8840     p_import_fence_fd_info: *const ImportFenceFdInfoKHR,
8841 ) -> Result;
8842 #[allow(non_camel_case_types)]
8843 pub type PFN_vkGetFenceFdKHR = unsafe extern "system" fn(
8844     device: Device,
8845     p_get_fd_info: *const FenceGetFdInfoKHR,
8846     p_fd: *mut c_int,
8847 ) -> Result;
8848 #[derive(Clone)]
8849 pub struct KhrExternalFenceFdFn {
8850     pub import_fence_fd_khr: PFN_vkImportFenceFdKHR,
8851     pub get_fence_fd_khr: PFN_vkGetFenceFdKHR,
8852 }
8853 unsafe impl Send for KhrExternalFenceFdFn {}
8854 unsafe impl Sync for KhrExternalFenceFdFn {}
8855 impl KhrExternalFenceFdFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8856     pub fn load<F>(mut _f: F) -> Self
8857     where
8858         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8859     {
8860         KhrExternalFenceFdFn {
8861             import_fence_fd_khr: unsafe {
8862                 unsafe extern "system" fn import_fence_fd_khr(
8863                     _device: Device,
8864                     _p_import_fence_fd_info: *const ImportFenceFdInfoKHR,
8865                 ) -> Result {
8866                     panic!(concat!("Unable to load ", stringify!(import_fence_fd_khr)))
8867                 }
8868                 let cname =
8869                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkImportFenceFdKHR\0");
8870                 let val = _f(cname);
8871                 if val.is_null() {
8872                     import_fence_fd_khr
8873                 } else {
8874                     ::std::mem::transmute(val)
8875                 }
8876             },
8877             get_fence_fd_khr: unsafe {
8878                 unsafe extern "system" fn get_fence_fd_khr(
8879                     _device: Device,
8880                     _p_get_fd_info: *const FenceGetFdInfoKHR,
8881                     _p_fd: *mut c_int,
8882                 ) -> Result {
8883                     panic!(concat!("Unable to load ", stringify!(get_fence_fd_khr)))
8884                 }
8885                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetFenceFdKHR\0");
8886                 let val = _f(cname);
8887                 if val.is_null() {
8888                     get_fence_fd_khr
8889                 } else {
8890                     ::std::mem::transmute(val)
8891                 }
8892             },
8893         }
8894     }
8895     #[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, ) -> Result8896     pub unsafe fn import_fence_fd_khr(
8897         &self,
8898         device: Device,
8899         p_import_fence_fd_info: *const ImportFenceFdInfoKHR,
8900     ) -> Result {
8901         (self.import_fence_fd_khr)(device, p_import_fence_fd_info)
8902     }
8903     #[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, ) -> Result8904     pub unsafe fn get_fence_fd_khr(
8905         &self,
8906         device: Device,
8907         p_get_fd_info: *const FenceGetFdInfoKHR,
8908         p_fd: *mut c_int,
8909     ) -> Result {
8910         (self.get_fence_fd_khr)(device, p_get_fd_info, p_fd)
8911     }
8912 }
8913 #[doc = "Generated from 'VK_KHR_external_fence_fd'"]
8914 impl StructureType {
8915     pub const IMPORT_FENCE_FD_INFO_KHR: Self = Self(1_000_115_000);
8916 }
8917 #[doc = "Generated from 'VK_KHR_external_fence_fd'"]
8918 impl StructureType {
8919     pub const FENCE_GET_FD_INFO_KHR: Self = Self(1_000_115_001);
8920 }
8921 impl KhrPerformanceQueryFn {
name() -> &'static ::std::ffi::CStr8922     pub fn name() -> &'static ::std::ffi::CStr {
8923         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_performance_query\0")
8924             .expect("Wrong extension string")
8925     }
8926     pub const SPEC_VERSION: u32 = 1u32;
8927 }
8928 #[allow(non_camel_case_types)]
8929 pub type PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR =
8930     unsafe extern "system" fn(
8931         physical_device: PhysicalDevice,
8932         queue_family_index: u32,
8933         p_counter_count: *mut u32,
8934         p_counters: *mut PerformanceCounterKHR,
8935         p_counter_descriptions: *mut PerformanceCounterDescriptionKHR,
8936     ) -> Result;
8937 #[allow(non_camel_case_types)]
8938 pub type PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR =
8939     unsafe extern "system" fn(
8940         physical_device: PhysicalDevice,
8941         p_performance_query_create_info: *const QueryPoolPerformanceCreateInfoKHR,
8942         p_num_passes: *mut u32,
8943     );
8944 #[allow(non_camel_case_types)]
8945 pub type PFN_vkAcquireProfilingLockKHR =
8946     unsafe extern "system" fn(device: Device, p_info: *const AcquireProfilingLockInfoKHR) -> Result;
8947 #[allow(non_camel_case_types)]
8948 pub type PFN_vkReleaseProfilingLockKHR = unsafe extern "system" fn(device: Device);
8949 #[derive(Clone)]
8950 pub struct KhrPerformanceQueryFn {
8951     pub enumerate_physical_device_queue_family_performance_query_counters_khr:
8952         PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR,
8953     pub get_physical_device_queue_family_performance_query_passes_khr:
8954         PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR,
8955     pub acquire_profiling_lock_khr: PFN_vkAcquireProfilingLockKHR,
8956     pub release_profiling_lock_khr: PFN_vkReleaseProfilingLockKHR,
8957 }
8958 unsafe impl Send for KhrPerformanceQueryFn {}
8959 unsafe impl Sync for KhrPerformanceQueryFn {}
8960 impl KhrPerformanceQueryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8961     pub fn load<F>(mut _f: F) -> Self
8962     where
8963         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8964     {
8965         KhrPerformanceQueryFn {
8966             enumerate_physical_device_queue_family_performance_query_counters_khr: unsafe {
8967                 unsafe extern "system" fn enumerate_physical_device_queue_family_performance_query_counters_khr(
8968                     _physical_device: PhysicalDevice,
8969                     _queue_family_index: u32,
8970                     _p_counter_count: *mut u32,
8971                     _p_counters: *mut PerformanceCounterKHR,
8972                     _p_counter_descriptions: *mut PerformanceCounterDescriptionKHR,
8973                 ) -> Result {
8974                     panic!(concat!(
8975                         "Unable to load ",
8976                         stringify!(
8977                             enumerate_physical_device_queue_family_performance_query_counters_khr
8978                         )
8979                     ))
8980                 }
8981                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8982                     b"vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR\0",
8983                 );
8984                 let val = _f(cname);
8985                 if val.is_null() {
8986                     enumerate_physical_device_queue_family_performance_query_counters_khr
8987                 } else {
8988                     ::std::mem::transmute(val)
8989                 }
8990             },
8991             get_physical_device_queue_family_performance_query_passes_khr: unsafe {
8992                 unsafe extern "system" fn get_physical_device_queue_family_performance_query_passes_khr(
8993                     _physical_device: PhysicalDevice,
8994                     _p_performance_query_create_info: *const QueryPoolPerformanceCreateInfoKHR,
8995                     _p_num_passes: *mut u32,
8996                 ) {
8997                     panic!(concat!(
8998                         "Unable to load ",
8999                         stringify!(get_physical_device_queue_family_performance_query_passes_khr)
9000                     ))
9001                 }
9002                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9003                     b"vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR\0",
9004                 );
9005                 let val = _f(cname);
9006                 if val.is_null() {
9007                     get_physical_device_queue_family_performance_query_passes_khr
9008                 } else {
9009                     ::std::mem::transmute(val)
9010                 }
9011             },
9012             acquire_profiling_lock_khr: unsafe {
9013                 unsafe extern "system" fn acquire_profiling_lock_khr(
9014                     _device: Device,
9015                     _p_info: *const AcquireProfilingLockInfoKHR,
9016                 ) -> Result {
9017                     panic!(concat!(
9018                         "Unable to load ",
9019                         stringify!(acquire_profiling_lock_khr)
9020                     ))
9021                 }
9022                 let cname =
9023                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireProfilingLockKHR\0");
9024                 let val = _f(cname);
9025                 if val.is_null() {
9026                     acquire_profiling_lock_khr
9027                 } else {
9028                     ::std::mem::transmute(val)
9029                 }
9030             },
9031             release_profiling_lock_khr: unsafe {
9032                 unsafe extern "system" fn release_profiling_lock_khr(_device: Device) {
9033                     panic!(concat!(
9034                         "Unable to load ",
9035                         stringify!(release_profiling_lock_khr)
9036                     ))
9037                 }
9038                 let cname =
9039                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkReleaseProfilingLockKHR\0");
9040                 let val = _f(cname);
9041                 if val.is_null() {
9042                     release_profiling_lock_khr
9043                 } else {
9044                     ::std::mem::transmute(val)
9045                 }
9046             },
9047         }
9048     }
9049     #[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, ) -> Result9050     pub unsafe fn enumerate_physical_device_queue_family_performance_query_counters_khr(
9051         &self,
9052         physical_device: PhysicalDevice,
9053         queue_family_index: u32,
9054         p_counter_count: *mut u32,
9055         p_counters: *mut PerformanceCounterKHR,
9056         p_counter_descriptions: *mut PerformanceCounterDescriptionKHR,
9057     ) -> Result {
9058         (self.enumerate_physical_device_queue_family_performance_query_counters_khr)(
9059             physical_device,
9060             queue_family_index,
9061             p_counter_count,
9062             p_counters,
9063             p_counter_descriptions,
9064         )
9065     }
9066     #[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, )9067     pub unsafe fn get_physical_device_queue_family_performance_query_passes_khr(
9068         &self,
9069         physical_device: PhysicalDevice,
9070         p_performance_query_create_info: *const QueryPoolPerformanceCreateInfoKHR,
9071         p_num_passes: *mut u32,
9072     ) {
9073         (self.get_physical_device_queue_family_performance_query_passes_khr)(
9074             physical_device,
9075             p_performance_query_create_info,
9076             p_num_passes,
9077         )
9078     }
9079     #[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, ) -> Result9080     pub unsafe fn acquire_profiling_lock_khr(
9081         &self,
9082         device: Device,
9083         p_info: *const AcquireProfilingLockInfoKHR,
9084     ) -> Result {
9085         (self.acquire_profiling_lock_khr)(device, p_info)
9086     }
9087     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkReleaseProfilingLockKHR.html>"]
release_profiling_lock_khr(&self, device: Device)9088     pub unsafe fn release_profiling_lock_khr(&self, device: Device) {
9089         (self.release_profiling_lock_khr)(device)
9090     }
9091 }
9092 #[doc = "Generated from 'VK_KHR_performance_query'"]
9093 impl QueryType {
9094     pub const PERFORMANCE_QUERY_KHR: Self = Self(1_000_116_000);
9095 }
9096 #[doc = "Generated from 'VK_KHR_performance_query'"]
9097 impl StructureType {
9098     pub const PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR: Self = Self(1_000_116_000);
9099 }
9100 #[doc = "Generated from 'VK_KHR_performance_query'"]
9101 impl StructureType {
9102     pub const PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR: Self = Self(1_000_116_001);
9103 }
9104 #[doc = "Generated from 'VK_KHR_performance_query'"]
9105 impl StructureType {
9106     pub const QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR: Self = Self(1_000_116_002);
9107 }
9108 #[doc = "Generated from 'VK_KHR_performance_query'"]
9109 impl StructureType {
9110     pub const PERFORMANCE_QUERY_SUBMIT_INFO_KHR: Self = Self(1_000_116_003);
9111 }
9112 #[doc = "Generated from 'VK_KHR_performance_query'"]
9113 impl StructureType {
9114     pub const ACQUIRE_PROFILING_LOCK_INFO_KHR: Self = Self(1_000_116_004);
9115 }
9116 #[doc = "Generated from 'VK_KHR_performance_query'"]
9117 impl StructureType {
9118     pub const PERFORMANCE_COUNTER_KHR: Self = Self(1_000_116_005);
9119 }
9120 #[doc = "Generated from 'VK_KHR_performance_query'"]
9121 impl StructureType {
9122     pub const PERFORMANCE_COUNTER_DESCRIPTION_KHR: Self = Self(1_000_116_006);
9123 }
9124 impl KhrMaintenance2Fn {
name() -> &'static ::std::ffi::CStr9125     pub fn name() -> &'static ::std::ffi::CStr {
9126         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_maintenance2\0")
9127             .expect("Wrong extension string")
9128     }
9129     pub const SPEC_VERSION: u32 = 1u32;
9130 }
9131 #[derive(Clone)]
9132 pub struct KhrMaintenance2Fn {}
9133 unsafe impl Send for KhrMaintenance2Fn {}
9134 unsafe impl Sync for KhrMaintenance2Fn {}
9135 impl KhrMaintenance2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9136     pub fn load<F>(mut _f: F) -> Self
9137     where
9138         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9139     {
9140         KhrMaintenance2Fn {}
9141     }
9142 }
9143 #[doc = "Generated from 'VK_KHR_maintenance2'"]
9144 impl ImageCreateFlags {
9145     pub const BLOCK_TEXEL_VIEW_COMPATIBLE_KHR: Self = Self::BLOCK_TEXEL_VIEW_COMPATIBLE;
9146 }
9147 #[doc = "Generated from 'VK_KHR_maintenance2'"]
9148 impl ImageCreateFlags {
9149     pub const EXTENDED_USAGE_KHR: Self = Self::EXTENDED_USAGE;
9150 }
9151 #[doc = "Generated from 'VK_KHR_maintenance2'"]
9152 impl StructureType {
9153     pub const PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR: Self =
9154         Self::PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES;
9155 }
9156 #[doc = "Generated from 'VK_KHR_maintenance2'"]
9157 impl StructureType {
9158     pub const RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR: Self =
9159         Self::RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO;
9160 }
9161 #[doc = "Generated from 'VK_KHR_maintenance2'"]
9162 impl StructureType {
9163     pub const IMAGE_VIEW_USAGE_CREATE_INFO_KHR: Self = Self::IMAGE_VIEW_USAGE_CREATE_INFO;
9164 }
9165 #[doc = "Generated from 'VK_KHR_maintenance2'"]
9166 impl StructureType {
9167     pub const PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR: Self =
9168         Self::PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO;
9169 }
9170 #[doc = "Generated from 'VK_KHR_maintenance2'"]
9171 impl ImageLayout {
9172     pub const DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR: Self =
9173         Self::DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL;
9174 }
9175 #[doc = "Generated from 'VK_KHR_maintenance2'"]
9176 impl ImageLayout {
9177     pub const DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR: Self =
9178         Self::DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL;
9179 }
9180 #[doc = "Generated from 'VK_KHR_maintenance2'"]
9181 impl PointClippingBehavior {
9182     pub const ALL_CLIP_PLANES_KHR: Self = Self::ALL_CLIP_PLANES;
9183 }
9184 #[doc = "Generated from 'VK_KHR_maintenance2'"]
9185 impl PointClippingBehavior {
9186     pub const USER_CLIP_PLANES_ONLY_KHR: Self = Self::USER_CLIP_PLANES_ONLY;
9187 }
9188 #[doc = "Generated from 'VK_KHR_maintenance2'"]
9189 impl TessellationDomainOrigin {
9190     pub const UPPER_LEFT_KHR: Self = Self::UPPER_LEFT;
9191 }
9192 #[doc = "Generated from 'VK_KHR_maintenance2'"]
9193 impl TessellationDomainOrigin {
9194     pub const LOWER_LEFT_KHR: Self = Self::LOWER_LEFT;
9195 }
9196 impl KhrExtension119Fn {
name() -> &'static ::std::ffi::CStr9197     pub fn name() -> &'static ::std::ffi::CStr {
9198         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_119\0")
9199             .expect("Wrong extension string")
9200     }
9201     pub const SPEC_VERSION: u32 = 0u32;
9202 }
9203 #[derive(Clone)]
9204 pub struct KhrExtension119Fn {}
9205 unsafe impl Send for KhrExtension119Fn {}
9206 unsafe impl Sync for KhrExtension119Fn {}
9207 impl KhrExtension119Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9208     pub fn load<F>(mut _f: F) -> Self
9209     where
9210         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9211     {
9212         KhrExtension119Fn {}
9213     }
9214 }
9215 impl KhrGetSurfaceCapabilities2Fn {
name() -> &'static ::std::ffi::CStr9216     pub fn name() -> &'static ::std::ffi::CStr {
9217         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_get_surface_capabilities2\0")
9218             .expect("Wrong extension string")
9219     }
9220     pub const SPEC_VERSION: u32 = 1u32;
9221 }
9222 #[allow(non_camel_case_types)]
9223 pub type PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = unsafe extern "system" fn(
9224     physical_device: PhysicalDevice,
9225     p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
9226     p_surface_capabilities: *mut SurfaceCapabilities2KHR,
9227 ) -> Result;
9228 #[allow(non_camel_case_types)]
9229 pub type PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = unsafe extern "system" fn(
9230     physical_device: PhysicalDevice,
9231     p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
9232     p_surface_format_count: *mut u32,
9233     p_surface_formats: *mut SurfaceFormat2KHR,
9234 ) -> Result;
9235 #[derive(Clone)]
9236 pub struct KhrGetSurfaceCapabilities2Fn {
9237     pub get_physical_device_surface_capabilities2_khr:
9238         PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR,
9239     pub get_physical_device_surface_formats2_khr: PFN_vkGetPhysicalDeviceSurfaceFormats2KHR,
9240 }
9241 unsafe impl Send for KhrGetSurfaceCapabilities2Fn {}
9242 unsafe impl Sync for KhrGetSurfaceCapabilities2Fn {}
9243 impl KhrGetSurfaceCapabilities2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9244     pub fn load<F>(mut _f: F) -> Self
9245     where
9246         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9247     {
9248         KhrGetSurfaceCapabilities2Fn {
9249             get_physical_device_surface_capabilities2_khr: unsafe {
9250                 unsafe extern "system" fn get_physical_device_surface_capabilities2_khr(
9251                     _physical_device: PhysicalDevice,
9252                     _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
9253                     _p_surface_capabilities: *mut SurfaceCapabilities2KHR,
9254                 ) -> Result {
9255                     panic!(concat!(
9256                         "Unable to load ",
9257                         stringify!(get_physical_device_surface_capabilities2_khr)
9258                     ))
9259                 }
9260                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9261                     b"vkGetPhysicalDeviceSurfaceCapabilities2KHR\0",
9262                 );
9263                 let val = _f(cname);
9264                 if val.is_null() {
9265                     get_physical_device_surface_capabilities2_khr
9266                 } else {
9267                     ::std::mem::transmute(val)
9268                 }
9269             },
9270             get_physical_device_surface_formats2_khr: unsafe {
9271                 unsafe extern "system" fn get_physical_device_surface_formats2_khr(
9272                     _physical_device: PhysicalDevice,
9273                     _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
9274                     _p_surface_format_count: *mut u32,
9275                     _p_surface_formats: *mut SurfaceFormat2KHR,
9276                 ) -> Result {
9277                     panic!(concat!(
9278                         "Unable to load ",
9279                         stringify!(get_physical_device_surface_formats2_khr)
9280                     ))
9281                 }
9282                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9283                     b"vkGetPhysicalDeviceSurfaceFormats2KHR\0",
9284                 );
9285                 let val = _f(cname);
9286                 if val.is_null() {
9287                     get_physical_device_surface_formats2_khr
9288                 } else {
9289                     ::std::mem::transmute(val)
9290                 }
9291             },
9292         }
9293     }
9294     #[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, ) -> Result9295     pub unsafe fn get_physical_device_surface_capabilities2_khr(
9296         &self,
9297         physical_device: PhysicalDevice,
9298         p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
9299         p_surface_capabilities: *mut SurfaceCapabilities2KHR,
9300     ) -> Result {
9301         (self.get_physical_device_surface_capabilities2_khr)(
9302             physical_device,
9303             p_surface_info,
9304             p_surface_capabilities,
9305         )
9306     }
9307     #[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, ) -> Result9308     pub unsafe fn get_physical_device_surface_formats2_khr(
9309         &self,
9310         physical_device: PhysicalDevice,
9311         p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
9312         p_surface_format_count: *mut u32,
9313         p_surface_formats: *mut SurfaceFormat2KHR,
9314     ) -> Result {
9315         (self.get_physical_device_surface_formats2_khr)(
9316             physical_device,
9317             p_surface_info,
9318             p_surface_format_count,
9319             p_surface_formats,
9320         )
9321     }
9322 }
9323 #[doc = "Generated from 'VK_KHR_get_surface_capabilities2'"]
9324 impl StructureType {
9325     pub const PHYSICAL_DEVICE_SURFACE_INFO_2_KHR: Self = Self(1_000_119_000);
9326 }
9327 #[doc = "Generated from 'VK_KHR_get_surface_capabilities2'"]
9328 impl StructureType {
9329     pub const SURFACE_CAPABILITIES_2_KHR: Self = Self(1_000_119_001);
9330 }
9331 #[doc = "Generated from 'VK_KHR_get_surface_capabilities2'"]
9332 impl StructureType {
9333     pub const SURFACE_FORMAT_2_KHR: Self = Self(1_000_119_002);
9334 }
9335 impl KhrVariablePointersFn {
name() -> &'static ::std::ffi::CStr9336     pub fn name() -> &'static ::std::ffi::CStr {
9337         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_variable_pointers\0")
9338             .expect("Wrong extension string")
9339     }
9340     pub const SPEC_VERSION: u32 = 1u32;
9341 }
9342 #[derive(Clone)]
9343 pub struct KhrVariablePointersFn {}
9344 unsafe impl Send for KhrVariablePointersFn {}
9345 unsafe impl Sync for KhrVariablePointersFn {}
9346 impl KhrVariablePointersFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9347     pub fn load<F>(mut _f: F) -> Self
9348     where
9349         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9350     {
9351         KhrVariablePointersFn {}
9352     }
9353 }
9354 #[doc = "Generated from 'VK_KHR_variable_pointers'"]
9355 impl StructureType {
9356     pub const PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR: Self =
9357         Self::PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
9358 }
9359 #[doc = "Generated from 'VK_KHR_variable_pointers'"]
9360 impl StructureType {
9361     pub const PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR: Self =
9362         Self::PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR;
9363 }
9364 impl KhrGetDisplayProperties2Fn {
name() -> &'static ::std::ffi::CStr9365     pub fn name() -> &'static ::std::ffi::CStr {
9366         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_get_display_properties2\0")
9367             .expect("Wrong extension string")
9368     }
9369     pub const SPEC_VERSION: u32 = 1u32;
9370 }
9371 #[allow(non_camel_case_types)]
9372 pub type PFN_vkGetPhysicalDeviceDisplayProperties2KHR = unsafe extern "system" fn(
9373     physical_device: PhysicalDevice,
9374     p_property_count: *mut u32,
9375     p_properties: *mut DisplayProperties2KHR,
9376 ) -> Result;
9377 #[allow(non_camel_case_types)]
9378 pub type PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = unsafe extern "system" fn(
9379     physical_device: PhysicalDevice,
9380     p_property_count: *mut u32,
9381     p_properties: *mut DisplayPlaneProperties2KHR,
9382 ) -> Result;
9383 #[allow(non_camel_case_types)]
9384 pub type PFN_vkGetDisplayModeProperties2KHR = unsafe extern "system" fn(
9385     physical_device: PhysicalDevice,
9386     display: DisplayKHR,
9387     p_property_count: *mut u32,
9388     p_properties: *mut DisplayModeProperties2KHR,
9389 ) -> Result;
9390 #[allow(non_camel_case_types)]
9391 pub type PFN_vkGetDisplayPlaneCapabilities2KHR = unsafe extern "system" fn(
9392     physical_device: PhysicalDevice,
9393     p_display_plane_info: *const DisplayPlaneInfo2KHR,
9394     p_capabilities: *mut DisplayPlaneCapabilities2KHR,
9395 ) -> Result;
9396 #[derive(Clone)]
9397 pub struct KhrGetDisplayProperties2Fn {
9398     pub get_physical_device_display_properties2_khr: PFN_vkGetPhysicalDeviceDisplayProperties2KHR,
9399     pub get_physical_device_display_plane_properties2_khr:
9400         PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR,
9401     pub get_display_mode_properties2_khr: PFN_vkGetDisplayModeProperties2KHR,
9402     pub get_display_plane_capabilities2_khr: PFN_vkGetDisplayPlaneCapabilities2KHR,
9403 }
9404 unsafe impl Send for KhrGetDisplayProperties2Fn {}
9405 unsafe impl Sync for KhrGetDisplayProperties2Fn {}
9406 impl KhrGetDisplayProperties2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9407     pub fn load<F>(mut _f: F) -> Self
9408     where
9409         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9410     {
9411         KhrGetDisplayProperties2Fn {
9412             get_physical_device_display_properties2_khr: unsafe {
9413                 unsafe extern "system" fn get_physical_device_display_properties2_khr(
9414                     _physical_device: PhysicalDevice,
9415                     _p_property_count: *mut u32,
9416                     _p_properties: *mut DisplayProperties2KHR,
9417                 ) -> Result {
9418                     panic!(concat!(
9419                         "Unable to load ",
9420                         stringify!(get_physical_device_display_properties2_khr)
9421                     ))
9422                 }
9423                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9424                     b"vkGetPhysicalDeviceDisplayProperties2KHR\0",
9425                 );
9426                 let val = _f(cname);
9427                 if val.is_null() {
9428                     get_physical_device_display_properties2_khr
9429                 } else {
9430                     ::std::mem::transmute(val)
9431                 }
9432             },
9433             get_physical_device_display_plane_properties2_khr: unsafe {
9434                 unsafe extern "system" fn get_physical_device_display_plane_properties2_khr(
9435                     _physical_device: PhysicalDevice,
9436                     _p_property_count: *mut u32,
9437                     _p_properties: *mut DisplayPlaneProperties2KHR,
9438                 ) -> Result {
9439                     panic!(concat!(
9440                         "Unable to load ",
9441                         stringify!(get_physical_device_display_plane_properties2_khr)
9442                     ))
9443                 }
9444                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9445                     b"vkGetPhysicalDeviceDisplayPlaneProperties2KHR\0",
9446                 );
9447                 let val = _f(cname);
9448                 if val.is_null() {
9449                     get_physical_device_display_plane_properties2_khr
9450                 } else {
9451                     ::std::mem::transmute(val)
9452                 }
9453             },
9454             get_display_mode_properties2_khr: unsafe {
9455                 unsafe extern "system" fn get_display_mode_properties2_khr(
9456                     _physical_device: PhysicalDevice,
9457                     _display: DisplayKHR,
9458                     _p_property_count: *mut u32,
9459                     _p_properties: *mut DisplayModeProperties2KHR,
9460                 ) -> Result {
9461                     panic!(concat!(
9462                         "Unable to load ",
9463                         stringify!(get_display_mode_properties2_khr)
9464                     ))
9465                 }
9466                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9467                     b"vkGetDisplayModeProperties2KHR\0",
9468                 );
9469                 let val = _f(cname);
9470                 if val.is_null() {
9471                     get_display_mode_properties2_khr
9472                 } else {
9473                     ::std::mem::transmute(val)
9474                 }
9475             },
9476             get_display_plane_capabilities2_khr: unsafe {
9477                 unsafe extern "system" fn get_display_plane_capabilities2_khr(
9478                     _physical_device: PhysicalDevice,
9479                     _p_display_plane_info: *const DisplayPlaneInfo2KHR,
9480                     _p_capabilities: *mut DisplayPlaneCapabilities2KHR,
9481                 ) -> Result {
9482                     panic!(concat!(
9483                         "Unable to load ",
9484                         stringify!(get_display_plane_capabilities2_khr)
9485                     ))
9486                 }
9487                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9488                     b"vkGetDisplayPlaneCapabilities2KHR\0",
9489                 );
9490                 let val = _f(cname);
9491                 if val.is_null() {
9492                     get_display_plane_capabilities2_khr
9493                 } else {
9494                     ::std::mem::transmute(val)
9495                 }
9496             },
9497         }
9498     }
9499     #[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, ) -> Result9500     pub unsafe fn get_physical_device_display_properties2_khr(
9501         &self,
9502         physical_device: PhysicalDevice,
9503         p_property_count: *mut u32,
9504         p_properties: *mut DisplayProperties2KHR,
9505     ) -> Result {
9506         (self.get_physical_device_display_properties2_khr)(
9507             physical_device,
9508             p_property_count,
9509             p_properties,
9510         )
9511     }
9512     #[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, ) -> Result9513     pub unsafe fn get_physical_device_display_plane_properties2_khr(
9514         &self,
9515         physical_device: PhysicalDevice,
9516         p_property_count: *mut u32,
9517         p_properties: *mut DisplayPlaneProperties2KHR,
9518     ) -> Result {
9519         (self.get_physical_device_display_plane_properties2_khr)(
9520             physical_device,
9521             p_property_count,
9522             p_properties,
9523         )
9524     }
9525     #[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, ) -> Result9526     pub unsafe fn get_display_mode_properties2_khr(
9527         &self,
9528         physical_device: PhysicalDevice,
9529         display: DisplayKHR,
9530         p_property_count: *mut u32,
9531         p_properties: *mut DisplayModeProperties2KHR,
9532     ) -> Result {
9533         (self.get_display_mode_properties2_khr)(
9534             physical_device,
9535             display,
9536             p_property_count,
9537             p_properties,
9538         )
9539     }
9540     #[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, ) -> Result9541     pub unsafe fn get_display_plane_capabilities2_khr(
9542         &self,
9543         physical_device: PhysicalDevice,
9544         p_display_plane_info: *const DisplayPlaneInfo2KHR,
9545         p_capabilities: *mut DisplayPlaneCapabilities2KHR,
9546     ) -> Result {
9547         (self.get_display_plane_capabilities2_khr)(
9548             physical_device,
9549             p_display_plane_info,
9550             p_capabilities,
9551         )
9552     }
9553 }
9554 #[doc = "Generated from 'VK_KHR_get_display_properties2'"]
9555 impl StructureType {
9556     pub const DISPLAY_PROPERTIES_2_KHR: Self = Self(1_000_121_000);
9557 }
9558 #[doc = "Generated from 'VK_KHR_get_display_properties2'"]
9559 impl StructureType {
9560     pub const DISPLAY_PLANE_PROPERTIES_2_KHR: Self = Self(1_000_121_001);
9561 }
9562 #[doc = "Generated from 'VK_KHR_get_display_properties2'"]
9563 impl StructureType {
9564     pub const DISPLAY_MODE_PROPERTIES_2_KHR: Self = Self(1_000_121_002);
9565 }
9566 #[doc = "Generated from 'VK_KHR_get_display_properties2'"]
9567 impl StructureType {
9568     pub const DISPLAY_PLANE_INFO_2_KHR: Self = Self(1_000_121_003);
9569 }
9570 #[doc = "Generated from 'VK_KHR_get_display_properties2'"]
9571 impl StructureType {
9572     pub const DISPLAY_PLANE_CAPABILITIES_2_KHR: Self = Self(1_000_121_004);
9573 }
9574 impl MvkIosSurfaceFn {
name() -> &'static ::std::ffi::CStr9575     pub fn name() -> &'static ::std::ffi::CStr {
9576         ::std::ffi::CStr::from_bytes_with_nul(b"VK_MVK_ios_surface\0")
9577             .expect("Wrong extension string")
9578     }
9579     pub const SPEC_VERSION: u32 = 3u32;
9580 }
9581 #[allow(non_camel_case_types)]
9582 pub type PFN_vkCreateIOSSurfaceMVK = unsafe extern "system" fn(
9583     instance: Instance,
9584     p_create_info: *const IOSSurfaceCreateInfoMVK,
9585     p_allocator: *const AllocationCallbacks,
9586     p_surface: *mut SurfaceKHR,
9587 ) -> Result;
9588 #[derive(Clone)]
9589 pub struct MvkIosSurfaceFn {
9590     pub create_ios_surface_mvk: PFN_vkCreateIOSSurfaceMVK,
9591 }
9592 unsafe impl Send for MvkIosSurfaceFn {}
9593 unsafe impl Sync for MvkIosSurfaceFn {}
9594 impl MvkIosSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9595     pub fn load<F>(mut _f: F) -> Self
9596     where
9597         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9598     {
9599         MvkIosSurfaceFn {
9600             create_ios_surface_mvk: unsafe {
9601                 unsafe extern "system" fn create_ios_surface_mvk(
9602                     _instance: Instance,
9603                     _p_create_info: *const IOSSurfaceCreateInfoMVK,
9604                     _p_allocator: *const AllocationCallbacks,
9605                     _p_surface: *mut SurfaceKHR,
9606                 ) -> Result {
9607                     panic!(concat!(
9608                         "Unable to load ",
9609                         stringify!(create_ios_surface_mvk)
9610                     ))
9611                 }
9612                 let cname =
9613                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateIOSSurfaceMVK\0");
9614                 let val = _f(cname);
9615                 if val.is_null() {
9616                     create_ios_surface_mvk
9617                 } else {
9618                     ::std::mem::transmute(val)
9619                 }
9620             },
9621         }
9622     }
9623     #[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, ) -> Result9624     pub unsafe fn create_ios_surface_mvk(
9625         &self,
9626         instance: Instance,
9627         p_create_info: *const IOSSurfaceCreateInfoMVK,
9628         p_allocator: *const AllocationCallbacks,
9629         p_surface: *mut SurfaceKHR,
9630     ) -> Result {
9631         (self.create_ios_surface_mvk)(instance, p_create_info, p_allocator, p_surface)
9632     }
9633 }
9634 #[doc = "Generated from 'VK_MVK_ios_surface'"]
9635 impl StructureType {
9636     pub const IOS_SURFACE_CREATE_INFO_MVK: Self = Self(1_000_122_000);
9637 }
9638 impl MvkMacosSurfaceFn {
name() -> &'static ::std::ffi::CStr9639     pub fn name() -> &'static ::std::ffi::CStr {
9640         ::std::ffi::CStr::from_bytes_with_nul(b"VK_MVK_macos_surface\0")
9641             .expect("Wrong extension string")
9642     }
9643     pub const SPEC_VERSION: u32 = 3u32;
9644 }
9645 #[allow(non_camel_case_types)]
9646 pub type PFN_vkCreateMacOSSurfaceMVK = unsafe extern "system" fn(
9647     instance: Instance,
9648     p_create_info: *const MacOSSurfaceCreateInfoMVK,
9649     p_allocator: *const AllocationCallbacks,
9650     p_surface: *mut SurfaceKHR,
9651 ) -> Result;
9652 #[derive(Clone)]
9653 pub struct MvkMacosSurfaceFn {
9654     pub create_mac_os_surface_mvk: PFN_vkCreateMacOSSurfaceMVK,
9655 }
9656 unsafe impl Send for MvkMacosSurfaceFn {}
9657 unsafe impl Sync for MvkMacosSurfaceFn {}
9658 impl MvkMacosSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9659     pub fn load<F>(mut _f: F) -> Self
9660     where
9661         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9662     {
9663         MvkMacosSurfaceFn {
9664             create_mac_os_surface_mvk: unsafe {
9665                 unsafe extern "system" fn create_mac_os_surface_mvk(
9666                     _instance: Instance,
9667                     _p_create_info: *const MacOSSurfaceCreateInfoMVK,
9668                     _p_allocator: *const AllocationCallbacks,
9669                     _p_surface: *mut SurfaceKHR,
9670                 ) -> Result {
9671                     panic!(concat!(
9672                         "Unable to load ",
9673                         stringify!(create_mac_os_surface_mvk)
9674                     ))
9675                 }
9676                 let cname =
9677                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateMacOSSurfaceMVK\0");
9678                 let val = _f(cname);
9679                 if val.is_null() {
9680                     create_mac_os_surface_mvk
9681                 } else {
9682                     ::std::mem::transmute(val)
9683                 }
9684             },
9685         }
9686     }
9687     #[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, ) -> Result9688     pub unsafe fn create_mac_os_surface_mvk(
9689         &self,
9690         instance: Instance,
9691         p_create_info: *const MacOSSurfaceCreateInfoMVK,
9692         p_allocator: *const AllocationCallbacks,
9693         p_surface: *mut SurfaceKHR,
9694     ) -> Result {
9695         (self.create_mac_os_surface_mvk)(instance, p_create_info, p_allocator, p_surface)
9696     }
9697 }
9698 #[doc = "Generated from 'VK_MVK_macos_surface'"]
9699 impl StructureType {
9700     pub const MACOS_SURFACE_CREATE_INFO_MVK: Self = Self(1_000_123_000);
9701 }
9702 impl MvkMoltenvkFn {
name() -> &'static ::std::ffi::CStr9703     pub fn name() -> &'static ::std::ffi::CStr {
9704         ::std::ffi::CStr::from_bytes_with_nul(b"VK_MVK_moltenvk\0").expect("Wrong extension string")
9705     }
9706     pub const SPEC_VERSION: u32 = 0u32;
9707 }
9708 #[derive(Clone)]
9709 pub struct MvkMoltenvkFn {}
9710 unsafe impl Send for MvkMoltenvkFn {}
9711 unsafe impl Sync for MvkMoltenvkFn {}
9712 impl MvkMoltenvkFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9713     pub fn load<F>(mut _f: F) -> Self
9714     where
9715         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9716     {
9717         MvkMoltenvkFn {}
9718     }
9719 }
9720 impl ExtExternalMemoryDmaBufFn {
name() -> &'static ::std::ffi::CStr9721     pub fn name() -> &'static ::std::ffi::CStr {
9722         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_external_memory_dma_buf\0")
9723             .expect("Wrong extension string")
9724     }
9725     pub const SPEC_VERSION: u32 = 1u32;
9726 }
9727 #[derive(Clone)]
9728 pub struct ExtExternalMemoryDmaBufFn {}
9729 unsafe impl Send for ExtExternalMemoryDmaBufFn {}
9730 unsafe impl Sync for ExtExternalMemoryDmaBufFn {}
9731 impl ExtExternalMemoryDmaBufFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9732     pub fn load<F>(mut _f: F) -> Self
9733     where
9734         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9735     {
9736         ExtExternalMemoryDmaBufFn {}
9737     }
9738 }
9739 #[doc = "Generated from 'VK_EXT_external_memory_dma_buf'"]
9740 impl ExternalMemoryHandleTypeFlags {
9741     pub const DMA_BUF_EXT: Self = Self(0b10_0000_0000);
9742 }
9743 impl ExtQueueFamilyForeignFn {
name() -> &'static ::std::ffi::CStr9744     pub fn name() -> &'static ::std::ffi::CStr {
9745         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_queue_family_foreign\0")
9746             .expect("Wrong extension string")
9747     }
9748     pub const SPEC_VERSION: u32 = 1u32;
9749 }
9750 #[derive(Clone)]
9751 pub struct ExtQueueFamilyForeignFn {}
9752 unsafe impl Send for ExtQueueFamilyForeignFn {}
9753 unsafe impl Sync for ExtQueueFamilyForeignFn {}
9754 impl ExtQueueFamilyForeignFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9755     pub fn load<F>(mut _f: F) -> Self
9756     where
9757         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9758     {
9759         ExtQueueFamilyForeignFn {}
9760     }
9761 }
9762 impl KhrDedicatedAllocationFn {
name() -> &'static ::std::ffi::CStr9763     pub fn name() -> &'static ::std::ffi::CStr {
9764         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_dedicated_allocation\0")
9765             .expect("Wrong extension string")
9766     }
9767     pub const SPEC_VERSION: u32 = 3u32;
9768 }
9769 #[derive(Clone)]
9770 pub struct KhrDedicatedAllocationFn {}
9771 unsafe impl Send for KhrDedicatedAllocationFn {}
9772 unsafe impl Sync for KhrDedicatedAllocationFn {}
9773 impl KhrDedicatedAllocationFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9774     pub fn load<F>(mut _f: F) -> Self
9775     where
9776         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9777     {
9778         KhrDedicatedAllocationFn {}
9779     }
9780 }
9781 #[doc = "Generated from 'VK_KHR_dedicated_allocation'"]
9782 impl StructureType {
9783     pub const MEMORY_DEDICATED_REQUIREMENTS_KHR: Self = Self::MEMORY_DEDICATED_REQUIREMENTS;
9784 }
9785 #[doc = "Generated from 'VK_KHR_dedicated_allocation'"]
9786 impl StructureType {
9787     pub const MEMORY_DEDICATED_ALLOCATE_INFO_KHR: Self = Self::MEMORY_DEDICATED_ALLOCATE_INFO;
9788 }
9789 impl ExtDebugUtilsFn {
name() -> &'static ::std::ffi::CStr9790     pub fn name() -> &'static ::std::ffi::CStr {
9791         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_debug_utils\0")
9792             .expect("Wrong extension string")
9793     }
9794     pub const SPEC_VERSION: u32 = 2u32;
9795 }
9796 #[allow(non_camel_case_types)]
9797 pub type PFN_vkSetDebugUtilsObjectNameEXT = unsafe extern "system" fn(
9798     device: Device,
9799     p_name_info: *const DebugUtilsObjectNameInfoEXT,
9800 ) -> Result;
9801 #[allow(non_camel_case_types)]
9802 pub type PFN_vkSetDebugUtilsObjectTagEXT = unsafe extern "system" fn(
9803     device: Device,
9804     p_tag_info: *const DebugUtilsObjectTagInfoEXT,
9805 ) -> Result;
9806 #[allow(non_camel_case_types)]
9807 pub type PFN_vkQueueBeginDebugUtilsLabelEXT =
9808     unsafe extern "system" fn(queue: Queue, p_label_info: *const DebugUtilsLabelEXT);
9809 #[allow(non_camel_case_types)]
9810 pub type PFN_vkQueueEndDebugUtilsLabelEXT = unsafe extern "system" fn(queue: Queue);
9811 #[allow(non_camel_case_types)]
9812 pub type PFN_vkQueueInsertDebugUtilsLabelEXT =
9813     unsafe extern "system" fn(queue: Queue, p_label_info: *const DebugUtilsLabelEXT);
9814 #[allow(non_camel_case_types)]
9815 pub type PFN_vkCmdBeginDebugUtilsLabelEXT = unsafe extern "system" fn(
9816     command_buffer: CommandBuffer,
9817     p_label_info: *const DebugUtilsLabelEXT,
9818 );
9819 #[allow(non_camel_case_types)]
9820 pub type PFN_vkCmdEndDebugUtilsLabelEXT = unsafe extern "system" fn(command_buffer: CommandBuffer);
9821 #[allow(non_camel_case_types)]
9822 pub type PFN_vkCmdInsertDebugUtilsLabelEXT = unsafe extern "system" fn(
9823     command_buffer: CommandBuffer,
9824     p_label_info: *const DebugUtilsLabelEXT,
9825 );
9826 #[allow(non_camel_case_types)]
9827 pub type PFN_vkCreateDebugUtilsMessengerEXT = unsafe extern "system" fn(
9828     instance: Instance,
9829     p_create_info: *const DebugUtilsMessengerCreateInfoEXT,
9830     p_allocator: *const AllocationCallbacks,
9831     p_messenger: *mut DebugUtilsMessengerEXT,
9832 ) -> Result;
9833 #[allow(non_camel_case_types)]
9834 pub type PFN_vkDestroyDebugUtilsMessengerEXT = unsafe extern "system" fn(
9835     instance: Instance,
9836     messenger: DebugUtilsMessengerEXT,
9837     p_allocator: *const AllocationCallbacks,
9838 );
9839 #[allow(non_camel_case_types)]
9840 pub type PFN_vkSubmitDebugUtilsMessageEXT = unsafe extern "system" fn(
9841     instance: Instance,
9842     message_severity: DebugUtilsMessageSeverityFlagsEXT,
9843     message_types: DebugUtilsMessageTypeFlagsEXT,
9844     p_callback_data: *const DebugUtilsMessengerCallbackDataEXT,
9845 );
9846 #[derive(Clone)]
9847 pub struct ExtDebugUtilsFn {
9848     pub set_debug_utils_object_name_ext: PFN_vkSetDebugUtilsObjectNameEXT,
9849     pub set_debug_utils_object_tag_ext: PFN_vkSetDebugUtilsObjectTagEXT,
9850     pub queue_begin_debug_utils_label_ext: PFN_vkQueueBeginDebugUtilsLabelEXT,
9851     pub queue_end_debug_utils_label_ext: PFN_vkQueueEndDebugUtilsLabelEXT,
9852     pub queue_insert_debug_utils_label_ext: PFN_vkQueueInsertDebugUtilsLabelEXT,
9853     pub cmd_begin_debug_utils_label_ext: PFN_vkCmdBeginDebugUtilsLabelEXT,
9854     pub cmd_end_debug_utils_label_ext: PFN_vkCmdEndDebugUtilsLabelEXT,
9855     pub cmd_insert_debug_utils_label_ext: PFN_vkCmdInsertDebugUtilsLabelEXT,
9856     pub create_debug_utils_messenger_ext: PFN_vkCreateDebugUtilsMessengerEXT,
9857     pub destroy_debug_utils_messenger_ext: PFN_vkDestroyDebugUtilsMessengerEXT,
9858     pub submit_debug_utils_message_ext: PFN_vkSubmitDebugUtilsMessageEXT,
9859 }
9860 unsafe impl Send for ExtDebugUtilsFn {}
9861 unsafe impl Sync for ExtDebugUtilsFn {}
9862 impl ExtDebugUtilsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9863     pub fn load<F>(mut _f: F) -> Self
9864     where
9865         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9866     {
9867         ExtDebugUtilsFn {
9868             set_debug_utils_object_name_ext: unsafe {
9869                 unsafe extern "system" fn set_debug_utils_object_name_ext(
9870                     _device: Device,
9871                     _p_name_info: *const DebugUtilsObjectNameInfoEXT,
9872                 ) -> Result {
9873                     panic!(concat!(
9874                         "Unable to load ",
9875                         stringify!(set_debug_utils_object_name_ext)
9876                     ))
9877                 }
9878                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9879                     b"vkSetDebugUtilsObjectNameEXT\0",
9880                 );
9881                 let val = _f(cname);
9882                 if val.is_null() {
9883                     set_debug_utils_object_name_ext
9884                 } else {
9885                     ::std::mem::transmute(val)
9886                 }
9887             },
9888             set_debug_utils_object_tag_ext: unsafe {
9889                 unsafe extern "system" fn set_debug_utils_object_tag_ext(
9890                     _device: Device,
9891                     _p_tag_info: *const DebugUtilsObjectTagInfoEXT,
9892                 ) -> Result {
9893                     panic!(concat!(
9894                         "Unable to load ",
9895                         stringify!(set_debug_utils_object_tag_ext)
9896                     ))
9897                 }
9898                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9899                     b"vkSetDebugUtilsObjectTagEXT\0",
9900                 );
9901                 let val = _f(cname);
9902                 if val.is_null() {
9903                     set_debug_utils_object_tag_ext
9904                 } else {
9905                     ::std::mem::transmute(val)
9906                 }
9907             },
9908             queue_begin_debug_utils_label_ext: unsafe {
9909                 unsafe extern "system" fn queue_begin_debug_utils_label_ext(
9910                     _queue: Queue,
9911                     _p_label_info: *const DebugUtilsLabelEXT,
9912                 ) {
9913                     panic!(concat!(
9914                         "Unable to load ",
9915                         stringify!(queue_begin_debug_utils_label_ext)
9916                     ))
9917                 }
9918                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9919                     b"vkQueueBeginDebugUtilsLabelEXT\0",
9920                 );
9921                 let val = _f(cname);
9922                 if val.is_null() {
9923                     queue_begin_debug_utils_label_ext
9924                 } else {
9925                     ::std::mem::transmute(val)
9926                 }
9927             },
9928             queue_end_debug_utils_label_ext: unsafe {
9929                 unsafe extern "system" fn queue_end_debug_utils_label_ext(_queue: Queue) {
9930                     panic!(concat!(
9931                         "Unable to load ",
9932                         stringify!(queue_end_debug_utils_label_ext)
9933                     ))
9934                 }
9935                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9936                     b"vkQueueEndDebugUtilsLabelEXT\0",
9937                 );
9938                 let val = _f(cname);
9939                 if val.is_null() {
9940                     queue_end_debug_utils_label_ext
9941                 } else {
9942                     ::std::mem::transmute(val)
9943                 }
9944             },
9945             queue_insert_debug_utils_label_ext: unsafe {
9946                 unsafe extern "system" fn queue_insert_debug_utils_label_ext(
9947                     _queue: Queue,
9948                     _p_label_info: *const DebugUtilsLabelEXT,
9949                 ) {
9950                     panic!(concat!(
9951                         "Unable to load ",
9952                         stringify!(queue_insert_debug_utils_label_ext)
9953                     ))
9954                 }
9955                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9956                     b"vkQueueInsertDebugUtilsLabelEXT\0",
9957                 );
9958                 let val = _f(cname);
9959                 if val.is_null() {
9960                     queue_insert_debug_utils_label_ext
9961                 } else {
9962                     ::std::mem::transmute(val)
9963                 }
9964             },
9965             cmd_begin_debug_utils_label_ext: unsafe {
9966                 unsafe extern "system" fn cmd_begin_debug_utils_label_ext(
9967                     _command_buffer: CommandBuffer,
9968                     _p_label_info: *const DebugUtilsLabelEXT,
9969                 ) {
9970                     panic!(concat!(
9971                         "Unable to load ",
9972                         stringify!(cmd_begin_debug_utils_label_ext)
9973                     ))
9974                 }
9975                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9976                     b"vkCmdBeginDebugUtilsLabelEXT\0",
9977                 );
9978                 let val = _f(cname);
9979                 if val.is_null() {
9980                     cmd_begin_debug_utils_label_ext
9981                 } else {
9982                     ::std::mem::transmute(val)
9983                 }
9984             },
9985             cmd_end_debug_utils_label_ext: unsafe {
9986                 unsafe extern "system" fn cmd_end_debug_utils_label_ext(
9987                     _command_buffer: CommandBuffer,
9988                 ) {
9989                     panic!(concat!(
9990                         "Unable to load ",
9991                         stringify!(cmd_end_debug_utils_label_ext)
9992                     ))
9993                 }
9994                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9995                     b"vkCmdEndDebugUtilsLabelEXT\0",
9996                 );
9997                 let val = _f(cname);
9998                 if val.is_null() {
9999                     cmd_end_debug_utils_label_ext
10000                 } else {
10001                     ::std::mem::transmute(val)
10002                 }
10003             },
10004             cmd_insert_debug_utils_label_ext: unsafe {
10005                 unsafe extern "system" fn cmd_insert_debug_utils_label_ext(
10006                     _command_buffer: CommandBuffer,
10007                     _p_label_info: *const DebugUtilsLabelEXT,
10008                 ) {
10009                     panic!(concat!(
10010                         "Unable to load ",
10011                         stringify!(cmd_insert_debug_utils_label_ext)
10012                     ))
10013                 }
10014                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10015                     b"vkCmdInsertDebugUtilsLabelEXT\0",
10016                 );
10017                 let val = _f(cname);
10018                 if val.is_null() {
10019                     cmd_insert_debug_utils_label_ext
10020                 } else {
10021                     ::std::mem::transmute(val)
10022                 }
10023             },
10024             create_debug_utils_messenger_ext: unsafe {
10025                 unsafe extern "system" fn create_debug_utils_messenger_ext(
10026                     _instance: Instance,
10027                     _p_create_info: *const DebugUtilsMessengerCreateInfoEXT,
10028                     _p_allocator: *const AllocationCallbacks,
10029                     _p_messenger: *mut DebugUtilsMessengerEXT,
10030                 ) -> Result {
10031                     panic!(concat!(
10032                         "Unable to load ",
10033                         stringify!(create_debug_utils_messenger_ext)
10034                     ))
10035                 }
10036                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10037                     b"vkCreateDebugUtilsMessengerEXT\0",
10038                 );
10039                 let val = _f(cname);
10040                 if val.is_null() {
10041                     create_debug_utils_messenger_ext
10042                 } else {
10043                     ::std::mem::transmute(val)
10044                 }
10045             },
10046             destroy_debug_utils_messenger_ext: unsafe {
10047                 unsafe extern "system" fn destroy_debug_utils_messenger_ext(
10048                     _instance: Instance,
10049                     _messenger: DebugUtilsMessengerEXT,
10050                     _p_allocator: *const AllocationCallbacks,
10051                 ) {
10052                     panic!(concat!(
10053                         "Unable to load ",
10054                         stringify!(destroy_debug_utils_messenger_ext)
10055                     ))
10056                 }
10057                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10058                     b"vkDestroyDebugUtilsMessengerEXT\0",
10059                 );
10060                 let val = _f(cname);
10061                 if val.is_null() {
10062                     destroy_debug_utils_messenger_ext
10063                 } else {
10064                     ::std::mem::transmute(val)
10065                 }
10066             },
10067             submit_debug_utils_message_ext: unsafe {
10068                 unsafe extern "system" fn submit_debug_utils_message_ext(
10069                     _instance: Instance,
10070                     _message_severity: DebugUtilsMessageSeverityFlagsEXT,
10071                     _message_types: DebugUtilsMessageTypeFlagsEXT,
10072                     _p_callback_data: *const DebugUtilsMessengerCallbackDataEXT,
10073                 ) {
10074                     panic!(concat!(
10075                         "Unable to load ",
10076                         stringify!(submit_debug_utils_message_ext)
10077                     ))
10078                 }
10079                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10080                     b"vkSubmitDebugUtilsMessageEXT\0",
10081                 );
10082                 let val = _f(cname);
10083                 if val.is_null() {
10084                     submit_debug_utils_message_ext
10085                 } else {
10086                     ::std::mem::transmute(val)
10087                 }
10088             },
10089         }
10090     }
10091     #[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, ) -> Result10092     pub unsafe fn set_debug_utils_object_name_ext(
10093         &self,
10094         device: Device,
10095         p_name_info: *const DebugUtilsObjectNameInfoEXT,
10096     ) -> Result {
10097         (self.set_debug_utils_object_name_ext)(device, p_name_info)
10098     }
10099     #[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, ) -> Result10100     pub unsafe fn set_debug_utils_object_tag_ext(
10101         &self,
10102         device: Device,
10103         p_tag_info: *const DebugUtilsObjectTagInfoEXT,
10104     ) -> Result {
10105         (self.set_debug_utils_object_tag_ext)(device, p_tag_info)
10106     }
10107     #[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, )10108     pub unsafe fn queue_begin_debug_utils_label_ext(
10109         &self,
10110         queue: Queue,
10111         p_label_info: *const DebugUtilsLabelEXT,
10112     ) {
10113         (self.queue_begin_debug_utils_label_ext)(queue, p_label_info)
10114     }
10115     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkQueueEndDebugUtilsLabelEXT.html>"]
queue_end_debug_utils_label_ext(&self, queue: Queue)10116     pub unsafe fn queue_end_debug_utils_label_ext(&self, queue: Queue) {
10117         (self.queue_end_debug_utils_label_ext)(queue)
10118     }
10119     #[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, )10120     pub unsafe fn queue_insert_debug_utils_label_ext(
10121         &self,
10122         queue: Queue,
10123         p_label_info: *const DebugUtilsLabelEXT,
10124     ) {
10125         (self.queue_insert_debug_utils_label_ext)(queue, p_label_info)
10126     }
10127     #[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, )10128     pub unsafe fn cmd_begin_debug_utils_label_ext(
10129         &self,
10130         command_buffer: CommandBuffer,
10131         p_label_info: *const DebugUtilsLabelEXT,
10132     ) {
10133         (self.cmd_begin_debug_utils_label_ext)(command_buffer, p_label_info)
10134     }
10135     #[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)10136     pub unsafe fn cmd_end_debug_utils_label_ext(&self, command_buffer: CommandBuffer) {
10137         (self.cmd_end_debug_utils_label_ext)(command_buffer)
10138     }
10139     #[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, )10140     pub unsafe fn cmd_insert_debug_utils_label_ext(
10141         &self,
10142         command_buffer: CommandBuffer,
10143         p_label_info: *const DebugUtilsLabelEXT,
10144     ) {
10145         (self.cmd_insert_debug_utils_label_ext)(command_buffer, p_label_info)
10146     }
10147     #[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, ) -> Result10148     pub unsafe fn create_debug_utils_messenger_ext(
10149         &self,
10150         instance: Instance,
10151         p_create_info: *const DebugUtilsMessengerCreateInfoEXT,
10152         p_allocator: *const AllocationCallbacks,
10153         p_messenger: *mut DebugUtilsMessengerEXT,
10154     ) -> Result {
10155         (self.create_debug_utils_messenger_ext)(instance, p_create_info, p_allocator, p_messenger)
10156     }
10157     #[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, )10158     pub unsafe fn destroy_debug_utils_messenger_ext(
10159         &self,
10160         instance: Instance,
10161         messenger: DebugUtilsMessengerEXT,
10162         p_allocator: *const AllocationCallbacks,
10163     ) {
10164         (self.destroy_debug_utils_messenger_ext)(instance, messenger, p_allocator)
10165     }
10166     #[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, )10167     pub unsafe fn submit_debug_utils_message_ext(
10168         &self,
10169         instance: Instance,
10170         message_severity: DebugUtilsMessageSeverityFlagsEXT,
10171         message_types: DebugUtilsMessageTypeFlagsEXT,
10172         p_callback_data: *const DebugUtilsMessengerCallbackDataEXT,
10173     ) {
10174         (self.submit_debug_utils_message_ext)(
10175             instance,
10176             message_severity,
10177             message_types,
10178             p_callback_data,
10179         )
10180     }
10181 }
10182 #[doc = "Generated from 'VK_EXT_debug_utils'"]
10183 impl StructureType {
10184     pub const DEBUG_UTILS_OBJECT_NAME_INFO_EXT: Self = Self(1_000_128_000);
10185 }
10186 #[doc = "Generated from 'VK_EXT_debug_utils'"]
10187 impl StructureType {
10188     pub const DEBUG_UTILS_OBJECT_TAG_INFO_EXT: Self = Self(1_000_128_001);
10189 }
10190 #[doc = "Generated from 'VK_EXT_debug_utils'"]
10191 impl StructureType {
10192     pub const DEBUG_UTILS_LABEL_EXT: Self = Self(1_000_128_002);
10193 }
10194 #[doc = "Generated from 'VK_EXT_debug_utils'"]
10195 impl StructureType {
10196     pub const DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT: Self = Self(1_000_128_003);
10197 }
10198 #[doc = "Generated from 'VK_EXT_debug_utils'"]
10199 impl StructureType {
10200     pub const DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT: Self = Self(1_000_128_004);
10201 }
10202 #[doc = "Generated from 'VK_EXT_debug_utils'"]
10203 impl ObjectType {
10204     pub const DEBUG_UTILS_MESSENGER_EXT: Self = Self(1_000_128_000);
10205 }
10206 impl AndroidExternalMemoryAndroidHardwareBufferFn {
name() -> &'static ::std::ffi::CStr10207     pub fn name() -> &'static ::std::ffi::CStr {
10208         ::std::ffi::CStr::from_bytes_with_nul(
10209             b"VK_ANDROID_external_memory_android_hardware_buffer\0",
10210         )
10211         .expect("Wrong extension string")
10212     }
10213     pub const SPEC_VERSION: u32 = 3u32;
10214 }
10215 #[allow(non_camel_case_types)]
10216 pub type PFN_vkGetAndroidHardwareBufferPropertiesANDROID = unsafe extern "system" fn(
10217     device: Device,
10218     buffer: *const AHardwareBuffer,
10219     p_properties: *mut AndroidHardwareBufferPropertiesANDROID,
10220 ) -> Result;
10221 #[allow(non_camel_case_types)]
10222 pub type PFN_vkGetMemoryAndroidHardwareBufferANDROID = unsafe extern "system" fn(
10223     device: Device,
10224     p_info: *const MemoryGetAndroidHardwareBufferInfoANDROID,
10225     p_buffer: *mut *mut AHardwareBuffer,
10226 ) -> Result;
10227 #[derive(Clone)]
10228 pub struct AndroidExternalMemoryAndroidHardwareBufferFn {
10229     pub get_android_hardware_buffer_properties_android:
10230         PFN_vkGetAndroidHardwareBufferPropertiesANDROID,
10231     pub get_memory_android_hardware_buffer_android: PFN_vkGetMemoryAndroidHardwareBufferANDROID,
10232 }
10233 unsafe impl Send for AndroidExternalMemoryAndroidHardwareBufferFn {}
10234 unsafe impl Sync for AndroidExternalMemoryAndroidHardwareBufferFn {}
10235 impl AndroidExternalMemoryAndroidHardwareBufferFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10236     pub fn load<F>(mut _f: F) -> Self
10237     where
10238         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10239     {
10240         AndroidExternalMemoryAndroidHardwareBufferFn {
10241             get_android_hardware_buffer_properties_android: unsafe {
10242                 unsafe extern "system" fn get_android_hardware_buffer_properties_android(
10243                     _device: Device,
10244                     _buffer: *const AHardwareBuffer,
10245                     _p_properties: *mut AndroidHardwareBufferPropertiesANDROID,
10246                 ) -> Result {
10247                     panic!(concat!(
10248                         "Unable to load ",
10249                         stringify!(get_android_hardware_buffer_properties_android)
10250                     ))
10251                 }
10252                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10253                     b"vkGetAndroidHardwareBufferPropertiesANDROID\0",
10254                 );
10255                 let val = _f(cname);
10256                 if val.is_null() {
10257                     get_android_hardware_buffer_properties_android
10258                 } else {
10259                     ::std::mem::transmute(val)
10260                 }
10261             },
10262             get_memory_android_hardware_buffer_android: unsafe {
10263                 unsafe extern "system" fn get_memory_android_hardware_buffer_android(
10264                     _device: Device,
10265                     _p_info: *const MemoryGetAndroidHardwareBufferInfoANDROID,
10266                     _p_buffer: *mut *mut AHardwareBuffer,
10267                 ) -> Result {
10268                     panic!(concat!(
10269                         "Unable to load ",
10270                         stringify!(get_memory_android_hardware_buffer_android)
10271                     ))
10272                 }
10273                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10274                     b"vkGetMemoryAndroidHardwareBufferANDROID\0",
10275                 );
10276                 let val = _f(cname);
10277                 if val.is_null() {
10278                     get_memory_android_hardware_buffer_android
10279                 } else {
10280                     ::std::mem::transmute(val)
10281                 }
10282             },
10283         }
10284     }
10285     #[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, ) -> Result10286     pub unsafe fn get_android_hardware_buffer_properties_android(
10287         &self,
10288         device: Device,
10289         buffer: *const AHardwareBuffer,
10290         p_properties: *mut AndroidHardwareBufferPropertiesANDROID,
10291     ) -> Result {
10292         (self.get_android_hardware_buffer_properties_android)(device, buffer, p_properties)
10293     }
10294     #[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, ) -> Result10295     pub unsafe fn get_memory_android_hardware_buffer_android(
10296         &self,
10297         device: Device,
10298         p_info: *const MemoryGetAndroidHardwareBufferInfoANDROID,
10299         p_buffer: *mut *mut AHardwareBuffer,
10300     ) -> Result {
10301         (self.get_memory_android_hardware_buffer_android)(device, p_info, p_buffer)
10302     }
10303 }
10304 #[doc = "Generated from 'VK_ANDROID_external_memory_android_hardware_buffer'"]
10305 impl ExternalMemoryHandleTypeFlags {
10306     pub const ANDROID_HARDWARE_BUFFER_ANDROID: Self = Self(0b100_0000_0000);
10307 }
10308 #[doc = "Generated from 'VK_ANDROID_external_memory_android_hardware_buffer'"]
10309 impl StructureType {
10310     pub const ANDROID_HARDWARE_BUFFER_USAGE_ANDROID: Self = Self(1_000_129_000);
10311 }
10312 #[doc = "Generated from 'VK_ANDROID_external_memory_android_hardware_buffer'"]
10313 impl StructureType {
10314     pub const ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID: Self = Self(1_000_129_001);
10315 }
10316 #[doc = "Generated from 'VK_ANDROID_external_memory_android_hardware_buffer'"]
10317 impl StructureType {
10318     pub const ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID: Self = Self(1_000_129_002);
10319 }
10320 #[doc = "Generated from 'VK_ANDROID_external_memory_android_hardware_buffer'"]
10321 impl StructureType {
10322     pub const IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID: Self = Self(1_000_129_003);
10323 }
10324 #[doc = "Generated from 'VK_ANDROID_external_memory_android_hardware_buffer'"]
10325 impl StructureType {
10326     pub const MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID: Self = Self(1_000_129_004);
10327 }
10328 #[doc = "Generated from 'VK_ANDROID_external_memory_android_hardware_buffer'"]
10329 impl StructureType {
10330     pub const EXTERNAL_FORMAT_ANDROID: Self = Self(1_000_129_005);
10331 }
10332 impl ExtSamplerFilterMinmaxFn {
name() -> &'static ::std::ffi::CStr10333     pub fn name() -> &'static ::std::ffi::CStr {
10334         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_sampler_filter_minmax\0")
10335             .expect("Wrong extension string")
10336     }
10337     pub const SPEC_VERSION: u32 = 2u32;
10338 }
10339 #[derive(Clone)]
10340 pub struct ExtSamplerFilterMinmaxFn {}
10341 unsafe impl Send for ExtSamplerFilterMinmaxFn {}
10342 unsafe impl Sync for ExtSamplerFilterMinmaxFn {}
10343 impl ExtSamplerFilterMinmaxFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10344     pub fn load<F>(mut _f: F) -> Self
10345     where
10346         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10347     {
10348         ExtSamplerFilterMinmaxFn {}
10349     }
10350 }
10351 #[doc = "Generated from 'VK_EXT_sampler_filter_minmax'"]
10352 impl StructureType {
10353     pub const PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT: Self =
10354         Self::PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES;
10355 }
10356 #[doc = "Generated from 'VK_EXT_sampler_filter_minmax'"]
10357 impl StructureType {
10358     pub const SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT: Self =
10359         Self::SAMPLER_REDUCTION_MODE_CREATE_INFO;
10360 }
10361 #[doc = "Generated from 'VK_EXT_sampler_filter_minmax'"]
10362 impl FormatFeatureFlags {
10363     pub const SAMPLED_IMAGE_FILTER_MINMAX_EXT: Self = Self::SAMPLED_IMAGE_FILTER_MINMAX;
10364 }
10365 #[doc = "Generated from 'VK_EXT_sampler_filter_minmax'"]
10366 impl SamplerReductionMode {
10367     pub const WEIGHTED_AVERAGE_EXT: Self = Self::WEIGHTED_AVERAGE;
10368 }
10369 #[doc = "Generated from 'VK_EXT_sampler_filter_minmax'"]
10370 impl SamplerReductionMode {
10371     pub const MIN_EXT: Self = Self::MIN;
10372 }
10373 #[doc = "Generated from 'VK_EXT_sampler_filter_minmax'"]
10374 impl SamplerReductionMode {
10375     pub const MAX_EXT: Self = Self::MAX;
10376 }
10377 impl KhrStorageBufferStorageClassFn {
name() -> &'static ::std::ffi::CStr10378     pub fn name() -> &'static ::std::ffi::CStr {
10379         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_storage_buffer_storage_class\0")
10380             .expect("Wrong extension string")
10381     }
10382     pub const SPEC_VERSION: u32 = 1u32;
10383 }
10384 #[derive(Clone)]
10385 pub struct KhrStorageBufferStorageClassFn {}
10386 unsafe impl Send for KhrStorageBufferStorageClassFn {}
10387 unsafe impl Sync for KhrStorageBufferStorageClassFn {}
10388 impl KhrStorageBufferStorageClassFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10389     pub fn load<F>(mut _f: F) -> Self
10390     where
10391         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10392     {
10393         KhrStorageBufferStorageClassFn {}
10394     }
10395 }
10396 impl AmdGpuShaderInt16Fn {
name() -> &'static ::std::ffi::CStr10397     pub fn name() -> &'static ::std::ffi::CStr {
10398         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_gpu_shader_int16\0")
10399             .expect("Wrong extension string")
10400     }
10401     pub const SPEC_VERSION: u32 = 2u32;
10402 }
10403 #[derive(Clone)]
10404 pub struct AmdGpuShaderInt16Fn {}
10405 unsafe impl Send for AmdGpuShaderInt16Fn {}
10406 unsafe impl Sync for AmdGpuShaderInt16Fn {}
10407 impl AmdGpuShaderInt16Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10408     pub fn load<F>(mut _f: F) -> Self
10409     where
10410         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10411     {
10412         AmdGpuShaderInt16Fn {}
10413     }
10414 }
10415 impl AmdExtension134Fn {
name() -> &'static ::std::ffi::CStr10416     pub fn name() -> &'static ::std::ffi::CStr {
10417         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_134\0")
10418             .expect("Wrong extension string")
10419     }
10420     pub const SPEC_VERSION: u32 = 0u32;
10421 }
10422 #[derive(Clone)]
10423 pub struct AmdExtension134Fn {}
10424 unsafe impl Send for AmdExtension134Fn {}
10425 unsafe impl Sync for AmdExtension134Fn {}
10426 impl AmdExtension134Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10427     pub fn load<F>(mut _f: F) -> Self
10428     where
10429         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10430     {
10431         AmdExtension134Fn {}
10432     }
10433 }
10434 impl AmdExtension135Fn {
name() -> &'static ::std::ffi::CStr10435     pub fn name() -> &'static ::std::ffi::CStr {
10436         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_135\0")
10437             .expect("Wrong extension string")
10438     }
10439     pub const SPEC_VERSION: u32 = 0u32;
10440 }
10441 #[derive(Clone)]
10442 pub struct AmdExtension135Fn {}
10443 unsafe impl Send for AmdExtension135Fn {}
10444 unsafe impl Sync for AmdExtension135Fn {}
10445 impl AmdExtension135Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10446     pub fn load<F>(mut _f: F) -> Self
10447     where
10448         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10449     {
10450         AmdExtension135Fn {}
10451     }
10452 }
10453 impl AmdExtension136Fn {
name() -> &'static ::std::ffi::CStr10454     pub fn name() -> &'static ::std::ffi::CStr {
10455         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_136\0")
10456             .expect("Wrong extension string")
10457     }
10458     pub const SPEC_VERSION: u32 = 0u32;
10459 }
10460 #[derive(Clone)]
10461 pub struct AmdExtension136Fn {}
10462 unsafe impl Send for AmdExtension136Fn {}
10463 unsafe impl Sync for AmdExtension136Fn {}
10464 impl AmdExtension136Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10465     pub fn load<F>(mut _f: F) -> Self
10466     where
10467         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10468     {
10469         AmdExtension136Fn {}
10470     }
10471 }
10472 impl AmdMixedAttachmentSamplesFn {
name() -> &'static ::std::ffi::CStr10473     pub fn name() -> &'static ::std::ffi::CStr {
10474         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_mixed_attachment_samples\0")
10475             .expect("Wrong extension string")
10476     }
10477     pub const SPEC_VERSION: u32 = 1u32;
10478 }
10479 #[derive(Clone)]
10480 pub struct AmdMixedAttachmentSamplesFn {}
10481 unsafe impl Send for AmdMixedAttachmentSamplesFn {}
10482 unsafe impl Sync for AmdMixedAttachmentSamplesFn {}
10483 impl AmdMixedAttachmentSamplesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10484     pub fn load<F>(mut _f: F) -> Self
10485     where
10486         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10487     {
10488         AmdMixedAttachmentSamplesFn {}
10489     }
10490 }
10491 impl AmdShaderFragmentMaskFn {
name() -> &'static ::std::ffi::CStr10492     pub fn name() -> &'static ::std::ffi::CStr {
10493         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_shader_fragment_mask\0")
10494             .expect("Wrong extension string")
10495     }
10496     pub const SPEC_VERSION: u32 = 1u32;
10497 }
10498 #[derive(Clone)]
10499 pub struct AmdShaderFragmentMaskFn {}
10500 unsafe impl Send for AmdShaderFragmentMaskFn {}
10501 unsafe impl Sync for AmdShaderFragmentMaskFn {}
10502 impl AmdShaderFragmentMaskFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10503     pub fn load<F>(mut _f: F) -> Self
10504     where
10505         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10506     {
10507         AmdShaderFragmentMaskFn {}
10508     }
10509 }
10510 impl ExtInlineUniformBlockFn {
name() -> &'static ::std::ffi::CStr10511     pub fn name() -> &'static ::std::ffi::CStr {
10512         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_inline_uniform_block\0")
10513             .expect("Wrong extension string")
10514     }
10515     pub const SPEC_VERSION: u32 = 1u32;
10516 }
10517 #[derive(Clone)]
10518 pub struct ExtInlineUniformBlockFn {}
10519 unsafe impl Send for ExtInlineUniformBlockFn {}
10520 unsafe impl Sync for ExtInlineUniformBlockFn {}
10521 impl ExtInlineUniformBlockFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10522     pub fn load<F>(mut _f: F) -> Self
10523     where
10524         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10525     {
10526         ExtInlineUniformBlockFn {}
10527     }
10528 }
10529 #[doc = "Generated from 'VK_EXT_inline_uniform_block'"]
10530 impl DescriptorType {
10531     pub const INLINE_UNIFORM_BLOCK_EXT: Self = Self(1_000_138_000);
10532 }
10533 #[doc = "Generated from 'VK_EXT_inline_uniform_block'"]
10534 impl StructureType {
10535     pub const PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT: Self = Self(1_000_138_000);
10536 }
10537 #[doc = "Generated from 'VK_EXT_inline_uniform_block'"]
10538 impl StructureType {
10539     pub const PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT: Self = Self(1_000_138_001);
10540 }
10541 #[doc = "Generated from 'VK_EXT_inline_uniform_block'"]
10542 impl StructureType {
10543     pub const WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT: Self = Self(1_000_138_002);
10544 }
10545 #[doc = "Generated from 'VK_EXT_inline_uniform_block'"]
10546 impl StructureType {
10547     pub const DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT: Self = Self(1_000_138_003);
10548 }
10549 impl AmdExtension140Fn {
name() -> &'static ::std::ffi::CStr10550     pub fn name() -> &'static ::std::ffi::CStr {
10551         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_140\0")
10552             .expect("Wrong extension string")
10553     }
10554     pub const SPEC_VERSION: u32 = 0u32;
10555 }
10556 #[derive(Clone)]
10557 pub struct AmdExtension140Fn {}
10558 unsafe impl Send for AmdExtension140Fn {}
10559 unsafe impl Sync for AmdExtension140Fn {}
10560 impl AmdExtension140Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10561     pub fn load<F>(mut _f: F) -> Self
10562     where
10563         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10564     {
10565         AmdExtension140Fn {}
10566     }
10567 }
10568 impl ExtShaderStencilExportFn {
name() -> &'static ::std::ffi::CStr10569     pub fn name() -> &'static ::std::ffi::CStr {
10570         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_shader_stencil_export\0")
10571             .expect("Wrong extension string")
10572     }
10573     pub const SPEC_VERSION: u32 = 1u32;
10574 }
10575 #[derive(Clone)]
10576 pub struct ExtShaderStencilExportFn {}
10577 unsafe impl Send for ExtShaderStencilExportFn {}
10578 unsafe impl Sync for ExtShaderStencilExportFn {}
10579 impl ExtShaderStencilExportFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10580     pub fn load<F>(mut _f: F) -> Self
10581     where
10582         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10583     {
10584         ExtShaderStencilExportFn {}
10585     }
10586 }
10587 impl AmdExtension142Fn {
name() -> &'static ::std::ffi::CStr10588     pub fn name() -> &'static ::std::ffi::CStr {
10589         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_142\0")
10590             .expect("Wrong extension string")
10591     }
10592     pub const SPEC_VERSION: u32 = 0u32;
10593 }
10594 #[derive(Clone)]
10595 pub struct AmdExtension142Fn {}
10596 unsafe impl Send for AmdExtension142Fn {}
10597 unsafe impl Sync for AmdExtension142Fn {}
10598 impl AmdExtension142Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10599     pub fn load<F>(mut _f: F) -> Self
10600     where
10601         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10602     {
10603         AmdExtension142Fn {}
10604     }
10605 }
10606 impl AmdExtension143Fn {
name() -> &'static ::std::ffi::CStr10607     pub fn name() -> &'static ::std::ffi::CStr {
10608         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_143\0")
10609             .expect("Wrong extension string")
10610     }
10611     pub const SPEC_VERSION: u32 = 0u32;
10612 }
10613 #[derive(Clone)]
10614 pub struct AmdExtension143Fn {}
10615 unsafe impl Send for AmdExtension143Fn {}
10616 unsafe impl Sync for AmdExtension143Fn {}
10617 impl AmdExtension143Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10618     pub fn load<F>(mut _f: F) -> Self
10619     where
10620         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10621     {
10622         AmdExtension143Fn {}
10623     }
10624 }
10625 impl ExtSampleLocationsFn {
name() -> &'static ::std::ffi::CStr10626     pub fn name() -> &'static ::std::ffi::CStr {
10627         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_sample_locations\0")
10628             .expect("Wrong extension string")
10629     }
10630     pub const SPEC_VERSION: u32 = 1u32;
10631 }
10632 #[allow(non_camel_case_types)]
10633 pub type PFN_vkCmdSetSampleLocationsEXT = unsafe extern "system" fn(
10634     command_buffer: CommandBuffer,
10635     p_sample_locations_info: *const SampleLocationsInfoEXT,
10636 );
10637 #[allow(non_camel_case_types)]
10638 pub type PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = unsafe extern "system" fn(
10639     physical_device: PhysicalDevice,
10640     samples: SampleCountFlags,
10641     p_multisample_properties: *mut MultisamplePropertiesEXT,
10642 );
10643 #[derive(Clone)]
10644 pub struct ExtSampleLocationsFn {
10645     pub cmd_set_sample_locations_ext: PFN_vkCmdSetSampleLocationsEXT,
10646     pub get_physical_device_multisample_properties_ext:
10647         PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT,
10648 }
10649 unsafe impl Send for ExtSampleLocationsFn {}
10650 unsafe impl Sync for ExtSampleLocationsFn {}
10651 impl ExtSampleLocationsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10652     pub fn load<F>(mut _f: F) -> Self
10653     where
10654         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10655     {
10656         ExtSampleLocationsFn {
10657             cmd_set_sample_locations_ext: unsafe {
10658                 unsafe extern "system" fn cmd_set_sample_locations_ext(
10659                     _command_buffer: CommandBuffer,
10660                     _p_sample_locations_info: *const SampleLocationsInfoEXT,
10661                 ) {
10662                     panic!(concat!(
10663                         "Unable to load ",
10664                         stringify!(cmd_set_sample_locations_ext)
10665                     ))
10666                 }
10667                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10668                     b"vkCmdSetSampleLocationsEXT\0",
10669                 );
10670                 let val = _f(cname);
10671                 if val.is_null() {
10672                     cmd_set_sample_locations_ext
10673                 } else {
10674                     ::std::mem::transmute(val)
10675                 }
10676             },
10677             get_physical_device_multisample_properties_ext: unsafe {
10678                 unsafe extern "system" fn get_physical_device_multisample_properties_ext(
10679                     _physical_device: PhysicalDevice,
10680                     _samples: SampleCountFlags,
10681                     _p_multisample_properties: *mut MultisamplePropertiesEXT,
10682                 ) {
10683                     panic!(concat!(
10684                         "Unable to load ",
10685                         stringify!(get_physical_device_multisample_properties_ext)
10686                     ))
10687                 }
10688                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10689                     b"vkGetPhysicalDeviceMultisamplePropertiesEXT\0",
10690                 );
10691                 let val = _f(cname);
10692                 if val.is_null() {
10693                     get_physical_device_multisample_properties_ext
10694                 } else {
10695                     ::std::mem::transmute(val)
10696                 }
10697             },
10698         }
10699     }
10700     #[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, )10701     pub unsafe fn cmd_set_sample_locations_ext(
10702         &self,
10703         command_buffer: CommandBuffer,
10704         p_sample_locations_info: *const SampleLocationsInfoEXT,
10705     ) {
10706         (self.cmd_set_sample_locations_ext)(command_buffer, p_sample_locations_info)
10707     }
10708     #[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, )10709     pub unsafe fn get_physical_device_multisample_properties_ext(
10710         &self,
10711         physical_device: PhysicalDevice,
10712         samples: SampleCountFlags,
10713         p_multisample_properties: *mut MultisamplePropertiesEXT,
10714     ) {
10715         (self.get_physical_device_multisample_properties_ext)(
10716             physical_device,
10717             samples,
10718             p_multisample_properties,
10719         )
10720     }
10721 }
10722 #[doc = "Generated from 'VK_EXT_sample_locations'"]
10723 impl ImageCreateFlags {
10724     pub const SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_EXT: Self = Self(0b1_0000_0000_0000);
10725 }
10726 #[doc = "Generated from 'VK_EXT_sample_locations'"]
10727 impl StructureType {
10728     pub const SAMPLE_LOCATIONS_INFO_EXT: Self = Self(1_000_143_000);
10729 }
10730 #[doc = "Generated from 'VK_EXT_sample_locations'"]
10731 impl StructureType {
10732     pub const RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT: Self = Self(1_000_143_001);
10733 }
10734 #[doc = "Generated from 'VK_EXT_sample_locations'"]
10735 impl StructureType {
10736     pub const PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT: Self = Self(1_000_143_002);
10737 }
10738 #[doc = "Generated from 'VK_EXT_sample_locations'"]
10739 impl StructureType {
10740     pub const PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT: Self = Self(1_000_143_003);
10741 }
10742 #[doc = "Generated from 'VK_EXT_sample_locations'"]
10743 impl StructureType {
10744     pub const MULTISAMPLE_PROPERTIES_EXT: Self = Self(1_000_143_004);
10745 }
10746 #[doc = "Generated from 'VK_EXT_sample_locations'"]
10747 impl DynamicState {
10748     pub const SAMPLE_LOCATIONS_EXT: Self = Self(1_000_143_000);
10749 }
10750 impl KhrRelaxedBlockLayoutFn {
name() -> &'static ::std::ffi::CStr10751     pub fn name() -> &'static ::std::ffi::CStr {
10752         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_relaxed_block_layout\0")
10753             .expect("Wrong extension string")
10754     }
10755     pub const SPEC_VERSION: u32 = 1u32;
10756 }
10757 #[derive(Clone)]
10758 pub struct KhrRelaxedBlockLayoutFn {}
10759 unsafe impl Send for KhrRelaxedBlockLayoutFn {}
10760 unsafe impl Sync for KhrRelaxedBlockLayoutFn {}
10761 impl KhrRelaxedBlockLayoutFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10762     pub fn load<F>(mut _f: F) -> Self
10763     where
10764         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10765     {
10766         KhrRelaxedBlockLayoutFn {}
10767     }
10768 }
10769 impl KhrGetMemoryRequirements2Fn {
name() -> &'static ::std::ffi::CStr10770     pub fn name() -> &'static ::std::ffi::CStr {
10771         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_get_memory_requirements2\0")
10772             .expect("Wrong extension string")
10773     }
10774     pub const SPEC_VERSION: u32 = 1u32;
10775 }
10776 #[allow(non_camel_case_types)]
10777 pub type PFN_vkGetImageMemoryRequirements2 = unsafe extern "system" fn(
10778     device: Device,
10779     p_info: *const ImageMemoryRequirementsInfo2,
10780     p_memory_requirements: *mut MemoryRequirements2,
10781 );
10782 #[allow(non_camel_case_types)]
10783 pub type PFN_vkGetBufferMemoryRequirements2 = unsafe extern "system" fn(
10784     device: Device,
10785     p_info: *const BufferMemoryRequirementsInfo2,
10786     p_memory_requirements: *mut MemoryRequirements2,
10787 );
10788 #[allow(non_camel_case_types)]
10789 pub type PFN_vkGetImageSparseMemoryRequirements2 = unsafe extern "system" fn(
10790     device: Device,
10791     p_info: *const ImageSparseMemoryRequirementsInfo2,
10792     p_sparse_memory_requirement_count: *mut u32,
10793     p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2,
10794 );
10795 #[derive(Clone)]
10796 pub struct KhrGetMemoryRequirements2Fn {
10797     pub get_image_memory_requirements2_khr: PFN_vkGetImageMemoryRequirements2,
10798     pub get_buffer_memory_requirements2_khr: PFN_vkGetBufferMemoryRequirements2,
10799     pub get_image_sparse_memory_requirements2_khr: PFN_vkGetImageSparseMemoryRequirements2,
10800 }
10801 unsafe impl Send for KhrGetMemoryRequirements2Fn {}
10802 unsafe impl Sync for KhrGetMemoryRequirements2Fn {}
10803 impl KhrGetMemoryRequirements2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10804     pub fn load<F>(mut _f: F) -> Self
10805     where
10806         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10807     {
10808         KhrGetMemoryRequirements2Fn {
10809             get_image_memory_requirements2_khr: unsafe {
10810                 unsafe extern "system" fn get_image_memory_requirements2_khr(
10811                     _device: Device,
10812                     _p_info: *const ImageMemoryRequirementsInfo2,
10813                     _p_memory_requirements: *mut MemoryRequirements2,
10814                 ) {
10815                     panic!(concat!(
10816                         "Unable to load ",
10817                         stringify!(get_image_memory_requirements2_khr)
10818                     ))
10819                 }
10820                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10821                     b"vkGetImageMemoryRequirements2KHR\0",
10822                 );
10823                 let val = _f(cname);
10824                 if val.is_null() {
10825                     get_image_memory_requirements2_khr
10826                 } else {
10827                     ::std::mem::transmute(val)
10828                 }
10829             },
10830             get_buffer_memory_requirements2_khr: unsafe {
10831                 unsafe extern "system" fn get_buffer_memory_requirements2_khr(
10832                     _device: Device,
10833                     _p_info: *const BufferMemoryRequirementsInfo2,
10834                     _p_memory_requirements: *mut MemoryRequirements2,
10835                 ) {
10836                     panic!(concat!(
10837                         "Unable to load ",
10838                         stringify!(get_buffer_memory_requirements2_khr)
10839                     ))
10840                 }
10841                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10842                     b"vkGetBufferMemoryRequirements2KHR\0",
10843                 );
10844                 let val = _f(cname);
10845                 if val.is_null() {
10846                     get_buffer_memory_requirements2_khr
10847                 } else {
10848                     ::std::mem::transmute(val)
10849                 }
10850             },
10851             get_image_sparse_memory_requirements2_khr: unsafe {
10852                 unsafe extern "system" fn get_image_sparse_memory_requirements2_khr(
10853                     _device: Device,
10854                     _p_info: *const ImageSparseMemoryRequirementsInfo2,
10855                     _p_sparse_memory_requirement_count: *mut u32,
10856                     _p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2,
10857                 ) {
10858                     panic!(concat!(
10859                         "Unable to load ",
10860                         stringify!(get_image_sparse_memory_requirements2_khr)
10861                     ))
10862                 }
10863                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10864                     b"vkGetImageSparseMemoryRequirements2KHR\0",
10865                 );
10866                 let val = _f(cname);
10867                 if val.is_null() {
10868                     get_image_sparse_memory_requirements2_khr
10869                 } else {
10870                     ::std::mem::transmute(val)
10871                 }
10872             },
10873         }
10874     }
10875     #[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, )10876     pub unsafe fn get_image_memory_requirements2_khr(
10877         &self,
10878         device: Device,
10879         p_info: *const ImageMemoryRequirementsInfo2,
10880         p_memory_requirements: *mut MemoryRequirements2,
10881     ) {
10882         (self.get_image_memory_requirements2_khr)(device, p_info, p_memory_requirements)
10883     }
10884     #[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, )10885     pub unsafe fn get_buffer_memory_requirements2_khr(
10886         &self,
10887         device: Device,
10888         p_info: *const BufferMemoryRequirementsInfo2,
10889         p_memory_requirements: *mut MemoryRequirements2,
10890     ) {
10891         (self.get_buffer_memory_requirements2_khr)(device, p_info, p_memory_requirements)
10892     }
10893     #[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, )10894     pub unsafe fn get_image_sparse_memory_requirements2_khr(
10895         &self,
10896         device: Device,
10897         p_info: *const ImageSparseMemoryRequirementsInfo2,
10898         p_sparse_memory_requirement_count: *mut u32,
10899         p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2,
10900     ) {
10901         (self.get_image_sparse_memory_requirements2_khr)(
10902             device,
10903             p_info,
10904             p_sparse_memory_requirement_count,
10905             p_sparse_memory_requirements,
10906         )
10907     }
10908 }
10909 #[doc = "Generated from 'VK_KHR_get_memory_requirements2'"]
10910 impl StructureType {
10911     pub const BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR: Self = Self::BUFFER_MEMORY_REQUIREMENTS_INFO_2;
10912 }
10913 #[doc = "Generated from 'VK_KHR_get_memory_requirements2'"]
10914 impl StructureType {
10915     pub const IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR: Self = Self::IMAGE_MEMORY_REQUIREMENTS_INFO_2;
10916 }
10917 #[doc = "Generated from 'VK_KHR_get_memory_requirements2'"]
10918 impl StructureType {
10919     pub const IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR: Self =
10920         Self::IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2;
10921 }
10922 #[doc = "Generated from 'VK_KHR_get_memory_requirements2'"]
10923 impl StructureType {
10924     pub const MEMORY_REQUIREMENTS_2_KHR: Self = Self::MEMORY_REQUIREMENTS_2;
10925 }
10926 #[doc = "Generated from 'VK_KHR_get_memory_requirements2'"]
10927 impl StructureType {
10928     pub const SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR: Self =
10929         Self::SPARSE_IMAGE_MEMORY_REQUIREMENTS_2;
10930 }
10931 impl KhrImageFormatListFn {
name() -> &'static ::std::ffi::CStr10932     pub fn name() -> &'static ::std::ffi::CStr {
10933         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_image_format_list\0")
10934             .expect("Wrong extension string")
10935     }
10936     pub const SPEC_VERSION: u32 = 1u32;
10937 }
10938 #[derive(Clone)]
10939 pub struct KhrImageFormatListFn {}
10940 unsafe impl Send for KhrImageFormatListFn {}
10941 unsafe impl Sync for KhrImageFormatListFn {}
10942 impl KhrImageFormatListFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10943     pub fn load<F>(mut _f: F) -> Self
10944     where
10945         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10946     {
10947         KhrImageFormatListFn {}
10948     }
10949 }
10950 #[doc = "Generated from 'VK_KHR_image_format_list'"]
10951 impl StructureType {
10952     pub const IMAGE_FORMAT_LIST_CREATE_INFO_KHR: Self = Self::IMAGE_FORMAT_LIST_CREATE_INFO;
10953 }
10954 impl ExtBlendOperationAdvancedFn {
name() -> &'static ::std::ffi::CStr10955     pub fn name() -> &'static ::std::ffi::CStr {
10956         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_blend_operation_advanced\0")
10957             .expect("Wrong extension string")
10958     }
10959     pub const SPEC_VERSION: u32 = 2u32;
10960 }
10961 #[derive(Clone)]
10962 pub struct ExtBlendOperationAdvancedFn {}
10963 unsafe impl Send for ExtBlendOperationAdvancedFn {}
10964 unsafe impl Sync for ExtBlendOperationAdvancedFn {}
10965 impl ExtBlendOperationAdvancedFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10966     pub fn load<F>(mut _f: F) -> Self
10967     where
10968         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10969     {
10970         ExtBlendOperationAdvancedFn {}
10971     }
10972 }
10973 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
10974 impl StructureType {
10975     pub const PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT: Self = Self(1_000_148_000);
10976 }
10977 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
10978 impl StructureType {
10979     pub const PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT: Self = Self(1_000_148_001);
10980 }
10981 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
10982 impl StructureType {
10983     pub const PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT: Self = Self(1_000_148_002);
10984 }
10985 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
10986 impl BlendOp {
10987     pub const ZERO_EXT: Self = Self(1_000_148_000);
10988 }
10989 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
10990 impl BlendOp {
10991     pub const SRC_EXT: Self = Self(1_000_148_001);
10992 }
10993 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
10994 impl BlendOp {
10995     pub const DST_EXT: Self = Self(1_000_148_002);
10996 }
10997 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
10998 impl BlendOp {
10999     pub const SRC_OVER_EXT: Self = Self(1_000_148_003);
11000 }
11001 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11002 impl BlendOp {
11003     pub const DST_OVER_EXT: Self = Self(1_000_148_004);
11004 }
11005 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11006 impl BlendOp {
11007     pub const SRC_IN_EXT: Self = Self(1_000_148_005);
11008 }
11009 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11010 impl BlendOp {
11011     pub const DST_IN_EXT: Self = Self(1_000_148_006);
11012 }
11013 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11014 impl BlendOp {
11015     pub const SRC_OUT_EXT: Self = Self(1_000_148_007);
11016 }
11017 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11018 impl BlendOp {
11019     pub const DST_OUT_EXT: Self = Self(1_000_148_008);
11020 }
11021 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11022 impl BlendOp {
11023     pub const SRC_ATOP_EXT: Self = Self(1_000_148_009);
11024 }
11025 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11026 impl BlendOp {
11027     pub const DST_ATOP_EXT: Self = Self(1_000_148_010);
11028 }
11029 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11030 impl BlendOp {
11031     pub const XOR_EXT: Self = Self(1_000_148_011);
11032 }
11033 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11034 impl BlendOp {
11035     pub const MULTIPLY_EXT: Self = Self(1_000_148_012);
11036 }
11037 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11038 impl BlendOp {
11039     pub const SCREEN_EXT: Self = Self(1_000_148_013);
11040 }
11041 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11042 impl BlendOp {
11043     pub const OVERLAY_EXT: Self = Self(1_000_148_014);
11044 }
11045 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11046 impl BlendOp {
11047     pub const DARKEN_EXT: Self = Self(1_000_148_015);
11048 }
11049 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11050 impl BlendOp {
11051     pub const LIGHTEN_EXT: Self = Self(1_000_148_016);
11052 }
11053 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11054 impl BlendOp {
11055     pub const COLORDODGE_EXT: Self = Self(1_000_148_017);
11056 }
11057 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11058 impl BlendOp {
11059     pub const COLORBURN_EXT: Self = Self(1_000_148_018);
11060 }
11061 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11062 impl BlendOp {
11063     pub const HARDLIGHT_EXT: Self = Self(1_000_148_019);
11064 }
11065 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11066 impl BlendOp {
11067     pub const SOFTLIGHT_EXT: Self = Self(1_000_148_020);
11068 }
11069 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11070 impl BlendOp {
11071     pub const DIFFERENCE_EXT: Self = Self(1_000_148_021);
11072 }
11073 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11074 impl BlendOp {
11075     pub const EXCLUSION_EXT: Self = Self(1_000_148_022);
11076 }
11077 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11078 impl BlendOp {
11079     pub const INVERT_EXT: Self = Self(1_000_148_023);
11080 }
11081 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11082 impl BlendOp {
11083     pub const INVERT_RGB_EXT: Self = Self(1_000_148_024);
11084 }
11085 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11086 impl BlendOp {
11087     pub const LINEARDODGE_EXT: Self = Self(1_000_148_025);
11088 }
11089 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11090 impl BlendOp {
11091     pub const LINEARBURN_EXT: Self = Self(1_000_148_026);
11092 }
11093 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11094 impl BlendOp {
11095     pub const VIVIDLIGHT_EXT: Self = Self(1_000_148_027);
11096 }
11097 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11098 impl BlendOp {
11099     pub const LINEARLIGHT_EXT: Self = Self(1_000_148_028);
11100 }
11101 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11102 impl BlendOp {
11103     pub const PINLIGHT_EXT: Self = Self(1_000_148_029);
11104 }
11105 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11106 impl BlendOp {
11107     pub const HARDMIX_EXT: Self = Self(1_000_148_030);
11108 }
11109 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11110 impl BlendOp {
11111     pub const HSL_HUE_EXT: Self = Self(1_000_148_031);
11112 }
11113 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11114 impl BlendOp {
11115     pub const HSL_SATURATION_EXT: Self = Self(1_000_148_032);
11116 }
11117 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11118 impl BlendOp {
11119     pub const HSL_COLOR_EXT: Self = Self(1_000_148_033);
11120 }
11121 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11122 impl BlendOp {
11123     pub const HSL_LUMINOSITY_EXT: Self = Self(1_000_148_034);
11124 }
11125 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11126 impl BlendOp {
11127     pub const PLUS_EXT: Self = Self(1_000_148_035);
11128 }
11129 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11130 impl BlendOp {
11131     pub const PLUS_CLAMPED_EXT: Self = Self(1_000_148_036);
11132 }
11133 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11134 impl BlendOp {
11135     pub const PLUS_CLAMPED_ALPHA_EXT: Self = Self(1_000_148_037);
11136 }
11137 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11138 impl BlendOp {
11139     pub const PLUS_DARKER_EXT: Self = Self(1_000_148_038);
11140 }
11141 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11142 impl BlendOp {
11143     pub const MINUS_EXT: Self = Self(1_000_148_039);
11144 }
11145 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11146 impl BlendOp {
11147     pub const MINUS_CLAMPED_EXT: Self = Self(1_000_148_040);
11148 }
11149 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11150 impl BlendOp {
11151     pub const CONTRAST_EXT: Self = Self(1_000_148_041);
11152 }
11153 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11154 impl BlendOp {
11155     pub const INVERT_OVG_EXT: Self = Self(1_000_148_042);
11156 }
11157 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11158 impl BlendOp {
11159     pub const RED_EXT: Self = Self(1_000_148_043);
11160 }
11161 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11162 impl BlendOp {
11163     pub const GREEN_EXT: Self = Self(1_000_148_044);
11164 }
11165 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11166 impl BlendOp {
11167     pub const BLUE_EXT: Self = Self(1_000_148_045);
11168 }
11169 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
11170 impl AccessFlags {
11171     pub const COLOR_ATTACHMENT_READ_NONCOHERENT_EXT: Self = Self(0b1000_0000_0000_0000_0000);
11172 }
11173 impl NvFragmentCoverageToColorFn {
name() -> &'static ::std::ffi::CStr11174     pub fn name() -> &'static ::std::ffi::CStr {
11175         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_fragment_coverage_to_color\0")
11176             .expect("Wrong extension string")
11177     }
11178     pub const SPEC_VERSION: u32 = 1u32;
11179 }
11180 #[derive(Clone)]
11181 pub struct NvFragmentCoverageToColorFn {}
11182 unsafe impl Send for NvFragmentCoverageToColorFn {}
11183 unsafe impl Sync for NvFragmentCoverageToColorFn {}
11184 impl NvFragmentCoverageToColorFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11185     pub fn load<F>(mut _f: F) -> Self
11186     where
11187         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11188     {
11189         NvFragmentCoverageToColorFn {}
11190     }
11191 }
11192 #[doc = "Generated from 'VK_NV_fragment_coverage_to_color'"]
11193 impl StructureType {
11194     pub const PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV: Self = Self(1_000_149_000);
11195 }
11196 impl KhrAccelerationStructureFn {
name() -> &'static ::std::ffi::CStr11197     pub fn name() -> &'static ::std::ffi::CStr {
11198         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_acceleration_structure\0")
11199             .expect("Wrong extension string")
11200     }
11201     pub const SPEC_VERSION: u32 = 12u32;
11202 }
11203 #[allow(non_camel_case_types)]
11204 pub type PFN_vkCreateAccelerationStructureKHR = unsafe extern "system" fn(
11205     device: Device,
11206     p_create_info: *const AccelerationStructureCreateInfoKHR,
11207     p_allocator: *const AllocationCallbacks,
11208     p_acceleration_structure: *mut AccelerationStructureKHR,
11209 ) -> Result;
11210 #[allow(non_camel_case_types)]
11211 pub type PFN_vkDestroyAccelerationStructureKHR = unsafe extern "system" fn(
11212     device: Device,
11213     acceleration_structure: AccelerationStructureKHR,
11214     p_allocator: *const AllocationCallbacks,
11215 );
11216 #[allow(non_camel_case_types)]
11217 pub type PFN_vkCmdBuildAccelerationStructuresKHR = unsafe extern "system" fn(
11218     command_buffer: CommandBuffer,
11219     info_count: u32,
11220     p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
11221     pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR,
11222 );
11223 #[allow(non_camel_case_types)]
11224 pub type PFN_vkCmdBuildAccelerationStructuresIndirectKHR = unsafe extern "system" fn(
11225     command_buffer: CommandBuffer,
11226     info_count: u32,
11227     p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
11228     p_indirect_device_addresses: *const DeviceAddress,
11229     p_indirect_strides: *const u32,
11230     pp_max_primitive_counts: *const *const u32,
11231 );
11232 #[allow(non_camel_case_types)]
11233 pub type PFN_vkBuildAccelerationStructuresKHR = unsafe extern "system" fn(
11234     device: Device,
11235     deferred_operation: DeferredOperationKHR,
11236     info_count: u32,
11237     p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
11238     pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR,
11239 ) -> Result;
11240 #[allow(non_camel_case_types)]
11241 pub type PFN_vkCopyAccelerationStructureKHR = unsafe extern "system" fn(
11242     device: Device,
11243     deferred_operation: DeferredOperationKHR,
11244     p_info: *const CopyAccelerationStructureInfoKHR,
11245 ) -> Result;
11246 #[allow(non_camel_case_types)]
11247 pub type PFN_vkCopyAccelerationStructureToMemoryKHR = unsafe extern "system" fn(
11248     device: Device,
11249     deferred_operation: DeferredOperationKHR,
11250     p_info: *const CopyAccelerationStructureToMemoryInfoKHR,
11251 ) -> Result;
11252 #[allow(non_camel_case_types)]
11253 pub type PFN_vkCopyMemoryToAccelerationStructureKHR = unsafe extern "system" fn(
11254     device: Device,
11255     deferred_operation: DeferredOperationKHR,
11256     p_info: *const CopyMemoryToAccelerationStructureInfoKHR,
11257 ) -> Result;
11258 #[allow(non_camel_case_types)]
11259 pub type PFN_vkWriteAccelerationStructuresPropertiesKHR = unsafe extern "system" fn(
11260     device: Device,
11261     acceleration_structure_count: u32,
11262     p_acceleration_structures: *const AccelerationStructureKHR,
11263     query_type: QueryType,
11264     data_size: usize,
11265     p_data: *mut c_void,
11266     stride: usize,
11267 ) -> Result;
11268 #[allow(non_camel_case_types)]
11269 pub type PFN_vkCmdCopyAccelerationStructureKHR = unsafe extern "system" fn(
11270     command_buffer: CommandBuffer,
11271     p_info: *const CopyAccelerationStructureInfoKHR,
11272 );
11273 #[allow(non_camel_case_types)]
11274 pub type PFN_vkCmdCopyAccelerationStructureToMemoryKHR = unsafe extern "system" fn(
11275     command_buffer: CommandBuffer,
11276     p_info: *const CopyAccelerationStructureToMemoryInfoKHR,
11277 );
11278 #[allow(non_camel_case_types)]
11279 pub type PFN_vkCmdCopyMemoryToAccelerationStructureKHR = unsafe extern "system" fn(
11280     command_buffer: CommandBuffer,
11281     p_info: *const CopyMemoryToAccelerationStructureInfoKHR,
11282 );
11283 #[allow(non_camel_case_types)]
11284 pub type PFN_vkGetAccelerationStructureDeviceAddressKHR =
11285     unsafe extern "system" fn(
11286         device: Device,
11287         p_info: *const AccelerationStructureDeviceAddressInfoKHR,
11288     ) -> DeviceAddress;
11289 #[allow(non_camel_case_types)]
11290 pub type PFN_vkCmdWriteAccelerationStructuresPropertiesKHR = unsafe extern "system" fn(
11291     command_buffer: CommandBuffer,
11292     acceleration_structure_count: u32,
11293     p_acceleration_structures: *const AccelerationStructureKHR,
11294     query_type: QueryType,
11295     query_pool: QueryPool,
11296     first_query: u32,
11297 );
11298 #[allow(non_camel_case_types)]
11299 pub type PFN_vkGetDeviceAccelerationStructureCompatibilityKHR = unsafe extern "system" fn(
11300     device: Device,
11301     p_version_info: *const AccelerationStructureVersionInfoKHR,
11302     p_compatibility: *mut AccelerationStructureCompatibilityKHR,
11303 );
11304 #[allow(non_camel_case_types)]
11305 pub type PFN_vkGetAccelerationStructureBuildSizesKHR = unsafe extern "system" fn(
11306     device: Device,
11307     build_type: AccelerationStructureBuildTypeKHR,
11308     p_build_info: *const AccelerationStructureBuildGeometryInfoKHR,
11309     p_max_primitive_counts: *const u32,
11310     p_size_info: *mut AccelerationStructureBuildSizesInfoKHR,
11311 );
11312 #[derive(Clone)]
11313 pub struct KhrAccelerationStructureFn {
11314     pub create_acceleration_structure_khr: PFN_vkCreateAccelerationStructureKHR,
11315     pub destroy_acceleration_structure_khr: PFN_vkDestroyAccelerationStructureKHR,
11316     pub cmd_build_acceleration_structures_khr: PFN_vkCmdBuildAccelerationStructuresKHR,
11317     pub cmd_build_acceleration_structures_indirect_khr:
11318         PFN_vkCmdBuildAccelerationStructuresIndirectKHR,
11319     pub build_acceleration_structures_khr: PFN_vkBuildAccelerationStructuresKHR,
11320     pub copy_acceleration_structure_khr: PFN_vkCopyAccelerationStructureKHR,
11321     pub copy_acceleration_structure_to_memory_khr: PFN_vkCopyAccelerationStructureToMemoryKHR,
11322     pub copy_memory_to_acceleration_structure_khr: PFN_vkCopyMemoryToAccelerationStructureKHR,
11323     pub write_acceleration_structures_properties_khr:
11324         PFN_vkWriteAccelerationStructuresPropertiesKHR,
11325     pub cmd_copy_acceleration_structure_khr: PFN_vkCmdCopyAccelerationStructureKHR,
11326     pub cmd_copy_acceleration_structure_to_memory_khr:
11327         PFN_vkCmdCopyAccelerationStructureToMemoryKHR,
11328     pub cmd_copy_memory_to_acceleration_structure_khr:
11329         PFN_vkCmdCopyMemoryToAccelerationStructureKHR,
11330     pub get_acceleration_structure_device_address_khr:
11331         PFN_vkGetAccelerationStructureDeviceAddressKHR,
11332     pub cmd_write_acceleration_structures_properties_khr:
11333         PFN_vkCmdWriteAccelerationStructuresPropertiesKHR,
11334     pub get_device_acceleration_structure_compatibility_khr:
11335         PFN_vkGetDeviceAccelerationStructureCompatibilityKHR,
11336     pub get_acceleration_structure_build_sizes_khr: PFN_vkGetAccelerationStructureBuildSizesKHR,
11337 }
11338 unsafe impl Send for KhrAccelerationStructureFn {}
11339 unsafe impl Sync for KhrAccelerationStructureFn {}
11340 impl KhrAccelerationStructureFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11341     pub fn load<F>(mut _f: F) -> Self
11342     where
11343         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11344     {
11345         KhrAccelerationStructureFn {
11346             create_acceleration_structure_khr: unsafe {
11347                 unsafe extern "system" fn create_acceleration_structure_khr(
11348                     _device: Device,
11349                     _p_create_info: *const AccelerationStructureCreateInfoKHR,
11350                     _p_allocator: *const AllocationCallbacks,
11351                     _p_acceleration_structure: *mut AccelerationStructureKHR,
11352                 ) -> Result {
11353                     panic!(concat!(
11354                         "Unable to load ",
11355                         stringify!(create_acceleration_structure_khr)
11356                     ))
11357                 }
11358                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11359                     b"vkCreateAccelerationStructureKHR\0",
11360                 );
11361                 let val = _f(cname);
11362                 if val.is_null() {
11363                     create_acceleration_structure_khr
11364                 } else {
11365                     ::std::mem::transmute(val)
11366                 }
11367             },
11368             destroy_acceleration_structure_khr: unsafe {
11369                 unsafe extern "system" fn destroy_acceleration_structure_khr(
11370                     _device: Device,
11371                     _acceleration_structure: AccelerationStructureKHR,
11372                     _p_allocator: *const AllocationCallbacks,
11373                 ) {
11374                     panic!(concat!(
11375                         "Unable to load ",
11376                         stringify!(destroy_acceleration_structure_khr)
11377                     ))
11378                 }
11379                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11380                     b"vkDestroyAccelerationStructureKHR\0",
11381                 );
11382                 let val = _f(cname);
11383                 if val.is_null() {
11384                     destroy_acceleration_structure_khr
11385                 } else {
11386                     ::std::mem::transmute(val)
11387                 }
11388             },
11389             cmd_build_acceleration_structures_khr: unsafe {
11390                 unsafe extern "system" fn cmd_build_acceleration_structures_khr(
11391                     _command_buffer: CommandBuffer,
11392                     _info_count: u32,
11393                     _p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
11394                     _pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR,
11395                 ) {
11396                     panic!(concat!(
11397                         "Unable to load ",
11398                         stringify!(cmd_build_acceleration_structures_khr)
11399                     ))
11400                 }
11401                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11402                     b"vkCmdBuildAccelerationStructuresKHR\0",
11403                 );
11404                 let val = _f(cname);
11405                 if val.is_null() {
11406                     cmd_build_acceleration_structures_khr
11407                 } else {
11408                     ::std::mem::transmute(val)
11409                 }
11410             },
11411             cmd_build_acceleration_structures_indirect_khr: unsafe {
11412                 unsafe extern "system" fn cmd_build_acceleration_structures_indirect_khr(
11413                     _command_buffer: CommandBuffer,
11414                     _info_count: u32,
11415                     _p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
11416                     _p_indirect_device_addresses: *const DeviceAddress,
11417                     _p_indirect_strides: *const u32,
11418                     _pp_max_primitive_counts: *const *const u32,
11419                 ) {
11420                     panic!(concat!(
11421                         "Unable to load ",
11422                         stringify!(cmd_build_acceleration_structures_indirect_khr)
11423                     ))
11424                 }
11425                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11426                     b"vkCmdBuildAccelerationStructuresIndirectKHR\0",
11427                 );
11428                 let val = _f(cname);
11429                 if val.is_null() {
11430                     cmd_build_acceleration_structures_indirect_khr
11431                 } else {
11432                     ::std::mem::transmute(val)
11433                 }
11434             },
11435             build_acceleration_structures_khr: unsafe {
11436                 unsafe extern "system" fn build_acceleration_structures_khr(
11437                     _device: Device,
11438                     _deferred_operation: DeferredOperationKHR,
11439                     _info_count: u32,
11440                     _p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
11441                     _pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR,
11442                 ) -> Result {
11443                     panic!(concat!(
11444                         "Unable to load ",
11445                         stringify!(build_acceleration_structures_khr)
11446                     ))
11447                 }
11448                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11449                     b"vkBuildAccelerationStructuresKHR\0",
11450                 );
11451                 let val = _f(cname);
11452                 if val.is_null() {
11453                     build_acceleration_structures_khr
11454                 } else {
11455                     ::std::mem::transmute(val)
11456                 }
11457             },
11458             copy_acceleration_structure_khr: unsafe {
11459                 unsafe extern "system" fn copy_acceleration_structure_khr(
11460                     _device: Device,
11461                     _deferred_operation: DeferredOperationKHR,
11462                     _p_info: *const CopyAccelerationStructureInfoKHR,
11463                 ) -> Result {
11464                     panic!(concat!(
11465                         "Unable to load ",
11466                         stringify!(copy_acceleration_structure_khr)
11467                     ))
11468                 }
11469                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11470                     b"vkCopyAccelerationStructureKHR\0",
11471                 );
11472                 let val = _f(cname);
11473                 if val.is_null() {
11474                     copy_acceleration_structure_khr
11475                 } else {
11476                     ::std::mem::transmute(val)
11477                 }
11478             },
11479             copy_acceleration_structure_to_memory_khr: unsafe {
11480                 unsafe extern "system" fn copy_acceleration_structure_to_memory_khr(
11481                     _device: Device,
11482                     _deferred_operation: DeferredOperationKHR,
11483                     _p_info: *const CopyAccelerationStructureToMemoryInfoKHR,
11484                 ) -> Result {
11485                     panic!(concat!(
11486                         "Unable to load ",
11487                         stringify!(copy_acceleration_structure_to_memory_khr)
11488                     ))
11489                 }
11490                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11491                     b"vkCopyAccelerationStructureToMemoryKHR\0",
11492                 );
11493                 let val = _f(cname);
11494                 if val.is_null() {
11495                     copy_acceleration_structure_to_memory_khr
11496                 } else {
11497                     ::std::mem::transmute(val)
11498                 }
11499             },
11500             copy_memory_to_acceleration_structure_khr: unsafe {
11501                 unsafe extern "system" fn copy_memory_to_acceleration_structure_khr(
11502                     _device: Device,
11503                     _deferred_operation: DeferredOperationKHR,
11504                     _p_info: *const CopyMemoryToAccelerationStructureInfoKHR,
11505                 ) -> Result {
11506                     panic!(concat!(
11507                         "Unable to load ",
11508                         stringify!(copy_memory_to_acceleration_structure_khr)
11509                     ))
11510                 }
11511                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11512                     b"vkCopyMemoryToAccelerationStructureKHR\0",
11513                 );
11514                 let val = _f(cname);
11515                 if val.is_null() {
11516                     copy_memory_to_acceleration_structure_khr
11517                 } else {
11518                     ::std::mem::transmute(val)
11519                 }
11520             },
11521             write_acceleration_structures_properties_khr: unsafe {
11522                 unsafe extern "system" fn write_acceleration_structures_properties_khr(
11523                     _device: Device,
11524                     _acceleration_structure_count: u32,
11525                     _p_acceleration_structures: *const AccelerationStructureKHR,
11526                     _query_type: QueryType,
11527                     _data_size: usize,
11528                     _p_data: *mut c_void,
11529                     _stride: usize,
11530                 ) -> Result {
11531                     panic!(concat!(
11532                         "Unable to load ",
11533                         stringify!(write_acceleration_structures_properties_khr)
11534                     ))
11535                 }
11536                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11537                     b"vkWriteAccelerationStructuresPropertiesKHR\0",
11538                 );
11539                 let val = _f(cname);
11540                 if val.is_null() {
11541                     write_acceleration_structures_properties_khr
11542                 } else {
11543                     ::std::mem::transmute(val)
11544                 }
11545             },
11546             cmd_copy_acceleration_structure_khr: unsafe {
11547                 unsafe extern "system" fn cmd_copy_acceleration_structure_khr(
11548                     _command_buffer: CommandBuffer,
11549                     _p_info: *const CopyAccelerationStructureInfoKHR,
11550                 ) {
11551                     panic!(concat!(
11552                         "Unable to load ",
11553                         stringify!(cmd_copy_acceleration_structure_khr)
11554                     ))
11555                 }
11556                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11557                     b"vkCmdCopyAccelerationStructureKHR\0",
11558                 );
11559                 let val = _f(cname);
11560                 if val.is_null() {
11561                     cmd_copy_acceleration_structure_khr
11562                 } else {
11563                     ::std::mem::transmute(val)
11564                 }
11565             },
11566             cmd_copy_acceleration_structure_to_memory_khr: unsafe {
11567                 unsafe extern "system" fn cmd_copy_acceleration_structure_to_memory_khr(
11568                     _command_buffer: CommandBuffer,
11569                     _p_info: *const CopyAccelerationStructureToMemoryInfoKHR,
11570                 ) {
11571                     panic!(concat!(
11572                         "Unable to load ",
11573                         stringify!(cmd_copy_acceleration_structure_to_memory_khr)
11574                     ))
11575                 }
11576                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11577                     b"vkCmdCopyAccelerationStructureToMemoryKHR\0",
11578                 );
11579                 let val = _f(cname);
11580                 if val.is_null() {
11581                     cmd_copy_acceleration_structure_to_memory_khr
11582                 } else {
11583                     ::std::mem::transmute(val)
11584                 }
11585             },
11586             cmd_copy_memory_to_acceleration_structure_khr: unsafe {
11587                 unsafe extern "system" fn cmd_copy_memory_to_acceleration_structure_khr(
11588                     _command_buffer: CommandBuffer,
11589                     _p_info: *const CopyMemoryToAccelerationStructureInfoKHR,
11590                 ) {
11591                     panic!(concat!(
11592                         "Unable to load ",
11593                         stringify!(cmd_copy_memory_to_acceleration_structure_khr)
11594                     ))
11595                 }
11596                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11597                     b"vkCmdCopyMemoryToAccelerationStructureKHR\0",
11598                 );
11599                 let val = _f(cname);
11600                 if val.is_null() {
11601                     cmd_copy_memory_to_acceleration_structure_khr
11602                 } else {
11603                     ::std::mem::transmute(val)
11604                 }
11605             },
11606             get_acceleration_structure_device_address_khr: unsafe {
11607                 unsafe extern "system" fn get_acceleration_structure_device_address_khr(
11608                     _device: Device,
11609                     _p_info: *const AccelerationStructureDeviceAddressInfoKHR,
11610                 ) -> DeviceAddress {
11611                     panic!(concat!(
11612                         "Unable to load ",
11613                         stringify!(get_acceleration_structure_device_address_khr)
11614                     ))
11615                 }
11616                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11617                     b"vkGetAccelerationStructureDeviceAddressKHR\0",
11618                 );
11619                 let val = _f(cname);
11620                 if val.is_null() {
11621                     get_acceleration_structure_device_address_khr
11622                 } else {
11623                     ::std::mem::transmute(val)
11624                 }
11625             },
11626             cmd_write_acceleration_structures_properties_khr: unsafe {
11627                 unsafe extern "system" fn cmd_write_acceleration_structures_properties_khr(
11628                     _command_buffer: CommandBuffer,
11629                     _acceleration_structure_count: u32,
11630                     _p_acceleration_structures: *const AccelerationStructureKHR,
11631                     _query_type: QueryType,
11632                     _query_pool: QueryPool,
11633                     _first_query: u32,
11634                 ) {
11635                     panic!(concat!(
11636                         "Unable to load ",
11637                         stringify!(cmd_write_acceleration_structures_properties_khr)
11638                     ))
11639                 }
11640                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11641                     b"vkCmdWriteAccelerationStructuresPropertiesKHR\0",
11642                 );
11643                 let val = _f(cname);
11644                 if val.is_null() {
11645                     cmd_write_acceleration_structures_properties_khr
11646                 } else {
11647                     ::std::mem::transmute(val)
11648                 }
11649             },
11650             get_device_acceleration_structure_compatibility_khr: unsafe {
11651                 unsafe extern "system" fn get_device_acceleration_structure_compatibility_khr(
11652                     _device: Device,
11653                     _p_version_info: *const AccelerationStructureVersionInfoKHR,
11654                     _p_compatibility: *mut AccelerationStructureCompatibilityKHR,
11655                 ) {
11656                     panic!(concat!(
11657                         "Unable to load ",
11658                         stringify!(get_device_acceleration_structure_compatibility_khr)
11659                     ))
11660                 }
11661                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11662                     b"vkGetDeviceAccelerationStructureCompatibilityKHR\0",
11663                 );
11664                 let val = _f(cname);
11665                 if val.is_null() {
11666                     get_device_acceleration_structure_compatibility_khr
11667                 } else {
11668                     ::std::mem::transmute(val)
11669                 }
11670             },
11671             get_acceleration_structure_build_sizes_khr: unsafe {
11672                 unsafe extern "system" fn get_acceleration_structure_build_sizes_khr(
11673                     _device: Device,
11674                     _build_type: AccelerationStructureBuildTypeKHR,
11675                     _p_build_info: *const AccelerationStructureBuildGeometryInfoKHR,
11676                     _p_max_primitive_counts: *const u32,
11677                     _p_size_info: *mut AccelerationStructureBuildSizesInfoKHR,
11678                 ) {
11679                     panic!(concat!(
11680                         "Unable to load ",
11681                         stringify!(get_acceleration_structure_build_sizes_khr)
11682                     ))
11683                 }
11684                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11685                     b"vkGetAccelerationStructureBuildSizesKHR\0",
11686                 );
11687                 let val = _f(cname);
11688                 if val.is_null() {
11689                     get_acceleration_structure_build_sizes_khr
11690                 } else {
11691                     ::std::mem::transmute(val)
11692                 }
11693             },
11694         }
11695     }
11696     #[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, ) -> Result11697     pub unsafe fn create_acceleration_structure_khr(
11698         &self,
11699         device: Device,
11700         p_create_info: *const AccelerationStructureCreateInfoKHR,
11701         p_allocator: *const AllocationCallbacks,
11702         p_acceleration_structure: *mut AccelerationStructureKHR,
11703     ) -> Result {
11704         (self.create_acceleration_structure_khr)(
11705             device,
11706             p_create_info,
11707             p_allocator,
11708             p_acceleration_structure,
11709         )
11710     }
11711     #[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, )11712     pub unsafe fn destroy_acceleration_structure_khr(
11713         &self,
11714         device: Device,
11715         acceleration_structure: AccelerationStructureKHR,
11716         p_allocator: *const AllocationCallbacks,
11717     ) {
11718         (self.destroy_acceleration_structure_khr)(device, acceleration_structure, p_allocator)
11719     }
11720     #[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, )11721     pub unsafe fn cmd_build_acceleration_structures_khr(
11722         &self,
11723         command_buffer: CommandBuffer,
11724         info_count: u32,
11725         p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
11726         pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR,
11727     ) {
11728         (self.cmd_build_acceleration_structures_khr)(
11729             command_buffer,
11730             info_count,
11731             p_infos,
11732             pp_build_range_infos,
11733         )
11734     }
11735     #[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, )11736     pub unsafe fn cmd_build_acceleration_structures_indirect_khr(
11737         &self,
11738         command_buffer: CommandBuffer,
11739         info_count: u32,
11740         p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
11741         p_indirect_device_addresses: *const DeviceAddress,
11742         p_indirect_strides: *const u32,
11743         pp_max_primitive_counts: *const *const u32,
11744     ) {
11745         (self.cmd_build_acceleration_structures_indirect_khr)(
11746             command_buffer,
11747             info_count,
11748             p_infos,
11749             p_indirect_device_addresses,
11750             p_indirect_strides,
11751             pp_max_primitive_counts,
11752         )
11753     }
11754     #[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, ) -> Result11755     pub unsafe fn build_acceleration_structures_khr(
11756         &self,
11757         device: Device,
11758         deferred_operation: DeferredOperationKHR,
11759         info_count: u32,
11760         p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
11761         pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR,
11762     ) -> Result {
11763         (self.build_acceleration_structures_khr)(
11764             device,
11765             deferred_operation,
11766             info_count,
11767             p_infos,
11768             pp_build_range_infos,
11769         )
11770     }
11771     #[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, ) -> Result11772     pub unsafe fn copy_acceleration_structure_khr(
11773         &self,
11774         device: Device,
11775         deferred_operation: DeferredOperationKHR,
11776         p_info: *const CopyAccelerationStructureInfoKHR,
11777     ) -> Result {
11778         (self.copy_acceleration_structure_khr)(device, deferred_operation, p_info)
11779     }
11780     #[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, ) -> Result11781     pub unsafe fn copy_acceleration_structure_to_memory_khr(
11782         &self,
11783         device: Device,
11784         deferred_operation: DeferredOperationKHR,
11785         p_info: *const CopyAccelerationStructureToMemoryInfoKHR,
11786     ) -> Result {
11787         (self.copy_acceleration_structure_to_memory_khr)(device, deferred_operation, p_info)
11788     }
11789     #[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, ) -> Result11790     pub unsafe fn copy_memory_to_acceleration_structure_khr(
11791         &self,
11792         device: Device,
11793         deferred_operation: DeferredOperationKHR,
11794         p_info: *const CopyMemoryToAccelerationStructureInfoKHR,
11795     ) -> Result {
11796         (self.copy_memory_to_acceleration_structure_khr)(device, deferred_operation, p_info)
11797     }
11798     #[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, ) -> Result11799     pub unsafe fn write_acceleration_structures_properties_khr(
11800         &self,
11801         device: Device,
11802         acceleration_structure_count: u32,
11803         p_acceleration_structures: *const AccelerationStructureKHR,
11804         query_type: QueryType,
11805         data_size: usize,
11806         p_data: *mut c_void,
11807         stride: usize,
11808     ) -> Result {
11809         (self.write_acceleration_structures_properties_khr)(
11810             device,
11811             acceleration_structure_count,
11812             p_acceleration_structures,
11813             query_type,
11814             data_size,
11815             p_data,
11816             stride,
11817         )
11818     }
11819     #[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, )11820     pub unsafe fn cmd_copy_acceleration_structure_khr(
11821         &self,
11822         command_buffer: CommandBuffer,
11823         p_info: *const CopyAccelerationStructureInfoKHR,
11824     ) {
11825         (self.cmd_copy_acceleration_structure_khr)(command_buffer, p_info)
11826     }
11827     #[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, )11828     pub unsafe fn cmd_copy_acceleration_structure_to_memory_khr(
11829         &self,
11830         command_buffer: CommandBuffer,
11831         p_info: *const CopyAccelerationStructureToMemoryInfoKHR,
11832     ) {
11833         (self.cmd_copy_acceleration_structure_to_memory_khr)(command_buffer, p_info)
11834     }
11835     #[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, )11836     pub unsafe fn cmd_copy_memory_to_acceleration_structure_khr(
11837         &self,
11838         command_buffer: CommandBuffer,
11839         p_info: *const CopyMemoryToAccelerationStructureInfoKHR,
11840     ) {
11841         (self.cmd_copy_memory_to_acceleration_structure_khr)(command_buffer, p_info)
11842     }
11843     #[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, ) -> DeviceAddress11844     pub unsafe fn get_acceleration_structure_device_address_khr(
11845         &self,
11846         device: Device,
11847         p_info: *const AccelerationStructureDeviceAddressInfoKHR,
11848     ) -> DeviceAddress {
11849         (self.get_acceleration_structure_device_address_khr)(device, p_info)
11850     }
11851     #[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, )11852     pub unsafe fn cmd_write_acceleration_structures_properties_khr(
11853         &self,
11854         command_buffer: CommandBuffer,
11855         acceleration_structure_count: u32,
11856         p_acceleration_structures: *const AccelerationStructureKHR,
11857         query_type: QueryType,
11858         query_pool: QueryPool,
11859         first_query: u32,
11860     ) {
11861         (self.cmd_write_acceleration_structures_properties_khr)(
11862             command_buffer,
11863             acceleration_structure_count,
11864             p_acceleration_structures,
11865             query_type,
11866             query_pool,
11867             first_query,
11868         )
11869     }
11870     #[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, )11871     pub unsafe fn get_device_acceleration_structure_compatibility_khr(
11872         &self,
11873         device: Device,
11874         p_version_info: *const AccelerationStructureVersionInfoKHR,
11875         p_compatibility: *mut AccelerationStructureCompatibilityKHR,
11876     ) {
11877         (self.get_device_acceleration_structure_compatibility_khr)(
11878             device,
11879             p_version_info,
11880             p_compatibility,
11881         )
11882     }
11883     #[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, )11884     pub unsafe fn get_acceleration_structure_build_sizes_khr(
11885         &self,
11886         device: Device,
11887         build_type: AccelerationStructureBuildTypeKHR,
11888         p_build_info: *const AccelerationStructureBuildGeometryInfoKHR,
11889         p_max_primitive_counts: *const u32,
11890         p_size_info: *mut AccelerationStructureBuildSizesInfoKHR,
11891     ) {
11892         (self.get_acceleration_structure_build_sizes_khr)(
11893             device,
11894             build_type,
11895             p_build_info,
11896             p_max_primitive_counts,
11897             p_size_info,
11898         )
11899     }
11900 }
11901 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11902 impl StructureType {
11903     pub const WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR: Self = Self(1_000_150_007);
11904 }
11905 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11906 impl StructureType {
11907     pub const ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR: Self = Self(1_000_150_000);
11908 }
11909 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11910 impl StructureType {
11911     pub const ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR: Self = Self(1_000_150_002);
11912 }
11913 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11914 impl StructureType {
11915     pub const ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR: Self = Self(1_000_150_003);
11916 }
11917 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11918 impl StructureType {
11919     pub const ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR: Self = Self(1_000_150_004);
11920 }
11921 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11922 impl StructureType {
11923     pub const ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR: Self = Self(1_000_150_005);
11924 }
11925 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11926 impl StructureType {
11927     pub const ACCELERATION_STRUCTURE_GEOMETRY_KHR: Self = Self(1_000_150_006);
11928 }
11929 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11930 impl StructureType {
11931     pub const ACCELERATION_STRUCTURE_VERSION_INFO_KHR: Self = Self(1_000_150_009);
11932 }
11933 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11934 impl StructureType {
11935     pub const COPY_ACCELERATION_STRUCTURE_INFO_KHR: Self = Self(1_000_150_010);
11936 }
11937 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11938 impl StructureType {
11939     pub const COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR: Self = Self(1_000_150_011);
11940 }
11941 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11942 impl StructureType {
11943     pub const COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR: Self = Self(1_000_150_012);
11944 }
11945 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11946 impl StructureType {
11947     pub const PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: Self = Self(1_000_150_013);
11948 }
11949 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11950 impl StructureType {
11951     pub const PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR: Self = Self(1_000_150_014);
11952 }
11953 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11954 impl StructureType {
11955     pub const ACCELERATION_STRUCTURE_CREATE_INFO_KHR: Self = Self(1_000_150_017);
11956 }
11957 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11958 impl StructureType {
11959     pub const ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR: Self = Self(1_000_150_020);
11960 }
11961 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11962 impl PipelineStageFlags {
11963     pub const ACCELERATION_STRUCTURE_BUILD_KHR: Self = Self(0b10_0000_0000_0000_0000_0000_0000);
11964 }
11965 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11966 impl DescriptorType {
11967     pub const ACCELERATION_STRUCTURE_KHR: Self = Self(1_000_150_000);
11968 }
11969 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11970 impl AccessFlags {
11971     pub const ACCELERATION_STRUCTURE_READ_KHR: Self = Self(0b10_0000_0000_0000_0000_0000);
11972 }
11973 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11974 impl AccessFlags {
11975     pub const ACCELERATION_STRUCTURE_WRITE_KHR: Self = Self(0b100_0000_0000_0000_0000_0000);
11976 }
11977 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11978 impl QueryType {
11979     pub const ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR: Self = Self(1_000_150_000);
11980 }
11981 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11982 impl QueryType {
11983     pub const ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR: Self = Self(1_000_150_001);
11984 }
11985 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11986 impl ObjectType {
11987     pub const ACCELERATION_STRUCTURE_KHR: Self = Self(1_000_150_000);
11988 }
11989 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11990 impl DebugReportObjectTypeEXT {
11991     pub const ACCELERATION_STRUCTURE_KHR: Self = Self(1_000_150_000);
11992 }
11993 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11994 impl IndexType {
11995     pub const NONE_KHR: Self = Self(1_000_165_000);
11996 }
11997 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11998 impl FormatFeatureFlags {
11999     pub const ACCELERATION_STRUCTURE_VERTEX_BUFFER_KHR: Self =
12000         Self(0b10_0000_0000_0000_0000_0000_0000_0000);
12001 }
12002 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
12003 impl BufferUsageFlags {
12004     pub const ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_KHR: Self =
12005         Self(0b1000_0000_0000_0000_0000);
12006 }
12007 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
12008 impl BufferUsageFlags {
12009     pub const ACCELERATION_STRUCTURE_STORAGE_KHR: Self = Self(0b1_0000_0000_0000_0000_0000);
12010 }
12011 impl KhrRayTracingPipelineFn {
name() -> &'static ::std::ffi::CStr12012     pub fn name() -> &'static ::std::ffi::CStr {
12013         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_ray_tracing_pipeline\0")
12014             .expect("Wrong extension string")
12015     }
12016     pub const SPEC_VERSION: u32 = 1u32;
12017 }
12018 #[allow(non_camel_case_types)]
12019 pub type PFN_vkCmdTraceRaysKHR = unsafe extern "system" fn(
12020     command_buffer: CommandBuffer,
12021     p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12022     p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12023     p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12024     p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12025     width: u32,
12026     height: u32,
12027     depth: u32,
12028 );
12029 #[allow(non_camel_case_types)]
12030 pub type PFN_vkCreateRayTracingPipelinesKHR = unsafe extern "system" fn(
12031     device: Device,
12032     deferred_operation: DeferredOperationKHR,
12033     pipeline_cache: PipelineCache,
12034     create_info_count: u32,
12035     p_create_infos: *const RayTracingPipelineCreateInfoKHR,
12036     p_allocator: *const AllocationCallbacks,
12037     p_pipelines: *mut Pipeline,
12038 ) -> Result;
12039 #[allow(non_camel_case_types)]
12040 pub type PFN_vkGetRayTracingShaderGroupHandlesKHR = unsafe extern "system" fn(
12041     device: Device,
12042     pipeline: Pipeline,
12043     first_group: u32,
12044     group_count: u32,
12045     data_size: usize,
12046     p_data: *mut c_void,
12047 ) -> Result;
12048 #[allow(non_camel_case_types)]
12049 pub type PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR =
12050     unsafe extern "system" fn(
12051         device: Device,
12052         pipeline: Pipeline,
12053         first_group: u32,
12054         group_count: u32,
12055         data_size: usize,
12056         p_data: *mut c_void,
12057     ) -> Result;
12058 #[allow(non_camel_case_types)]
12059 pub type PFN_vkCmdTraceRaysIndirectKHR = unsafe extern "system" fn(
12060     command_buffer: CommandBuffer,
12061     p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12062     p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12063     p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12064     p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12065     indirect_device_address: DeviceAddress,
12066 );
12067 #[allow(non_camel_case_types)]
12068 pub type PFN_vkGetRayTracingShaderGroupStackSizeKHR = unsafe extern "system" fn(
12069     device: Device,
12070     pipeline: Pipeline,
12071     group: u32,
12072     group_shader: ShaderGroupShaderKHR,
12073 ) -> DeviceSize;
12074 #[allow(non_camel_case_types)]
12075 pub type PFN_vkCmdSetRayTracingPipelineStackSizeKHR =
12076     unsafe extern "system" fn(command_buffer: CommandBuffer, pipeline_stack_size: u32);
12077 #[derive(Clone)]
12078 pub struct KhrRayTracingPipelineFn {
12079     pub cmd_trace_rays_khr: PFN_vkCmdTraceRaysKHR,
12080     pub create_ray_tracing_pipelines_khr: PFN_vkCreateRayTracingPipelinesKHR,
12081     pub get_ray_tracing_shader_group_handles_khr: PFN_vkGetRayTracingShaderGroupHandlesKHR,
12082     pub get_ray_tracing_capture_replay_shader_group_handles_khr:
12083         PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR,
12084     pub cmd_trace_rays_indirect_khr: PFN_vkCmdTraceRaysIndirectKHR,
12085     pub get_ray_tracing_shader_group_stack_size_khr: PFN_vkGetRayTracingShaderGroupStackSizeKHR,
12086     pub cmd_set_ray_tracing_pipeline_stack_size_khr: PFN_vkCmdSetRayTracingPipelineStackSizeKHR,
12087 }
12088 unsafe impl Send for KhrRayTracingPipelineFn {}
12089 unsafe impl Sync for KhrRayTracingPipelineFn {}
12090 impl KhrRayTracingPipelineFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12091     pub fn load<F>(mut _f: F) -> Self
12092     where
12093         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12094     {
12095         KhrRayTracingPipelineFn {
12096             cmd_trace_rays_khr: unsafe {
12097                 unsafe extern "system" fn cmd_trace_rays_khr(
12098                     _command_buffer: CommandBuffer,
12099                     _p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12100                     _p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12101                     _p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12102                     _p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12103                     _width: u32,
12104                     _height: u32,
12105                     _depth: u32,
12106                 ) {
12107                     panic!(concat!("Unable to load ", stringify!(cmd_trace_rays_khr)))
12108                 }
12109                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdTraceRaysKHR\0");
12110                 let val = _f(cname);
12111                 if val.is_null() {
12112                     cmd_trace_rays_khr
12113                 } else {
12114                     ::std::mem::transmute(val)
12115                 }
12116             },
12117             create_ray_tracing_pipelines_khr: unsafe {
12118                 unsafe extern "system" fn create_ray_tracing_pipelines_khr(
12119                     _device: Device,
12120                     _deferred_operation: DeferredOperationKHR,
12121                     _pipeline_cache: PipelineCache,
12122                     _create_info_count: u32,
12123                     _p_create_infos: *const RayTracingPipelineCreateInfoKHR,
12124                     _p_allocator: *const AllocationCallbacks,
12125                     _p_pipelines: *mut Pipeline,
12126                 ) -> Result {
12127                     panic!(concat!(
12128                         "Unable to load ",
12129                         stringify!(create_ray_tracing_pipelines_khr)
12130                     ))
12131                 }
12132                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12133                     b"vkCreateRayTracingPipelinesKHR\0",
12134                 );
12135                 let val = _f(cname);
12136                 if val.is_null() {
12137                     create_ray_tracing_pipelines_khr
12138                 } else {
12139                     ::std::mem::transmute(val)
12140                 }
12141             },
12142             get_ray_tracing_shader_group_handles_khr: unsafe {
12143                 unsafe extern "system" fn get_ray_tracing_shader_group_handles_khr(
12144                     _device: Device,
12145                     _pipeline: Pipeline,
12146                     _first_group: u32,
12147                     _group_count: u32,
12148                     _data_size: usize,
12149                     _p_data: *mut c_void,
12150                 ) -> Result {
12151                     panic!(concat!(
12152                         "Unable to load ",
12153                         stringify!(get_ray_tracing_shader_group_handles_khr)
12154                     ))
12155                 }
12156                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12157                     b"vkGetRayTracingShaderGroupHandlesKHR\0",
12158                 );
12159                 let val = _f(cname);
12160                 if val.is_null() {
12161                     get_ray_tracing_shader_group_handles_khr
12162                 } else {
12163                     ::std::mem::transmute(val)
12164                 }
12165             },
12166             get_ray_tracing_capture_replay_shader_group_handles_khr: unsafe {
12167                 unsafe extern "system" fn get_ray_tracing_capture_replay_shader_group_handles_khr(
12168                     _device: Device,
12169                     _pipeline: Pipeline,
12170                     _first_group: u32,
12171                     _group_count: u32,
12172                     _data_size: usize,
12173                     _p_data: *mut c_void,
12174                 ) -> Result {
12175                     panic!(concat!(
12176                         "Unable to load ",
12177                         stringify!(get_ray_tracing_capture_replay_shader_group_handles_khr)
12178                     ))
12179                 }
12180                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12181                     b"vkGetRayTracingCaptureReplayShaderGroupHandlesKHR\0",
12182                 );
12183                 let val = _f(cname);
12184                 if val.is_null() {
12185                     get_ray_tracing_capture_replay_shader_group_handles_khr
12186                 } else {
12187                     ::std::mem::transmute(val)
12188                 }
12189             },
12190             cmd_trace_rays_indirect_khr: unsafe {
12191                 unsafe extern "system" fn cmd_trace_rays_indirect_khr(
12192                     _command_buffer: CommandBuffer,
12193                     _p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12194                     _p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12195                     _p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12196                     _p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12197                     _indirect_device_address: DeviceAddress,
12198                 ) {
12199                     panic!(concat!(
12200                         "Unable to load ",
12201                         stringify!(cmd_trace_rays_indirect_khr)
12202                     ))
12203                 }
12204                 let cname =
12205                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdTraceRaysIndirectKHR\0");
12206                 let val = _f(cname);
12207                 if val.is_null() {
12208                     cmd_trace_rays_indirect_khr
12209                 } else {
12210                     ::std::mem::transmute(val)
12211                 }
12212             },
12213             get_ray_tracing_shader_group_stack_size_khr: unsafe {
12214                 unsafe extern "system" fn get_ray_tracing_shader_group_stack_size_khr(
12215                     _device: Device,
12216                     _pipeline: Pipeline,
12217                     _group: u32,
12218                     _group_shader: ShaderGroupShaderKHR,
12219                 ) -> DeviceSize {
12220                     panic!(concat!(
12221                         "Unable to load ",
12222                         stringify!(get_ray_tracing_shader_group_stack_size_khr)
12223                     ))
12224                 }
12225                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12226                     b"vkGetRayTracingShaderGroupStackSizeKHR\0",
12227                 );
12228                 let val = _f(cname);
12229                 if val.is_null() {
12230                     get_ray_tracing_shader_group_stack_size_khr
12231                 } else {
12232                     ::std::mem::transmute(val)
12233                 }
12234             },
12235             cmd_set_ray_tracing_pipeline_stack_size_khr: unsafe {
12236                 unsafe extern "system" fn cmd_set_ray_tracing_pipeline_stack_size_khr(
12237                     _command_buffer: CommandBuffer,
12238                     _pipeline_stack_size: u32,
12239                 ) {
12240                     panic!(concat!(
12241                         "Unable to load ",
12242                         stringify!(cmd_set_ray_tracing_pipeline_stack_size_khr)
12243                     ))
12244                 }
12245                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12246                     b"vkCmdSetRayTracingPipelineStackSizeKHR\0",
12247                 );
12248                 let val = _f(cname);
12249                 if val.is_null() {
12250                     cmd_set_ray_tracing_pipeline_stack_size_khr
12251                 } else {
12252                     ::std::mem::transmute(val)
12253                 }
12254             },
12255         }
12256     }
12257     #[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, )12258     pub unsafe fn cmd_trace_rays_khr(
12259         &self,
12260         command_buffer: CommandBuffer,
12261         p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12262         p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12263         p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12264         p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12265         width: u32,
12266         height: u32,
12267         depth: u32,
12268     ) {
12269         (self.cmd_trace_rays_khr)(
12270             command_buffer,
12271             p_raygen_shader_binding_table,
12272             p_miss_shader_binding_table,
12273             p_hit_shader_binding_table,
12274             p_callable_shader_binding_table,
12275             width,
12276             height,
12277             depth,
12278         )
12279     }
12280     #[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, ) -> Result12281     pub unsafe fn create_ray_tracing_pipelines_khr(
12282         &self,
12283         device: Device,
12284         deferred_operation: DeferredOperationKHR,
12285         pipeline_cache: PipelineCache,
12286         create_info_count: u32,
12287         p_create_infos: *const RayTracingPipelineCreateInfoKHR,
12288         p_allocator: *const AllocationCallbacks,
12289         p_pipelines: *mut Pipeline,
12290     ) -> Result {
12291         (self.create_ray_tracing_pipelines_khr)(
12292             device,
12293             deferred_operation,
12294             pipeline_cache,
12295             create_info_count,
12296             p_create_infos,
12297             p_allocator,
12298             p_pipelines,
12299         )
12300     }
12301     #[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, ) -> Result12302     pub unsafe fn get_ray_tracing_shader_group_handles_khr(
12303         &self,
12304         device: Device,
12305         pipeline: Pipeline,
12306         first_group: u32,
12307         group_count: u32,
12308         data_size: usize,
12309         p_data: *mut c_void,
12310     ) -> Result {
12311         (self.get_ray_tracing_shader_group_handles_khr)(
12312             device,
12313             pipeline,
12314             first_group,
12315             group_count,
12316             data_size,
12317             p_data,
12318         )
12319     }
12320     #[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, ) -> Result12321     pub unsafe fn get_ray_tracing_capture_replay_shader_group_handles_khr(
12322         &self,
12323         device: Device,
12324         pipeline: Pipeline,
12325         first_group: u32,
12326         group_count: u32,
12327         data_size: usize,
12328         p_data: *mut c_void,
12329     ) -> Result {
12330         (self.get_ray_tracing_capture_replay_shader_group_handles_khr)(
12331             device,
12332             pipeline,
12333             first_group,
12334             group_count,
12335             data_size,
12336             p_data,
12337         )
12338     }
12339     #[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, )12340     pub unsafe fn cmd_trace_rays_indirect_khr(
12341         &self,
12342         command_buffer: CommandBuffer,
12343         p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12344         p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12345         p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12346         p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR,
12347         indirect_device_address: DeviceAddress,
12348     ) {
12349         (self.cmd_trace_rays_indirect_khr)(
12350             command_buffer,
12351             p_raygen_shader_binding_table,
12352             p_miss_shader_binding_table,
12353             p_hit_shader_binding_table,
12354             p_callable_shader_binding_table,
12355             indirect_device_address,
12356         )
12357     }
12358     #[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, ) -> DeviceSize12359     pub unsafe fn get_ray_tracing_shader_group_stack_size_khr(
12360         &self,
12361         device: Device,
12362         pipeline: Pipeline,
12363         group: u32,
12364         group_shader: ShaderGroupShaderKHR,
12365     ) -> DeviceSize {
12366         (self.get_ray_tracing_shader_group_stack_size_khr)(device, pipeline, group, group_shader)
12367     }
12368     #[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, )12369     pub unsafe fn cmd_set_ray_tracing_pipeline_stack_size_khr(
12370         &self,
12371         command_buffer: CommandBuffer,
12372         pipeline_stack_size: u32,
12373     ) {
12374         (self.cmd_set_ray_tracing_pipeline_stack_size_khr)(command_buffer, pipeline_stack_size)
12375     }
12376 }
12377 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
12378 impl StructureType {
12379     pub const PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR: Self = Self(1_000_347_000);
12380 }
12381 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
12382 impl StructureType {
12383     pub const PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR: Self = Self(1_000_347_001);
12384 }
12385 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
12386 impl StructureType {
12387     pub const RAY_TRACING_PIPELINE_CREATE_INFO_KHR: Self = Self(1_000_150_015);
12388 }
12389 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
12390 impl StructureType {
12391     pub const RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR: Self = Self(1_000_150_016);
12392 }
12393 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
12394 impl StructureType {
12395     pub const RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR: Self = Self(1_000_150_018);
12396 }
12397 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
12398 impl ShaderStageFlags {
12399     pub const RAYGEN_KHR: Self = Self(0b1_0000_0000);
12400 }
12401 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
12402 impl ShaderStageFlags {
12403     pub const ANY_HIT_KHR: Self = Self(0b10_0000_0000);
12404 }
12405 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
12406 impl ShaderStageFlags {
12407     pub const CLOSEST_HIT_KHR: Self = Self(0b100_0000_0000);
12408 }
12409 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
12410 impl ShaderStageFlags {
12411     pub const MISS_KHR: Self = Self(0b1000_0000_0000);
12412 }
12413 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
12414 impl ShaderStageFlags {
12415     pub const INTERSECTION_KHR: Self = Self(0b1_0000_0000_0000);
12416 }
12417 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
12418 impl ShaderStageFlags {
12419     pub const CALLABLE_KHR: Self = Self(0b10_0000_0000_0000);
12420 }
12421 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
12422 impl PipelineStageFlags {
12423     pub const RAY_TRACING_SHADER_KHR: Self = Self(0b10_0000_0000_0000_0000_0000);
12424 }
12425 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
12426 impl BufferUsageFlags {
12427     pub const SHADER_BINDING_TABLE_KHR: Self = Self(0b100_0000_0000);
12428 }
12429 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
12430 impl PipelineBindPoint {
12431     pub const RAY_TRACING_KHR: Self = Self(1_000_165_000);
12432 }
12433 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
12434 impl PipelineCreateFlags {
12435     pub const RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_KHR: Self = Self(0b100_0000_0000_0000);
12436 }
12437 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
12438 impl PipelineCreateFlags {
12439     pub const RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_KHR: Self = Self(0b1000_0000_0000_0000);
12440 }
12441 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
12442 impl PipelineCreateFlags {
12443     pub const RAY_TRACING_NO_NULL_MISS_SHADERS_KHR: Self = Self(0b1_0000_0000_0000_0000);
12444 }
12445 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
12446 impl PipelineCreateFlags {
12447     pub const RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_KHR: Self = Self(0b10_0000_0000_0000_0000);
12448 }
12449 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
12450 impl PipelineCreateFlags {
12451     pub const RAY_TRACING_SKIP_TRIANGLES_KHR: Self = Self(0b1_0000_0000_0000);
12452 }
12453 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
12454 impl PipelineCreateFlags {
12455     pub const RAY_TRACING_SKIP_AABBS_KHR: Self = Self(0b10_0000_0000_0000);
12456 }
12457 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
12458 impl PipelineCreateFlags {
12459     pub const RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_KHR: Self =
12460         Self(0b1000_0000_0000_0000_0000);
12461 }
12462 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
12463 impl DynamicState {
12464     pub const RAY_TRACING_PIPELINE_STACK_SIZE_KHR: Self = Self(1_000_347_000);
12465 }
12466 impl KhrRayQueryFn {
name() -> &'static ::std::ffi::CStr12467     pub fn name() -> &'static ::std::ffi::CStr {
12468         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_ray_query\0")
12469             .expect("Wrong extension string")
12470     }
12471     pub const SPEC_VERSION: u32 = 1u32;
12472 }
12473 #[derive(Clone)]
12474 pub struct KhrRayQueryFn {}
12475 unsafe impl Send for KhrRayQueryFn {}
12476 unsafe impl Sync for KhrRayQueryFn {}
12477 impl KhrRayQueryFn {
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         KhrRayQueryFn {}
12483     }
12484 }
12485 #[doc = "Generated from 'VK_KHR_ray_query'"]
12486 impl StructureType {
12487     pub const PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR: Self = Self(1_000_348_013);
12488 }
12489 impl NvExtension152Fn {
name() -> &'static ::std::ffi::CStr12490     pub fn name() -> &'static ::std::ffi::CStr {
12491         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_extension_152\0")
12492             .expect("Wrong extension string")
12493     }
12494     pub const SPEC_VERSION: u32 = 0u32;
12495 }
12496 #[derive(Clone)]
12497 pub struct NvExtension152Fn {}
12498 unsafe impl Send for NvExtension152Fn {}
12499 unsafe impl Sync for NvExtension152Fn {}
12500 impl NvExtension152Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12501     pub fn load<F>(mut _f: F) -> Self
12502     where
12503         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12504     {
12505         NvExtension152Fn {}
12506     }
12507 }
12508 impl NvFramebufferMixedSamplesFn {
name() -> &'static ::std::ffi::CStr12509     pub fn name() -> &'static ::std::ffi::CStr {
12510         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_framebuffer_mixed_samples\0")
12511             .expect("Wrong extension string")
12512     }
12513     pub const SPEC_VERSION: u32 = 1u32;
12514 }
12515 #[derive(Clone)]
12516 pub struct NvFramebufferMixedSamplesFn {}
12517 unsafe impl Send for NvFramebufferMixedSamplesFn {}
12518 unsafe impl Sync for NvFramebufferMixedSamplesFn {}
12519 impl NvFramebufferMixedSamplesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12520     pub fn load<F>(mut _f: F) -> Self
12521     where
12522         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12523     {
12524         NvFramebufferMixedSamplesFn {}
12525     }
12526 }
12527 #[doc = "Generated from 'VK_NV_framebuffer_mixed_samples'"]
12528 impl StructureType {
12529     pub const PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV: Self = Self(1_000_152_000);
12530 }
12531 impl NvFillRectangleFn {
name() -> &'static ::std::ffi::CStr12532     pub fn name() -> &'static ::std::ffi::CStr {
12533         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_fill_rectangle\0")
12534             .expect("Wrong extension string")
12535     }
12536     pub const SPEC_VERSION: u32 = 1u32;
12537 }
12538 #[derive(Clone)]
12539 pub struct NvFillRectangleFn {}
12540 unsafe impl Send for NvFillRectangleFn {}
12541 unsafe impl Sync for NvFillRectangleFn {}
12542 impl NvFillRectangleFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12543     pub fn load<F>(mut _f: F) -> Self
12544     where
12545         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12546     {
12547         NvFillRectangleFn {}
12548     }
12549 }
12550 #[doc = "Generated from 'VK_NV_fill_rectangle'"]
12551 impl PolygonMode {
12552     pub const FILL_RECTANGLE_NV: Self = Self(1_000_153_000);
12553 }
12554 impl NvShaderSmBuiltinsFn {
name() -> &'static ::std::ffi::CStr12555     pub fn name() -> &'static ::std::ffi::CStr {
12556         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_shader_sm_builtins\0")
12557             .expect("Wrong extension string")
12558     }
12559     pub const SPEC_VERSION: u32 = 1u32;
12560 }
12561 #[derive(Clone)]
12562 pub struct NvShaderSmBuiltinsFn {}
12563 unsafe impl Send for NvShaderSmBuiltinsFn {}
12564 unsafe impl Sync for NvShaderSmBuiltinsFn {}
12565 impl NvShaderSmBuiltinsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12566     pub fn load<F>(mut _f: F) -> Self
12567     where
12568         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12569     {
12570         NvShaderSmBuiltinsFn {}
12571     }
12572 }
12573 #[doc = "Generated from 'VK_NV_shader_sm_builtins'"]
12574 impl StructureType {
12575     pub const PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV: Self = Self(1_000_154_000);
12576 }
12577 #[doc = "Generated from 'VK_NV_shader_sm_builtins'"]
12578 impl StructureType {
12579     pub const PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV: Self = Self(1_000_154_001);
12580 }
12581 impl ExtPostDepthCoverageFn {
name() -> &'static ::std::ffi::CStr12582     pub fn name() -> &'static ::std::ffi::CStr {
12583         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_post_depth_coverage\0")
12584             .expect("Wrong extension string")
12585     }
12586     pub const SPEC_VERSION: u32 = 1u32;
12587 }
12588 #[derive(Clone)]
12589 pub struct ExtPostDepthCoverageFn {}
12590 unsafe impl Send for ExtPostDepthCoverageFn {}
12591 unsafe impl Sync for ExtPostDepthCoverageFn {}
12592 impl ExtPostDepthCoverageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12593     pub fn load<F>(mut _f: F) -> Self
12594     where
12595         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12596     {
12597         ExtPostDepthCoverageFn {}
12598     }
12599 }
12600 impl KhrSamplerYcbcrConversionFn {
name() -> &'static ::std::ffi::CStr12601     pub fn name() -> &'static ::std::ffi::CStr {
12602         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_sampler_ycbcr_conversion\0")
12603             .expect("Wrong extension string")
12604     }
12605     pub const SPEC_VERSION: u32 = 14u32;
12606 }
12607 #[allow(non_camel_case_types)]
12608 pub type PFN_vkCreateSamplerYcbcrConversion = unsafe extern "system" fn(
12609     device: Device,
12610     p_create_info: *const SamplerYcbcrConversionCreateInfo,
12611     p_allocator: *const AllocationCallbacks,
12612     p_ycbcr_conversion: *mut SamplerYcbcrConversion,
12613 ) -> Result;
12614 #[allow(non_camel_case_types)]
12615 pub type PFN_vkDestroySamplerYcbcrConversion = unsafe extern "system" fn(
12616     device: Device,
12617     ycbcr_conversion: SamplerYcbcrConversion,
12618     p_allocator: *const AllocationCallbacks,
12619 );
12620 #[derive(Clone)]
12621 pub struct KhrSamplerYcbcrConversionFn {
12622     pub create_sampler_ycbcr_conversion_khr: PFN_vkCreateSamplerYcbcrConversion,
12623     pub destroy_sampler_ycbcr_conversion_khr: PFN_vkDestroySamplerYcbcrConversion,
12624 }
12625 unsafe impl Send for KhrSamplerYcbcrConversionFn {}
12626 unsafe impl Sync for KhrSamplerYcbcrConversionFn {}
12627 impl KhrSamplerYcbcrConversionFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12628     pub fn load<F>(mut _f: F) -> Self
12629     where
12630         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12631     {
12632         KhrSamplerYcbcrConversionFn {
12633             create_sampler_ycbcr_conversion_khr: unsafe {
12634                 unsafe extern "system" fn create_sampler_ycbcr_conversion_khr(
12635                     _device: Device,
12636                     _p_create_info: *const SamplerYcbcrConversionCreateInfo,
12637                     _p_allocator: *const AllocationCallbacks,
12638                     _p_ycbcr_conversion: *mut SamplerYcbcrConversion,
12639                 ) -> Result {
12640                     panic!(concat!(
12641                         "Unable to load ",
12642                         stringify!(create_sampler_ycbcr_conversion_khr)
12643                     ))
12644                 }
12645                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12646                     b"vkCreateSamplerYcbcrConversionKHR\0",
12647                 );
12648                 let val = _f(cname);
12649                 if val.is_null() {
12650                     create_sampler_ycbcr_conversion_khr
12651                 } else {
12652                     ::std::mem::transmute(val)
12653                 }
12654             },
12655             destroy_sampler_ycbcr_conversion_khr: unsafe {
12656                 unsafe extern "system" fn destroy_sampler_ycbcr_conversion_khr(
12657                     _device: Device,
12658                     _ycbcr_conversion: SamplerYcbcrConversion,
12659                     _p_allocator: *const AllocationCallbacks,
12660                 ) {
12661                     panic!(concat!(
12662                         "Unable to load ",
12663                         stringify!(destroy_sampler_ycbcr_conversion_khr)
12664                     ))
12665                 }
12666                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12667                     b"vkDestroySamplerYcbcrConversionKHR\0",
12668                 );
12669                 let val = _f(cname);
12670                 if val.is_null() {
12671                     destroy_sampler_ycbcr_conversion_khr
12672                 } else {
12673                     ::std::mem::transmute(val)
12674                 }
12675             },
12676         }
12677     }
12678     #[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, ) -> Result12679     pub unsafe fn create_sampler_ycbcr_conversion_khr(
12680         &self,
12681         device: Device,
12682         p_create_info: *const SamplerYcbcrConversionCreateInfo,
12683         p_allocator: *const AllocationCallbacks,
12684         p_ycbcr_conversion: *mut SamplerYcbcrConversion,
12685     ) -> Result {
12686         (self.create_sampler_ycbcr_conversion_khr)(
12687             device,
12688             p_create_info,
12689             p_allocator,
12690             p_ycbcr_conversion,
12691         )
12692     }
12693     #[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, )12694     pub unsafe fn destroy_sampler_ycbcr_conversion_khr(
12695         &self,
12696         device: Device,
12697         ycbcr_conversion: SamplerYcbcrConversion,
12698         p_allocator: *const AllocationCallbacks,
12699     ) {
12700         (self.destroy_sampler_ycbcr_conversion_khr)(device, ycbcr_conversion, p_allocator)
12701     }
12702 }
12703 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12704 impl StructureType {
12705     pub const SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR: Self =
12706         Self::SAMPLER_YCBCR_CONVERSION_CREATE_INFO;
12707 }
12708 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12709 impl StructureType {
12710     pub const SAMPLER_YCBCR_CONVERSION_INFO_KHR: Self = Self::SAMPLER_YCBCR_CONVERSION_INFO;
12711 }
12712 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12713 impl StructureType {
12714     pub const BIND_IMAGE_PLANE_MEMORY_INFO_KHR: Self = Self::BIND_IMAGE_PLANE_MEMORY_INFO;
12715 }
12716 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12717 impl StructureType {
12718     pub const IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR: Self =
12719         Self::IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO;
12720 }
12721 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12722 impl StructureType {
12723     pub const PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR: Self =
12724         Self::PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES;
12725 }
12726 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12727 impl StructureType {
12728     pub const SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR: Self =
12729         Self::SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES;
12730 }
12731 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12732 impl DebugReportObjectTypeEXT {
12733     pub const SAMPLER_YCBCR_CONVERSION_KHR: Self = Self::SAMPLER_YCBCR_CONVERSION;
12734 }
12735 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12736 impl ObjectType {
12737     pub const SAMPLER_YCBCR_CONVERSION_KHR: Self = Self::SAMPLER_YCBCR_CONVERSION;
12738 }
12739 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12740 impl Format {
12741     pub const G8B8G8R8_422_UNORM_KHR: Self = Self::G8B8G8R8_422_UNORM;
12742 }
12743 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12744 impl Format {
12745     pub const B8G8R8G8_422_UNORM_KHR: Self = Self::B8G8R8G8_422_UNORM;
12746 }
12747 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12748 impl Format {
12749     pub const G8_B8_R8_3PLANE_420_UNORM_KHR: Self = Self::G8_B8_R8_3PLANE_420_UNORM;
12750 }
12751 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12752 impl Format {
12753     pub const G8_B8R8_2PLANE_420_UNORM_KHR: Self = Self::G8_B8R8_2PLANE_420_UNORM;
12754 }
12755 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12756 impl Format {
12757     pub const G8_B8_R8_3PLANE_422_UNORM_KHR: Self = Self::G8_B8_R8_3PLANE_422_UNORM;
12758 }
12759 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12760 impl Format {
12761     pub const G8_B8R8_2PLANE_422_UNORM_KHR: Self = Self::G8_B8R8_2PLANE_422_UNORM;
12762 }
12763 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12764 impl Format {
12765     pub const G8_B8_R8_3PLANE_444_UNORM_KHR: Self = Self::G8_B8_R8_3PLANE_444_UNORM;
12766 }
12767 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12768 impl Format {
12769     pub const R10X6_UNORM_PACK16_KHR: Self = Self::R10X6_UNORM_PACK16;
12770 }
12771 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12772 impl Format {
12773     pub const R10X6G10X6_UNORM_2PACK16_KHR: Self = Self::R10X6G10X6_UNORM_2PACK16;
12774 }
12775 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12776 impl Format {
12777     pub const R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR: Self =
12778         Self::R10X6G10X6B10X6A10X6_UNORM_4PACK16;
12779 }
12780 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12781 impl Format {
12782     pub const G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR: Self =
12783         Self::G10X6B10X6G10X6R10X6_422_UNORM_4PACK16;
12784 }
12785 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12786 impl Format {
12787     pub const B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR: Self =
12788         Self::B10X6G10X6R10X6G10X6_422_UNORM_4PACK16;
12789 }
12790 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12791 impl Format {
12792     pub const G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR: Self =
12793         Self::G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16;
12794 }
12795 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12796 impl Format {
12797     pub const G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR: Self =
12798         Self::G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16;
12799 }
12800 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12801 impl Format {
12802     pub const G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR: Self =
12803         Self::G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16;
12804 }
12805 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12806 impl Format {
12807     pub const G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR: Self =
12808         Self::G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16;
12809 }
12810 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12811 impl Format {
12812     pub const G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR: Self =
12813         Self::G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16;
12814 }
12815 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12816 impl Format {
12817     pub const R12X4_UNORM_PACK16_KHR: Self = Self::R12X4_UNORM_PACK16;
12818 }
12819 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12820 impl Format {
12821     pub const R12X4G12X4_UNORM_2PACK16_KHR: Self = Self::R12X4G12X4_UNORM_2PACK16;
12822 }
12823 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12824 impl Format {
12825     pub const R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR: Self =
12826         Self::R12X4G12X4B12X4A12X4_UNORM_4PACK16;
12827 }
12828 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12829 impl Format {
12830     pub const G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR: Self =
12831         Self::G12X4B12X4G12X4R12X4_422_UNORM_4PACK16;
12832 }
12833 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12834 impl Format {
12835     pub const B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR: Self =
12836         Self::B12X4G12X4R12X4G12X4_422_UNORM_4PACK16;
12837 }
12838 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12839 impl Format {
12840     pub const G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR: Self =
12841         Self::G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16;
12842 }
12843 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12844 impl Format {
12845     pub const G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR: Self =
12846         Self::G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16;
12847 }
12848 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12849 impl Format {
12850     pub const G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR: Self =
12851         Self::G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16;
12852 }
12853 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12854 impl Format {
12855     pub const G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR: Self =
12856         Self::G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16;
12857 }
12858 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12859 impl Format {
12860     pub const G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR: Self =
12861         Self::G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16;
12862 }
12863 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12864 impl Format {
12865     pub const G16B16G16R16_422_UNORM_KHR: Self = Self::G16B16G16R16_422_UNORM;
12866 }
12867 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12868 impl Format {
12869     pub const B16G16R16G16_422_UNORM_KHR: Self = Self::B16G16R16G16_422_UNORM;
12870 }
12871 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12872 impl Format {
12873     pub const G16_B16_R16_3PLANE_420_UNORM_KHR: Self = Self::G16_B16_R16_3PLANE_420_UNORM;
12874 }
12875 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12876 impl Format {
12877     pub const G16_B16R16_2PLANE_420_UNORM_KHR: Self = Self::G16_B16R16_2PLANE_420_UNORM;
12878 }
12879 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12880 impl Format {
12881     pub const G16_B16_R16_3PLANE_422_UNORM_KHR: Self = Self::G16_B16_R16_3PLANE_422_UNORM;
12882 }
12883 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12884 impl Format {
12885     pub const G16_B16R16_2PLANE_422_UNORM_KHR: Self = Self::G16_B16R16_2PLANE_422_UNORM;
12886 }
12887 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12888 impl Format {
12889     pub const G16_B16_R16_3PLANE_444_UNORM_KHR: Self = Self::G16_B16_R16_3PLANE_444_UNORM;
12890 }
12891 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12892 impl ImageAspectFlags {
12893     pub const PLANE_0_KHR: Self = Self::PLANE_0;
12894 }
12895 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12896 impl ImageAspectFlags {
12897     pub const PLANE_1_KHR: Self = Self::PLANE_1;
12898 }
12899 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12900 impl ImageAspectFlags {
12901     pub const PLANE_2_KHR: Self = Self::PLANE_2;
12902 }
12903 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12904 impl ImageCreateFlags {
12905     pub const DISJOINT_KHR: Self = Self::DISJOINT;
12906 }
12907 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12908 impl FormatFeatureFlags {
12909     pub const MIDPOINT_CHROMA_SAMPLES_KHR: Self = Self::MIDPOINT_CHROMA_SAMPLES;
12910 }
12911 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12912 impl FormatFeatureFlags {
12913     pub const SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_KHR: Self =
12914         Self::SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER;
12915 }
12916 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12917 impl FormatFeatureFlags {
12918     pub const SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_KHR: Self =
12919         Self::SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER;
12920 }
12921 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12922 impl FormatFeatureFlags {
12923     pub const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_KHR: Self =
12924         Self::SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT;
12925 }
12926 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12927 impl FormatFeatureFlags {
12928     pub const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_KHR: Self =
12929         Self::SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE;
12930 }
12931 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12932 impl FormatFeatureFlags {
12933     pub const DISJOINT_KHR: Self = Self::DISJOINT;
12934 }
12935 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12936 impl FormatFeatureFlags {
12937     pub const COSITED_CHROMA_SAMPLES_KHR: Self = Self::COSITED_CHROMA_SAMPLES;
12938 }
12939 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12940 impl SamplerYcbcrModelConversion {
12941     pub const RGB_IDENTITY_KHR: Self = Self::RGB_IDENTITY;
12942 }
12943 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12944 impl SamplerYcbcrModelConversion {
12945     pub const YCBCR_IDENTITY_KHR: Self = Self::YCBCR_IDENTITY;
12946 }
12947 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12948 impl SamplerYcbcrModelConversion {
12949     pub const YCBCR_709_KHR: Self = Self::YCBCR_709;
12950 }
12951 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12952 impl SamplerYcbcrModelConversion {
12953     pub const YCBCR_601_KHR: Self = Self::YCBCR_601;
12954 }
12955 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12956 impl SamplerYcbcrModelConversion {
12957     pub const YCBCR_2020_KHR: Self = Self::YCBCR_2020;
12958 }
12959 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12960 impl SamplerYcbcrRange {
12961     pub const ITU_FULL_KHR: Self = Self::ITU_FULL;
12962 }
12963 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12964 impl SamplerYcbcrRange {
12965     pub const ITU_NARROW_KHR: Self = Self::ITU_NARROW;
12966 }
12967 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12968 impl ChromaLocation {
12969     pub const COSITED_EVEN_KHR: Self = Self::COSITED_EVEN;
12970 }
12971 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
12972 impl ChromaLocation {
12973     pub const MIDPOINT_KHR: Self = Self::MIDPOINT;
12974 }
12975 impl KhrBindMemory2Fn {
name() -> &'static ::std::ffi::CStr12976     pub fn name() -> &'static ::std::ffi::CStr {
12977         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_bind_memory2\0")
12978             .expect("Wrong extension string")
12979     }
12980     pub const SPEC_VERSION: u32 = 1u32;
12981 }
12982 #[allow(non_camel_case_types)]
12983 pub type PFN_vkBindBufferMemory2 = unsafe extern "system" fn(
12984     device: Device,
12985     bind_info_count: u32,
12986     p_bind_infos: *const BindBufferMemoryInfo,
12987 ) -> Result;
12988 #[allow(non_camel_case_types)]
12989 pub type PFN_vkBindImageMemory2 = unsafe extern "system" fn(
12990     device: Device,
12991     bind_info_count: u32,
12992     p_bind_infos: *const BindImageMemoryInfo,
12993 ) -> Result;
12994 #[derive(Clone)]
12995 pub struct KhrBindMemory2Fn {
12996     pub bind_buffer_memory2_khr: PFN_vkBindBufferMemory2,
12997     pub bind_image_memory2_khr: PFN_vkBindImageMemory2,
12998 }
12999 unsafe impl Send for KhrBindMemory2Fn {}
13000 unsafe impl Sync for KhrBindMemory2Fn {}
13001 impl KhrBindMemory2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13002     pub fn load<F>(mut _f: F) -> Self
13003     where
13004         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13005     {
13006         KhrBindMemory2Fn {
13007             bind_buffer_memory2_khr: unsafe {
13008                 unsafe extern "system" fn bind_buffer_memory2_khr(
13009                     _device: Device,
13010                     _bind_info_count: u32,
13011                     _p_bind_infos: *const BindBufferMemoryInfo,
13012                 ) -> Result {
13013                     panic!(concat!(
13014                         "Unable to load ",
13015                         stringify!(bind_buffer_memory2_khr)
13016                     ))
13017                 }
13018                 let cname =
13019                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkBindBufferMemory2KHR\0");
13020                 let val = _f(cname);
13021                 if val.is_null() {
13022                     bind_buffer_memory2_khr
13023                 } else {
13024                     ::std::mem::transmute(val)
13025                 }
13026             },
13027             bind_image_memory2_khr: unsafe {
13028                 unsafe extern "system" fn bind_image_memory2_khr(
13029                     _device: Device,
13030                     _bind_info_count: u32,
13031                     _p_bind_infos: *const BindImageMemoryInfo,
13032                 ) -> Result {
13033                     panic!(concat!(
13034                         "Unable to load ",
13035                         stringify!(bind_image_memory2_khr)
13036                     ))
13037                 }
13038                 let cname =
13039                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkBindImageMemory2KHR\0");
13040                 let val = _f(cname);
13041                 if val.is_null() {
13042                     bind_image_memory2_khr
13043                 } else {
13044                     ::std::mem::transmute(val)
13045                 }
13046             },
13047         }
13048     }
13049     #[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, ) -> Result13050     pub unsafe fn bind_buffer_memory2_khr(
13051         &self,
13052         device: Device,
13053         bind_info_count: u32,
13054         p_bind_infos: *const BindBufferMemoryInfo,
13055     ) -> Result {
13056         (self.bind_buffer_memory2_khr)(device, bind_info_count, p_bind_infos)
13057     }
13058     #[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, ) -> Result13059     pub unsafe fn bind_image_memory2_khr(
13060         &self,
13061         device: Device,
13062         bind_info_count: u32,
13063         p_bind_infos: *const BindImageMemoryInfo,
13064     ) -> Result {
13065         (self.bind_image_memory2_khr)(device, bind_info_count, p_bind_infos)
13066     }
13067 }
13068 #[doc = "Generated from 'VK_KHR_bind_memory2'"]
13069 impl StructureType {
13070     pub const BIND_BUFFER_MEMORY_INFO_KHR: Self = Self::BIND_BUFFER_MEMORY_INFO;
13071 }
13072 #[doc = "Generated from 'VK_KHR_bind_memory2'"]
13073 impl StructureType {
13074     pub const BIND_IMAGE_MEMORY_INFO_KHR: Self = Self::BIND_IMAGE_MEMORY_INFO;
13075 }
13076 #[doc = "Generated from 'VK_KHR_bind_memory2'"]
13077 impl ImageCreateFlags {
13078     pub const ALIAS_KHR: Self = Self::ALIAS;
13079 }
13080 impl ExtImageDrmFormatModifierFn {
name() -> &'static ::std::ffi::CStr13081     pub fn name() -> &'static ::std::ffi::CStr {
13082         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_image_drm_format_modifier\0")
13083             .expect("Wrong extension string")
13084     }
13085     pub const SPEC_VERSION: u32 = 1u32;
13086 }
13087 #[allow(non_camel_case_types)]
13088 pub type PFN_vkGetImageDrmFormatModifierPropertiesEXT = unsafe extern "system" fn(
13089     device: Device,
13090     image: Image,
13091     p_properties: *mut ImageDrmFormatModifierPropertiesEXT,
13092 ) -> Result;
13093 #[derive(Clone)]
13094 pub struct ExtImageDrmFormatModifierFn {
13095     pub get_image_drm_format_modifier_properties_ext: PFN_vkGetImageDrmFormatModifierPropertiesEXT,
13096 }
13097 unsafe impl Send for ExtImageDrmFormatModifierFn {}
13098 unsafe impl Sync for ExtImageDrmFormatModifierFn {}
13099 impl ExtImageDrmFormatModifierFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13100     pub fn load<F>(mut _f: F) -> Self
13101     where
13102         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13103     {
13104         ExtImageDrmFormatModifierFn {
13105             get_image_drm_format_modifier_properties_ext: unsafe {
13106                 unsafe extern "system" fn get_image_drm_format_modifier_properties_ext(
13107                     _device: Device,
13108                     _image: Image,
13109                     _p_properties: *mut ImageDrmFormatModifierPropertiesEXT,
13110                 ) -> Result {
13111                     panic!(concat!(
13112                         "Unable to load ",
13113                         stringify!(get_image_drm_format_modifier_properties_ext)
13114                     ))
13115                 }
13116                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13117                     b"vkGetImageDrmFormatModifierPropertiesEXT\0",
13118                 );
13119                 let val = _f(cname);
13120                 if val.is_null() {
13121                     get_image_drm_format_modifier_properties_ext
13122                 } else {
13123                     ::std::mem::transmute(val)
13124                 }
13125             },
13126         }
13127     }
13128     #[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, ) -> Result13129     pub unsafe fn get_image_drm_format_modifier_properties_ext(
13130         &self,
13131         device: Device,
13132         image: Image,
13133         p_properties: *mut ImageDrmFormatModifierPropertiesEXT,
13134     ) -> Result {
13135         (self.get_image_drm_format_modifier_properties_ext)(device, image, p_properties)
13136     }
13137 }
13138 #[doc = "Generated from 'VK_EXT_image_drm_format_modifier'"]
13139 impl Result {
13140     pub const ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT: Self = Self(-1000158000);
13141 }
13142 #[doc = "Generated from 'VK_EXT_image_drm_format_modifier'"]
13143 impl StructureType {
13144     pub const DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: Self = Self(1_000_158_000);
13145 }
13146 #[doc = "Generated from 'VK_EXT_image_drm_format_modifier'"]
13147 impl StructureType {
13148     pub const PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: Self = Self(1_000_158_002);
13149 }
13150 #[doc = "Generated from 'VK_EXT_image_drm_format_modifier'"]
13151 impl StructureType {
13152     pub const IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: Self = Self(1_000_158_003);
13153 }
13154 #[doc = "Generated from 'VK_EXT_image_drm_format_modifier'"]
13155 impl StructureType {
13156     pub const IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: Self = Self(1_000_158_004);
13157 }
13158 #[doc = "Generated from 'VK_EXT_image_drm_format_modifier'"]
13159 impl StructureType {
13160     pub const IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT: Self = Self(1_000_158_005);
13161 }
13162 #[doc = "Generated from 'VK_EXT_image_drm_format_modifier'"]
13163 impl ImageTiling {
13164     pub const DRM_FORMAT_MODIFIER_EXT: Self = Self(1_000_158_000);
13165 }
13166 #[doc = "Generated from 'VK_EXT_image_drm_format_modifier'"]
13167 impl ImageAspectFlags {
13168     pub const MEMORY_PLANE_0_EXT: Self = Self(0b1000_0000);
13169 }
13170 #[doc = "Generated from 'VK_EXT_image_drm_format_modifier'"]
13171 impl ImageAspectFlags {
13172     pub const MEMORY_PLANE_1_EXT: Self = Self(0b1_0000_0000);
13173 }
13174 #[doc = "Generated from 'VK_EXT_image_drm_format_modifier'"]
13175 impl ImageAspectFlags {
13176     pub const MEMORY_PLANE_2_EXT: Self = Self(0b10_0000_0000);
13177 }
13178 #[doc = "Generated from 'VK_EXT_image_drm_format_modifier'"]
13179 impl ImageAspectFlags {
13180     pub const MEMORY_PLANE_3_EXT: Self = Self(0b100_0000_0000);
13181 }
13182 impl ExtExtension160Fn {
name() -> &'static ::std::ffi::CStr13183     pub fn name() -> &'static ::std::ffi::CStr {
13184         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_160\0")
13185             .expect("Wrong extension string")
13186     }
13187     pub const SPEC_VERSION: u32 = 0u32;
13188 }
13189 #[derive(Clone)]
13190 pub struct ExtExtension160Fn {}
13191 unsafe impl Send for ExtExtension160Fn {}
13192 unsafe impl Sync for ExtExtension160Fn {}
13193 impl ExtExtension160Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13194     pub fn load<F>(mut _f: F) -> Self
13195     where
13196         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13197     {
13198         ExtExtension160Fn {}
13199     }
13200 }
13201 impl ExtValidationCacheFn {
name() -> &'static ::std::ffi::CStr13202     pub fn name() -> &'static ::std::ffi::CStr {
13203         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_validation_cache\0")
13204             .expect("Wrong extension string")
13205     }
13206     pub const SPEC_VERSION: u32 = 1u32;
13207 }
13208 #[allow(non_camel_case_types)]
13209 pub type PFN_vkCreateValidationCacheEXT = unsafe extern "system" fn(
13210     device: Device,
13211     p_create_info: *const ValidationCacheCreateInfoEXT,
13212     p_allocator: *const AllocationCallbacks,
13213     p_validation_cache: *mut ValidationCacheEXT,
13214 ) -> Result;
13215 #[allow(non_camel_case_types)]
13216 pub type PFN_vkDestroyValidationCacheEXT = unsafe extern "system" fn(
13217     device: Device,
13218     validation_cache: ValidationCacheEXT,
13219     p_allocator: *const AllocationCallbacks,
13220 );
13221 #[allow(non_camel_case_types)]
13222 pub type PFN_vkMergeValidationCachesEXT = unsafe extern "system" fn(
13223     device: Device,
13224     dst_cache: ValidationCacheEXT,
13225     src_cache_count: u32,
13226     p_src_caches: *const ValidationCacheEXT,
13227 ) -> Result;
13228 #[allow(non_camel_case_types)]
13229 pub type PFN_vkGetValidationCacheDataEXT = unsafe extern "system" fn(
13230     device: Device,
13231     validation_cache: ValidationCacheEXT,
13232     p_data_size: *mut usize,
13233     p_data: *mut c_void,
13234 ) -> Result;
13235 #[derive(Clone)]
13236 pub struct ExtValidationCacheFn {
13237     pub create_validation_cache_ext: PFN_vkCreateValidationCacheEXT,
13238     pub destroy_validation_cache_ext: PFN_vkDestroyValidationCacheEXT,
13239     pub merge_validation_caches_ext: PFN_vkMergeValidationCachesEXT,
13240     pub get_validation_cache_data_ext: PFN_vkGetValidationCacheDataEXT,
13241 }
13242 unsafe impl Send for ExtValidationCacheFn {}
13243 unsafe impl Sync for ExtValidationCacheFn {}
13244 impl ExtValidationCacheFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13245     pub fn load<F>(mut _f: F) -> Self
13246     where
13247         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13248     {
13249         ExtValidationCacheFn {
13250             create_validation_cache_ext: unsafe {
13251                 unsafe extern "system" fn create_validation_cache_ext(
13252                     _device: Device,
13253                     _p_create_info: *const ValidationCacheCreateInfoEXT,
13254                     _p_allocator: *const AllocationCallbacks,
13255                     _p_validation_cache: *mut ValidationCacheEXT,
13256                 ) -> Result {
13257                     panic!(concat!(
13258                         "Unable to load ",
13259                         stringify!(create_validation_cache_ext)
13260                     ))
13261                 }
13262                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13263                     b"vkCreateValidationCacheEXT\0",
13264                 );
13265                 let val = _f(cname);
13266                 if val.is_null() {
13267                     create_validation_cache_ext
13268                 } else {
13269                     ::std::mem::transmute(val)
13270                 }
13271             },
13272             destroy_validation_cache_ext: unsafe {
13273                 unsafe extern "system" fn destroy_validation_cache_ext(
13274                     _device: Device,
13275                     _validation_cache: ValidationCacheEXT,
13276                     _p_allocator: *const AllocationCallbacks,
13277                 ) {
13278                     panic!(concat!(
13279                         "Unable to load ",
13280                         stringify!(destroy_validation_cache_ext)
13281                     ))
13282                 }
13283                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13284                     b"vkDestroyValidationCacheEXT\0",
13285                 );
13286                 let val = _f(cname);
13287                 if val.is_null() {
13288                     destroy_validation_cache_ext
13289                 } else {
13290                     ::std::mem::transmute(val)
13291                 }
13292             },
13293             merge_validation_caches_ext: unsafe {
13294                 unsafe extern "system" fn merge_validation_caches_ext(
13295                     _device: Device,
13296                     _dst_cache: ValidationCacheEXT,
13297                     _src_cache_count: u32,
13298                     _p_src_caches: *const ValidationCacheEXT,
13299                 ) -> Result {
13300                     panic!(concat!(
13301                         "Unable to load ",
13302                         stringify!(merge_validation_caches_ext)
13303                     ))
13304                 }
13305                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13306                     b"vkMergeValidationCachesEXT\0",
13307                 );
13308                 let val = _f(cname);
13309                 if val.is_null() {
13310                     merge_validation_caches_ext
13311                 } else {
13312                     ::std::mem::transmute(val)
13313                 }
13314             },
13315             get_validation_cache_data_ext: unsafe {
13316                 unsafe extern "system" fn get_validation_cache_data_ext(
13317                     _device: Device,
13318                     _validation_cache: ValidationCacheEXT,
13319                     _p_data_size: *mut usize,
13320                     _p_data: *mut c_void,
13321                 ) -> Result {
13322                     panic!(concat!(
13323                         "Unable to load ",
13324                         stringify!(get_validation_cache_data_ext)
13325                     ))
13326                 }
13327                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13328                     b"vkGetValidationCacheDataEXT\0",
13329                 );
13330                 let val = _f(cname);
13331                 if val.is_null() {
13332                     get_validation_cache_data_ext
13333                 } else {
13334                     ::std::mem::transmute(val)
13335                 }
13336             },
13337         }
13338     }
13339     #[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, ) -> Result13340     pub unsafe fn create_validation_cache_ext(
13341         &self,
13342         device: Device,
13343         p_create_info: *const ValidationCacheCreateInfoEXT,
13344         p_allocator: *const AllocationCallbacks,
13345         p_validation_cache: *mut ValidationCacheEXT,
13346     ) -> Result {
13347         (self.create_validation_cache_ext)(device, p_create_info, p_allocator, p_validation_cache)
13348     }
13349     #[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, )13350     pub unsafe fn destroy_validation_cache_ext(
13351         &self,
13352         device: Device,
13353         validation_cache: ValidationCacheEXT,
13354         p_allocator: *const AllocationCallbacks,
13355     ) {
13356         (self.destroy_validation_cache_ext)(device, validation_cache, p_allocator)
13357     }
13358     #[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, ) -> Result13359     pub unsafe fn merge_validation_caches_ext(
13360         &self,
13361         device: Device,
13362         dst_cache: ValidationCacheEXT,
13363         src_cache_count: u32,
13364         p_src_caches: *const ValidationCacheEXT,
13365     ) -> Result {
13366         (self.merge_validation_caches_ext)(device, dst_cache, src_cache_count, p_src_caches)
13367     }
13368     #[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, ) -> Result13369     pub unsafe fn get_validation_cache_data_ext(
13370         &self,
13371         device: Device,
13372         validation_cache: ValidationCacheEXT,
13373         p_data_size: *mut usize,
13374         p_data: *mut c_void,
13375     ) -> Result {
13376         (self.get_validation_cache_data_ext)(device, validation_cache, p_data_size, p_data)
13377     }
13378 }
13379 #[doc = "Generated from 'VK_EXT_validation_cache'"]
13380 impl StructureType {
13381     pub const VALIDATION_CACHE_CREATE_INFO_EXT: Self = Self(1_000_160_000);
13382 }
13383 #[doc = "Generated from 'VK_EXT_validation_cache'"]
13384 impl StructureType {
13385     pub const SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT: Self = Self(1_000_160_001);
13386 }
13387 #[doc = "Generated from 'VK_EXT_validation_cache'"]
13388 impl ObjectType {
13389     pub const VALIDATION_CACHE_EXT: Self = Self(1_000_160_000);
13390 }
13391 impl ExtDescriptorIndexingFn {
name() -> &'static ::std::ffi::CStr13392     pub fn name() -> &'static ::std::ffi::CStr {
13393         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_descriptor_indexing\0")
13394             .expect("Wrong extension string")
13395     }
13396     pub const SPEC_VERSION: u32 = 2u32;
13397 }
13398 #[derive(Clone)]
13399 pub struct ExtDescriptorIndexingFn {}
13400 unsafe impl Send for ExtDescriptorIndexingFn {}
13401 unsafe impl Sync for ExtDescriptorIndexingFn {}
13402 impl ExtDescriptorIndexingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13403     pub fn load<F>(mut _f: F) -> Self
13404     where
13405         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13406     {
13407         ExtDescriptorIndexingFn {}
13408     }
13409 }
13410 #[doc = "Generated from 'VK_EXT_descriptor_indexing'"]
13411 impl StructureType {
13412     pub const DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT: Self =
13413         Self::DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO;
13414 }
13415 #[doc = "Generated from 'VK_EXT_descriptor_indexing'"]
13416 impl StructureType {
13417     pub const PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT: Self =
13418         Self::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES;
13419 }
13420 #[doc = "Generated from 'VK_EXT_descriptor_indexing'"]
13421 impl StructureType {
13422     pub const PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT: Self =
13423         Self::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES;
13424 }
13425 #[doc = "Generated from 'VK_EXT_descriptor_indexing'"]
13426 impl StructureType {
13427     pub const DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT: Self =
13428         Self::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO;
13429 }
13430 #[doc = "Generated from 'VK_EXT_descriptor_indexing'"]
13431 impl StructureType {
13432     pub const DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT: Self =
13433         Self::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT;
13434 }
13435 #[doc = "Generated from 'VK_EXT_descriptor_indexing'"]
13436 impl DescriptorBindingFlags {
13437     pub const UPDATE_AFTER_BIND_EXT: Self = Self::UPDATE_AFTER_BIND;
13438 }
13439 #[doc = "Generated from 'VK_EXT_descriptor_indexing'"]
13440 impl DescriptorBindingFlags {
13441     pub const UPDATE_UNUSED_WHILE_PENDING_EXT: Self = Self::UPDATE_UNUSED_WHILE_PENDING;
13442 }
13443 #[doc = "Generated from 'VK_EXT_descriptor_indexing'"]
13444 impl DescriptorBindingFlags {
13445     pub const PARTIALLY_BOUND_EXT: Self = Self::PARTIALLY_BOUND;
13446 }
13447 #[doc = "Generated from 'VK_EXT_descriptor_indexing'"]
13448 impl DescriptorBindingFlags {
13449     pub const VARIABLE_DESCRIPTOR_COUNT_EXT: Self = Self::VARIABLE_DESCRIPTOR_COUNT;
13450 }
13451 #[doc = "Generated from 'VK_EXT_descriptor_indexing'"]
13452 impl DescriptorPoolCreateFlags {
13453     pub const UPDATE_AFTER_BIND_EXT: Self = Self::UPDATE_AFTER_BIND;
13454 }
13455 #[doc = "Generated from 'VK_EXT_descriptor_indexing'"]
13456 impl DescriptorSetLayoutCreateFlags {
13457     pub const UPDATE_AFTER_BIND_POOL_EXT: Self = Self::UPDATE_AFTER_BIND_POOL;
13458 }
13459 #[doc = "Generated from 'VK_EXT_descriptor_indexing'"]
13460 impl Result {
13461     pub const ERROR_FRAGMENTATION_EXT: Self = Self::ERROR_FRAGMENTATION;
13462 }
13463 impl ExtShaderViewportIndexLayerFn {
name() -> &'static ::std::ffi::CStr13464     pub fn name() -> &'static ::std::ffi::CStr {
13465         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_shader_viewport_index_layer\0")
13466             .expect("Wrong extension string")
13467     }
13468     pub const SPEC_VERSION: u32 = 1u32;
13469 }
13470 #[derive(Clone)]
13471 pub struct ExtShaderViewportIndexLayerFn {}
13472 unsafe impl Send for ExtShaderViewportIndexLayerFn {}
13473 unsafe impl Sync for ExtShaderViewportIndexLayerFn {}
13474 impl ExtShaderViewportIndexLayerFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13475     pub fn load<F>(mut _f: F) -> Self
13476     where
13477         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13478     {
13479         ExtShaderViewportIndexLayerFn {}
13480     }
13481 }
13482 impl KhrPortabilitySubsetFn {
name() -> &'static ::std::ffi::CStr13483     pub fn name() -> &'static ::std::ffi::CStr {
13484         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_portability_subset\0")
13485             .expect("Wrong extension string")
13486     }
13487     pub const SPEC_VERSION: u32 = 1u32;
13488 }
13489 #[derive(Clone)]
13490 pub struct KhrPortabilitySubsetFn {}
13491 unsafe impl Send for KhrPortabilitySubsetFn {}
13492 unsafe impl Sync for KhrPortabilitySubsetFn {}
13493 impl KhrPortabilitySubsetFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13494     pub fn load<F>(mut _f: F) -> Self
13495     where
13496         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13497     {
13498         KhrPortabilitySubsetFn {}
13499     }
13500 }
13501 #[doc = "Generated from 'VK_KHR_portability_subset'"]
13502 impl StructureType {
13503     pub const PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR: Self = Self(1_000_163_000);
13504 }
13505 #[doc = "Generated from 'VK_KHR_portability_subset'"]
13506 impl StructureType {
13507     pub const PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR: Self = Self(1_000_163_001);
13508 }
13509 impl NvShadingRateImageFn {
name() -> &'static ::std::ffi::CStr13510     pub fn name() -> &'static ::std::ffi::CStr {
13511         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_shading_rate_image\0")
13512             .expect("Wrong extension string")
13513     }
13514     pub const SPEC_VERSION: u32 = 3u32;
13515 }
13516 #[allow(non_camel_case_types)]
13517 pub type PFN_vkCmdBindShadingRateImageNV = unsafe extern "system" fn(
13518     command_buffer: CommandBuffer,
13519     image_view: ImageView,
13520     image_layout: ImageLayout,
13521 );
13522 #[allow(non_camel_case_types)]
13523 pub type PFN_vkCmdSetViewportShadingRatePaletteNV = unsafe extern "system" fn(
13524     command_buffer: CommandBuffer,
13525     first_viewport: u32,
13526     viewport_count: u32,
13527     p_shading_rate_palettes: *const ShadingRatePaletteNV,
13528 );
13529 #[allow(non_camel_case_types)]
13530 pub type PFN_vkCmdSetCoarseSampleOrderNV = unsafe extern "system" fn(
13531     command_buffer: CommandBuffer,
13532     sample_order_type: CoarseSampleOrderTypeNV,
13533     custom_sample_order_count: u32,
13534     p_custom_sample_orders: *const CoarseSampleOrderCustomNV,
13535 );
13536 #[derive(Clone)]
13537 pub struct NvShadingRateImageFn {
13538     pub cmd_bind_shading_rate_image_nv: PFN_vkCmdBindShadingRateImageNV,
13539     pub cmd_set_viewport_shading_rate_palette_nv: PFN_vkCmdSetViewportShadingRatePaletteNV,
13540     pub cmd_set_coarse_sample_order_nv: PFN_vkCmdSetCoarseSampleOrderNV,
13541 }
13542 unsafe impl Send for NvShadingRateImageFn {}
13543 unsafe impl Sync for NvShadingRateImageFn {}
13544 impl NvShadingRateImageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13545     pub fn load<F>(mut _f: F) -> Self
13546     where
13547         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13548     {
13549         NvShadingRateImageFn {
13550             cmd_bind_shading_rate_image_nv: unsafe {
13551                 unsafe extern "system" fn cmd_bind_shading_rate_image_nv(
13552                     _command_buffer: CommandBuffer,
13553                     _image_view: ImageView,
13554                     _image_layout: ImageLayout,
13555                 ) {
13556                     panic!(concat!(
13557                         "Unable to load ",
13558                         stringify!(cmd_bind_shading_rate_image_nv)
13559                     ))
13560                 }
13561                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13562                     b"vkCmdBindShadingRateImageNV\0",
13563                 );
13564                 let val = _f(cname);
13565                 if val.is_null() {
13566                     cmd_bind_shading_rate_image_nv
13567                 } else {
13568                     ::std::mem::transmute(val)
13569                 }
13570             },
13571             cmd_set_viewport_shading_rate_palette_nv: unsafe {
13572                 unsafe extern "system" fn cmd_set_viewport_shading_rate_palette_nv(
13573                     _command_buffer: CommandBuffer,
13574                     _first_viewport: u32,
13575                     _viewport_count: u32,
13576                     _p_shading_rate_palettes: *const ShadingRatePaletteNV,
13577                 ) {
13578                     panic!(concat!(
13579                         "Unable to load ",
13580                         stringify!(cmd_set_viewport_shading_rate_palette_nv)
13581                     ))
13582                 }
13583                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13584                     b"vkCmdSetViewportShadingRatePaletteNV\0",
13585                 );
13586                 let val = _f(cname);
13587                 if val.is_null() {
13588                     cmd_set_viewport_shading_rate_palette_nv
13589                 } else {
13590                     ::std::mem::transmute(val)
13591                 }
13592             },
13593             cmd_set_coarse_sample_order_nv: unsafe {
13594                 unsafe extern "system" fn cmd_set_coarse_sample_order_nv(
13595                     _command_buffer: CommandBuffer,
13596                     _sample_order_type: CoarseSampleOrderTypeNV,
13597                     _custom_sample_order_count: u32,
13598                     _p_custom_sample_orders: *const CoarseSampleOrderCustomNV,
13599                 ) {
13600                     panic!(concat!(
13601                         "Unable to load ",
13602                         stringify!(cmd_set_coarse_sample_order_nv)
13603                     ))
13604                 }
13605                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13606                     b"vkCmdSetCoarseSampleOrderNV\0",
13607                 );
13608                 let val = _f(cname);
13609                 if val.is_null() {
13610                     cmd_set_coarse_sample_order_nv
13611                 } else {
13612                     ::std::mem::transmute(val)
13613                 }
13614             },
13615         }
13616     }
13617     #[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, )13618     pub unsafe fn cmd_bind_shading_rate_image_nv(
13619         &self,
13620         command_buffer: CommandBuffer,
13621         image_view: ImageView,
13622         image_layout: ImageLayout,
13623     ) {
13624         (self.cmd_bind_shading_rate_image_nv)(command_buffer, image_view, image_layout)
13625     }
13626     #[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, )13627     pub unsafe fn cmd_set_viewport_shading_rate_palette_nv(
13628         &self,
13629         command_buffer: CommandBuffer,
13630         first_viewport: u32,
13631         viewport_count: u32,
13632         p_shading_rate_palettes: *const ShadingRatePaletteNV,
13633     ) {
13634         (self.cmd_set_viewport_shading_rate_palette_nv)(
13635             command_buffer,
13636             first_viewport,
13637             viewport_count,
13638             p_shading_rate_palettes,
13639         )
13640     }
13641     #[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, )13642     pub unsafe fn cmd_set_coarse_sample_order_nv(
13643         &self,
13644         command_buffer: CommandBuffer,
13645         sample_order_type: CoarseSampleOrderTypeNV,
13646         custom_sample_order_count: u32,
13647         p_custom_sample_orders: *const CoarseSampleOrderCustomNV,
13648     ) {
13649         (self.cmd_set_coarse_sample_order_nv)(
13650             command_buffer,
13651             sample_order_type,
13652             custom_sample_order_count,
13653             p_custom_sample_orders,
13654         )
13655     }
13656 }
13657 #[doc = "Generated from 'VK_NV_shading_rate_image'"]
13658 impl StructureType {
13659     pub const PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV: Self = Self(1_000_164_000);
13660 }
13661 #[doc = "Generated from 'VK_NV_shading_rate_image'"]
13662 impl StructureType {
13663     pub const PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV: Self = Self(1_000_164_001);
13664 }
13665 #[doc = "Generated from 'VK_NV_shading_rate_image'"]
13666 impl StructureType {
13667     pub const PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV: Self = Self(1_000_164_002);
13668 }
13669 #[doc = "Generated from 'VK_NV_shading_rate_image'"]
13670 impl ImageLayout {
13671     pub const SHADING_RATE_OPTIMAL_NV: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR;
13672 }
13673 #[doc = "Generated from 'VK_NV_shading_rate_image'"]
13674 impl DynamicState {
13675     pub const VIEWPORT_SHADING_RATE_PALETTE_NV: Self = Self(1_000_164_004);
13676 }
13677 #[doc = "Generated from 'VK_NV_shading_rate_image'"]
13678 impl AccessFlags {
13679     pub const SHADING_RATE_IMAGE_READ_NV: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR;
13680 }
13681 #[doc = "Generated from 'VK_NV_shading_rate_image'"]
13682 impl ImageUsageFlags {
13683     pub const SHADING_RATE_IMAGE_NV: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT_KHR;
13684 }
13685 #[doc = "Generated from 'VK_NV_shading_rate_image'"]
13686 impl PipelineStageFlags {
13687     pub const SHADING_RATE_IMAGE_NV: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT_KHR;
13688 }
13689 #[doc = "Generated from 'VK_NV_shading_rate_image'"]
13690 impl StructureType {
13691     pub const PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV: Self =
13692         Self(1_000_164_005);
13693 }
13694 #[doc = "Generated from 'VK_NV_shading_rate_image'"]
13695 impl DynamicState {
13696     pub const VIEWPORT_COARSE_SAMPLE_ORDER_NV: Self = Self(1_000_164_006);
13697 }
13698 impl NvRayTracingFn {
name() -> &'static ::std::ffi::CStr13699     pub fn name() -> &'static ::std::ffi::CStr {
13700         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_ray_tracing\0")
13701             .expect("Wrong extension string")
13702     }
13703     pub const SPEC_VERSION: u32 = 3u32;
13704 }
13705 #[allow(non_camel_case_types)]
13706 pub type PFN_vkCreateAccelerationStructureNV = unsafe extern "system" fn(
13707     device: Device,
13708     p_create_info: *const AccelerationStructureCreateInfoNV,
13709     p_allocator: *const AllocationCallbacks,
13710     p_acceleration_structure: *mut AccelerationStructureNV,
13711 ) -> Result;
13712 #[allow(non_camel_case_types)]
13713 pub type PFN_vkDestroyAccelerationStructureNV = unsafe extern "system" fn(
13714     device: Device,
13715     acceleration_structure: AccelerationStructureNV,
13716     p_allocator: *const AllocationCallbacks,
13717 );
13718 #[allow(non_camel_case_types)]
13719 pub type PFN_vkGetAccelerationStructureMemoryRequirementsNV = unsafe extern "system" fn(
13720     device: Device,
13721     p_info: *const AccelerationStructureMemoryRequirementsInfoNV,
13722     p_memory_requirements: *mut MemoryRequirements2KHR,
13723 );
13724 #[allow(non_camel_case_types)]
13725 pub type PFN_vkBindAccelerationStructureMemoryNV = unsafe extern "system" fn(
13726     device: Device,
13727     bind_info_count: u32,
13728     p_bind_infos: *const BindAccelerationStructureMemoryInfoNV,
13729 ) -> Result;
13730 #[allow(non_camel_case_types)]
13731 pub type PFN_vkCmdBuildAccelerationStructureNV = unsafe extern "system" fn(
13732     command_buffer: CommandBuffer,
13733     p_info: *const AccelerationStructureInfoNV,
13734     instance_data: Buffer,
13735     instance_offset: DeviceSize,
13736     update: Bool32,
13737     dst: AccelerationStructureNV,
13738     src: AccelerationStructureNV,
13739     scratch: Buffer,
13740     scratch_offset: DeviceSize,
13741 );
13742 #[allow(non_camel_case_types)]
13743 pub type PFN_vkCmdCopyAccelerationStructureNV = unsafe extern "system" fn(
13744     command_buffer: CommandBuffer,
13745     dst: AccelerationStructureNV,
13746     src: AccelerationStructureNV,
13747     mode: CopyAccelerationStructureModeKHR,
13748 );
13749 #[allow(non_camel_case_types)]
13750 pub type PFN_vkCmdTraceRaysNV = unsafe extern "system" fn(
13751     command_buffer: CommandBuffer,
13752     raygen_shader_binding_table_buffer: Buffer,
13753     raygen_shader_binding_offset: DeviceSize,
13754     miss_shader_binding_table_buffer: Buffer,
13755     miss_shader_binding_offset: DeviceSize,
13756     miss_shader_binding_stride: DeviceSize,
13757     hit_shader_binding_table_buffer: Buffer,
13758     hit_shader_binding_offset: DeviceSize,
13759     hit_shader_binding_stride: DeviceSize,
13760     callable_shader_binding_table_buffer: Buffer,
13761     callable_shader_binding_offset: DeviceSize,
13762     callable_shader_binding_stride: DeviceSize,
13763     width: u32,
13764     height: u32,
13765     depth: u32,
13766 );
13767 #[allow(non_camel_case_types)]
13768 pub type PFN_vkCreateRayTracingPipelinesNV = unsafe extern "system" fn(
13769     device: Device,
13770     pipeline_cache: PipelineCache,
13771     create_info_count: u32,
13772     p_create_infos: *const RayTracingPipelineCreateInfoNV,
13773     p_allocator: *const AllocationCallbacks,
13774     p_pipelines: *mut Pipeline,
13775 ) -> Result;
13776 #[allow(non_camel_case_types)]
13777 pub type PFN_vkGetAccelerationStructureHandleNV = unsafe extern "system" fn(
13778     device: Device,
13779     acceleration_structure: AccelerationStructureNV,
13780     data_size: usize,
13781     p_data: *mut c_void,
13782 ) -> Result;
13783 #[allow(non_camel_case_types)]
13784 pub type PFN_vkCmdWriteAccelerationStructuresPropertiesNV = unsafe extern "system" fn(
13785     command_buffer: CommandBuffer,
13786     acceleration_structure_count: u32,
13787     p_acceleration_structures: *const AccelerationStructureNV,
13788     query_type: QueryType,
13789     query_pool: QueryPool,
13790     first_query: u32,
13791 );
13792 #[allow(non_camel_case_types)]
13793 pub type PFN_vkCompileDeferredNV =
13794     unsafe extern "system" fn(device: Device, pipeline: Pipeline, shader: u32) -> Result;
13795 #[derive(Clone)]
13796 pub struct NvRayTracingFn {
13797     pub create_acceleration_structure_nv: PFN_vkCreateAccelerationStructureNV,
13798     pub destroy_acceleration_structure_nv: PFN_vkDestroyAccelerationStructureNV,
13799     pub get_acceleration_structure_memory_requirements_nv:
13800         PFN_vkGetAccelerationStructureMemoryRequirementsNV,
13801     pub bind_acceleration_structure_memory_nv: PFN_vkBindAccelerationStructureMemoryNV,
13802     pub cmd_build_acceleration_structure_nv: PFN_vkCmdBuildAccelerationStructureNV,
13803     pub cmd_copy_acceleration_structure_nv: PFN_vkCmdCopyAccelerationStructureNV,
13804     pub cmd_trace_rays_nv: PFN_vkCmdTraceRaysNV,
13805     pub create_ray_tracing_pipelines_nv: PFN_vkCreateRayTracingPipelinesNV,
13806     pub get_ray_tracing_shader_group_handles_nv:
13807         crate::vk::PFN_vkGetRayTracingShaderGroupHandlesKHR,
13808     pub get_acceleration_structure_handle_nv: PFN_vkGetAccelerationStructureHandleNV,
13809     pub cmd_write_acceleration_structures_properties_nv:
13810         PFN_vkCmdWriteAccelerationStructuresPropertiesNV,
13811     pub compile_deferred_nv: PFN_vkCompileDeferredNV,
13812 }
13813 unsafe impl Send for NvRayTracingFn {}
13814 unsafe impl Sync for NvRayTracingFn {}
13815 impl NvRayTracingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13816     pub fn load<F>(mut _f: F) -> Self
13817     where
13818         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13819     {
13820         NvRayTracingFn {
13821             create_acceleration_structure_nv: unsafe {
13822                 unsafe extern "system" fn create_acceleration_structure_nv(
13823                     _device: Device,
13824                     _p_create_info: *const AccelerationStructureCreateInfoNV,
13825                     _p_allocator: *const AllocationCallbacks,
13826                     _p_acceleration_structure: *mut AccelerationStructureNV,
13827                 ) -> Result {
13828                     panic!(concat!(
13829                         "Unable to load ",
13830                         stringify!(create_acceleration_structure_nv)
13831                     ))
13832                 }
13833                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13834                     b"vkCreateAccelerationStructureNV\0",
13835                 );
13836                 let val = _f(cname);
13837                 if val.is_null() {
13838                     create_acceleration_structure_nv
13839                 } else {
13840                     ::std::mem::transmute(val)
13841                 }
13842             },
13843             destroy_acceleration_structure_nv: unsafe {
13844                 unsafe extern "system" fn destroy_acceleration_structure_nv(
13845                     _device: Device,
13846                     _acceleration_structure: AccelerationStructureNV,
13847                     _p_allocator: *const AllocationCallbacks,
13848                 ) {
13849                     panic!(concat!(
13850                         "Unable to load ",
13851                         stringify!(destroy_acceleration_structure_nv)
13852                     ))
13853                 }
13854                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13855                     b"vkDestroyAccelerationStructureNV\0",
13856                 );
13857                 let val = _f(cname);
13858                 if val.is_null() {
13859                     destroy_acceleration_structure_nv
13860                 } else {
13861                     ::std::mem::transmute(val)
13862                 }
13863             },
13864             get_acceleration_structure_memory_requirements_nv: unsafe {
13865                 unsafe extern "system" fn get_acceleration_structure_memory_requirements_nv(
13866                     _device: Device,
13867                     _p_info: *const AccelerationStructureMemoryRequirementsInfoNV,
13868                     _p_memory_requirements: *mut MemoryRequirements2KHR,
13869                 ) {
13870                     panic!(concat!(
13871                         "Unable to load ",
13872                         stringify!(get_acceleration_structure_memory_requirements_nv)
13873                     ))
13874                 }
13875                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13876                     b"vkGetAccelerationStructureMemoryRequirementsNV\0",
13877                 );
13878                 let val = _f(cname);
13879                 if val.is_null() {
13880                     get_acceleration_structure_memory_requirements_nv
13881                 } else {
13882                     ::std::mem::transmute(val)
13883                 }
13884             },
13885             bind_acceleration_structure_memory_nv: unsafe {
13886                 unsafe extern "system" fn bind_acceleration_structure_memory_nv(
13887                     _device: Device,
13888                     _bind_info_count: u32,
13889                     _p_bind_infos: *const BindAccelerationStructureMemoryInfoNV,
13890                 ) -> Result {
13891                     panic!(concat!(
13892                         "Unable to load ",
13893                         stringify!(bind_acceleration_structure_memory_nv)
13894                     ))
13895                 }
13896                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13897                     b"vkBindAccelerationStructureMemoryNV\0",
13898                 );
13899                 let val = _f(cname);
13900                 if val.is_null() {
13901                     bind_acceleration_structure_memory_nv
13902                 } else {
13903                     ::std::mem::transmute(val)
13904                 }
13905             },
13906             cmd_build_acceleration_structure_nv: unsafe {
13907                 unsafe extern "system" fn cmd_build_acceleration_structure_nv(
13908                     _command_buffer: CommandBuffer,
13909                     _p_info: *const AccelerationStructureInfoNV,
13910                     _instance_data: Buffer,
13911                     _instance_offset: DeviceSize,
13912                     _update: Bool32,
13913                     _dst: AccelerationStructureNV,
13914                     _src: AccelerationStructureNV,
13915                     _scratch: Buffer,
13916                     _scratch_offset: DeviceSize,
13917                 ) {
13918                     panic!(concat!(
13919                         "Unable to load ",
13920                         stringify!(cmd_build_acceleration_structure_nv)
13921                     ))
13922                 }
13923                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13924                     b"vkCmdBuildAccelerationStructureNV\0",
13925                 );
13926                 let val = _f(cname);
13927                 if val.is_null() {
13928                     cmd_build_acceleration_structure_nv
13929                 } else {
13930                     ::std::mem::transmute(val)
13931                 }
13932             },
13933             cmd_copy_acceleration_structure_nv: unsafe {
13934                 unsafe extern "system" fn cmd_copy_acceleration_structure_nv(
13935                     _command_buffer: CommandBuffer,
13936                     _dst: AccelerationStructureNV,
13937                     _src: AccelerationStructureNV,
13938                     _mode: CopyAccelerationStructureModeKHR,
13939                 ) {
13940                     panic!(concat!(
13941                         "Unable to load ",
13942                         stringify!(cmd_copy_acceleration_structure_nv)
13943                     ))
13944                 }
13945                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13946                     b"vkCmdCopyAccelerationStructureNV\0",
13947                 );
13948                 let val = _f(cname);
13949                 if val.is_null() {
13950                     cmd_copy_acceleration_structure_nv
13951                 } else {
13952                     ::std::mem::transmute(val)
13953                 }
13954             },
13955             cmd_trace_rays_nv: unsafe {
13956                 unsafe extern "system" fn cmd_trace_rays_nv(
13957                     _command_buffer: CommandBuffer,
13958                     _raygen_shader_binding_table_buffer: Buffer,
13959                     _raygen_shader_binding_offset: DeviceSize,
13960                     _miss_shader_binding_table_buffer: Buffer,
13961                     _miss_shader_binding_offset: DeviceSize,
13962                     _miss_shader_binding_stride: DeviceSize,
13963                     _hit_shader_binding_table_buffer: Buffer,
13964                     _hit_shader_binding_offset: DeviceSize,
13965                     _hit_shader_binding_stride: DeviceSize,
13966                     _callable_shader_binding_table_buffer: Buffer,
13967                     _callable_shader_binding_offset: DeviceSize,
13968                     _callable_shader_binding_stride: DeviceSize,
13969                     _width: u32,
13970                     _height: u32,
13971                     _depth: u32,
13972                 ) {
13973                     panic!(concat!("Unable to load ", stringify!(cmd_trace_rays_nv)))
13974                 }
13975                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdTraceRaysNV\0");
13976                 let val = _f(cname);
13977                 if val.is_null() {
13978                     cmd_trace_rays_nv
13979                 } else {
13980                     ::std::mem::transmute(val)
13981                 }
13982             },
13983             create_ray_tracing_pipelines_nv: unsafe {
13984                 unsafe extern "system" fn create_ray_tracing_pipelines_nv(
13985                     _device: Device,
13986                     _pipeline_cache: PipelineCache,
13987                     _create_info_count: u32,
13988                     _p_create_infos: *const RayTracingPipelineCreateInfoNV,
13989                     _p_allocator: *const AllocationCallbacks,
13990                     _p_pipelines: *mut Pipeline,
13991                 ) -> Result {
13992                     panic!(concat!(
13993                         "Unable to load ",
13994                         stringify!(create_ray_tracing_pipelines_nv)
13995                     ))
13996                 }
13997                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13998                     b"vkCreateRayTracingPipelinesNV\0",
13999                 );
14000                 let val = _f(cname);
14001                 if val.is_null() {
14002                     create_ray_tracing_pipelines_nv
14003                 } else {
14004                     ::std::mem::transmute(val)
14005                 }
14006             },
14007             get_ray_tracing_shader_group_handles_nv: unsafe {
14008                 unsafe extern "system" fn get_ray_tracing_shader_group_handles_nv(
14009                     _device: Device,
14010                     _pipeline: Pipeline,
14011                     _first_group: u32,
14012                     _group_count: u32,
14013                     _data_size: usize,
14014                     _p_data: *mut c_void,
14015                 ) -> Result {
14016                     panic!(concat!(
14017                         "Unable to load ",
14018                         stringify!(get_ray_tracing_shader_group_handles_nv)
14019                     ))
14020                 }
14021                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14022                     b"vkGetRayTracingShaderGroupHandlesNV\0",
14023                 );
14024                 let val = _f(cname);
14025                 if val.is_null() {
14026                     get_ray_tracing_shader_group_handles_nv
14027                 } else {
14028                     ::std::mem::transmute(val)
14029                 }
14030             },
14031             get_acceleration_structure_handle_nv: unsafe {
14032                 unsafe extern "system" fn get_acceleration_structure_handle_nv(
14033                     _device: Device,
14034                     _acceleration_structure: AccelerationStructureNV,
14035                     _data_size: usize,
14036                     _p_data: *mut c_void,
14037                 ) -> Result {
14038                     panic!(concat!(
14039                         "Unable to load ",
14040                         stringify!(get_acceleration_structure_handle_nv)
14041                     ))
14042                 }
14043                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14044                     b"vkGetAccelerationStructureHandleNV\0",
14045                 );
14046                 let val = _f(cname);
14047                 if val.is_null() {
14048                     get_acceleration_structure_handle_nv
14049                 } else {
14050                     ::std::mem::transmute(val)
14051                 }
14052             },
14053             cmd_write_acceleration_structures_properties_nv: unsafe {
14054                 unsafe extern "system" fn cmd_write_acceleration_structures_properties_nv(
14055                     _command_buffer: CommandBuffer,
14056                     _acceleration_structure_count: u32,
14057                     _p_acceleration_structures: *const AccelerationStructureNV,
14058                     _query_type: QueryType,
14059                     _query_pool: QueryPool,
14060                     _first_query: u32,
14061                 ) {
14062                     panic!(concat!(
14063                         "Unable to load ",
14064                         stringify!(cmd_write_acceleration_structures_properties_nv)
14065                     ))
14066                 }
14067                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14068                     b"vkCmdWriteAccelerationStructuresPropertiesNV\0",
14069                 );
14070                 let val = _f(cname);
14071                 if val.is_null() {
14072                     cmd_write_acceleration_structures_properties_nv
14073                 } else {
14074                     ::std::mem::transmute(val)
14075                 }
14076             },
14077             compile_deferred_nv: unsafe {
14078                 unsafe extern "system" fn compile_deferred_nv(
14079                     _device: Device,
14080                     _pipeline: Pipeline,
14081                     _shader: u32,
14082                 ) -> Result {
14083                     panic!(concat!("Unable to load ", stringify!(compile_deferred_nv)))
14084                 }
14085                 let cname =
14086                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCompileDeferredNV\0");
14087                 let val = _f(cname);
14088                 if val.is_null() {
14089                     compile_deferred_nv
14090                 } else {
14091                     ::std::mem::transmute(val)
14092                 }
14093             },
14094         }
14095     }
14096     #[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, ) -> Result14097     pub unsafe fn create_acceleration_structure_nv(
14098         &self,
14099         device: Device,
14100         p_create_info: *const AccelerationStructureCreateInfoNV,
14101         p_allocator: *const AllocationCallbacks,
14102         p_acceleration_structure: *mut AccelerationStructureNV,
14103     ) -> Result {
14104         (self.create_acceleration_structure_nv)(
14105             device,
14106             p_create_info,
14107             p_allocator,
14108             p_acceleration_structure,
14109         )
14110     }
14111     #[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, )14112     pub unsafe fn destroy_acceleration_structure_nv(
14113         &self,
14114         device: Device,
14115         acceleration_structure: AccelerationStructureNV,
14116         p_allocator: *const AllocationCallbacks,
14117     ) {
14118         (self.destroy_acceleration_structure_nv)(device, acceleration_structure, p_allocator)
14119     }
14120     #[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, )14121     pub unsafe fn get_acceleration_structure_memory_requirements_nv(
14122         &self,
14123         device: Device,
14124         p_info: *const AccelerationStructureMemoryRequirementsInfoNV,
14125         p_memory_requirements: *mut MemoryRequirements2KHR,
14126     ) {
14127         (self.get_acceleration_structure_memory_requirements_nv)(
14128             device,
14129             p_info,
14130             p_memory_requirements,
14131         )
14132     }
14133     #[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, ) -> Result14134     pub unsafe fn bind_acceleration_structure_memory_nv(
14135         &self,
14136         device: Device,
14137         bind_info_count: u32,
14138         p_bind_infos: *const BindAccelerationStructureMemoryInfoNV,
14139     ) -> Result {
14140         (self.bind_acceleration_structure_memory_nv)(device, bind_info_count, p_bind_infos)
14141     }
14142     #[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, )14143     pub unsafe fn cmd_build_acceleration_structure_nv(
14144         &self,
14145         command_buffer: CommandBuffer,
14146         p_info: *const AccelerationStructureInfoNV,
14147         instance_data: Buffer,
14148         instance_offset: DeviceSize,
14149         update: Bool32,
14150         dst: AccelerationStructureNV,
14151         src: AccelerationStructureNV,
14152         scratch: Buffer,
14153         scratch_offset: DeviceSize,
14154     ) {
14155         (self.cmd_build_acceleration_structure_nv)(
14156             command_buffer,
14157             p_info,
14158             instance_data,
14159             instance_offset,
14160             update,
14161             dst,
14162             src,
14163             scratch,
14164             scratch_offset,
14165         )
14166     }
14167     #[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, )14168     pub unsafe fn cmd_copy_acceleration_structure_nv(
14169         &self,
14170         command_buffer: CommandBuffer,
14171         dst: AccelerationStructureNV,
14172         src: AccelerationStructureNV,
14173         mode: CopyAccelerationStructureModeKHR,
14174     ) {
14175         (self.cmd_copy_acceleration_structure_nv)(command_buffer, dst, src, mode)
14176     }
14177     #[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, )14178     pub unsafe fn cmd_trace_rays_nv(
14179         &self,
14180         command_buffer: CommandBuffer,
14181         raygen_shader_binding_table_buffer: Buffer,
14182         raygen_shader_binding_offset: DeviceSize,
14183         miss_shader_binding_table_buffer: Buffer,
14184         miss_shader_binding_offset: DeviceSize,
14185         miss_shader_binding_stride: DeviceSize,
14186         hit_shader_binding_table_buffer: Buffer,
14187         hit_shader_binding_offset: DeviceSize,
14188         hit_shader_binding_stride: DeviceSize,
14189         callable_shader_binding_table_buffer: Buffer,
14190         callable_shader_binding_offset: DeviceSize,
14191         callable_shader_binding_stride: DeviceSize,
14192         width: u32,
14193         height: u32,
14194         depth: u32,
14195     ) {
14196         (self.cmd_trace_rays_nv)(
14197             command_buffer,
14198             raygen_shader_binding_table_buffer,
14199             raygen_shader_binding_offset,
14200             miss_shader_binding_table_buffer,
14201             miss_shader_binding_offset,
14202             miss_shader_binding_stride,
14203             hit_shader_binding_table_buffer,
14204             hit_shader_binding_offset,
14205             hit_shader_binding_stride,
14206             callable_shader_binding_table_buffer,
14207             callable_shader_binding_offset,
14208             callable_shader_binding_stride,
14209             width,
14210             height,
14211             depth,
14212         )
14213     }
14214     #[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, ) -> Result14215     pub unsafe fn create_ray_tracing_pipelines_nv(
14216         &self,
14217         device: Device,
14218         pipeline_cache: PipelineCache,
14219         create_info_count: u32,
14220         p_create_infos: *const RayTracingPipelineCreateInfoNV,
14221         p_allocator: *const AllocationCallbacks,
14222         p_pipelines: *mut Pipeline,
14223     ) -> Result {
14224         (self.create_ray_tracing_pipelines_nv)(
14225             device,
14226             pipeline_cache,
14227             create_info_count,
14228             p_create_infos,
14229             p_allocator,
14230             p_pipelines,
14231         )
14232     }
14233     #[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, ) -> Result14234     pub unsafe fn get_ray_tracing_shader_group_handles_nv(
14235         &self,
14236         device: Device,
14237         pipeline: Pipeline,
14238         first_group: u32,
14239         group_count: u32,
14240         data_size: usize,
14241         p_data: *mut c_void,
14242     ) -> Result {
14243         (self.get_ray_tracing_shader_group_handles_nv)(
14244             device,
14245             pipeline,
14246             first_group,
14247             group_count,
14248             data_size,
14249             p_data,
14250         )
14251     }
14252     #[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, ) -> Result14253     pub unsafe fn get_acceleration_structure_handle_nv(
14254         &self,
14255         device: Device,
14256         acceleration_structure: AccelerationStructureNV,
14257         data_size: usize,
14258         p_data: *mut c_void,
14259     ) -> Result {
14260         (self.get_acceleration_structure_handle_nv)(
14261             device,
14262             acceleration_structure,
14263             data_size,
14264             p_data,
14265         )
14266     }
14267     #[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, )14268     pub unsafe fn cmd_write_acceleration_structures_properties_nv(
14269         &self,
14270         command_buffer: CommandBuffer,
14271         acceleration_structure_count: u32,
14272         p_acceleration_structures: *const AccelerationStructureNV,
14273         query_type: QueryType,
14274         query_pool: QueryPool,
14275         first_query: u32,
14276     ) {
14277         (self.cmd_write_acceleration_structures_properties_nv)(
14278             command_buffer,
14279             acceleration_structure_count,
14280             p_acceleration_structures,
14281             query_type,
14282             query_pool,
14283             first_query,
14284         )
14285     }
14286     #[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, ) -> Result14287     pub unsafe fn compile_deferred_nv(
14288         &self,
14289         device: Device,
14290         pipeline: Pipeline,
14291         shader: u32,
14292     ) -> Result {
14293         (self.compile_deferred_nv)(device, pipeline, shader)
14294     }
14295 }
14296 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14297 impl StructureType {
14298     pub const RAY_TRACING_PIPELINE_CREATE_INFO_NV: Self = Self(1_000_165_000);
14299 }
14300 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14301 impl StructureType {
14302     pub const ACCELERATION_STRUCTURE_CREATE_INFO_NV: Self = Self(1_000_165_001);
14303 }
14304 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14305 impl StructureType {
14306     pub const GEOMETRY_NV: Self = Self(1_000_165_003);
14307 }
14308 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14309 impl StructureType {
14310     pub const GEOMETRY_TRIANGLES_NV: Self = Self(1_000_165_004);
14311 }
14312 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14313 impl StructureType {
14314     pub const GEOMETRY_AABB_NV: Self = Self(1_000_165_005);
14315 }
14316 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14317 impl StructureType {
14318     pub const BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV: Self = Self(1_000_165_006);
14319 }
14320 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14321 impl StructureType {
14322     pub const WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV: Self = Self(1_000_165_007);
14323 }
14324 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14325 impl StructureType {
14326     pub const ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV: Self = Self(1_000_165_008);
14327 }
14328 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14329 impl StructureType {
14330     pub const PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV: Self = Self(1_000_165_009);
14331 }
14332 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14333 impl StructureType {
14334     pub const RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV: Self = Self(1_000_165_011);
14335 }
14336 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14337 impl StructureType {
14338     pub const ACCELERATION_STRUCTURE_INFO_NV: Self = Self(1_000_165_012);
14339 }
14340 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14341 impl ShaderStageFlags {
14342     pub const RAYGEN_NV: Self = Self::RAYGEN_KHR;
14343 }
14344 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14345 impl ShaderStageFlags {
14346     pub const ANY_HIT_NV: Self = Self::ANY_HIT_KHR;
14347 }
14348 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14349 impl ShaderStageFlags {
14350     pub const CLOSEST_HIT_NV: Self = Self::CLOSEST_HIT_KHR;
14351 }
14352 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14353 impl ShaderStageFlags {
14354     pub const MISS_NV: Self = Self::MISS_KHR;
14355 }
14356 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14357 impl ShaderStageFlags {
14358     pub const INTERSECTION_NV: Self = Self::INTERSECTION_KHR;
14359 }
14360 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14361 impl ShaderStageFlags {
14362     pub const CALLABLE_NV: Self = Self::CALLABLE_KHR;
14363 }
14364 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14365 impl PipelineStageFlags {
14366     pub const RAY_TRACING_SHADER_NV: Self = Self::RAY_TRACING_SHADER_KHR;
14367 }
14368 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14369 impl PipelineStageFlags {
14370     pub const ACCELERATION_STRUCTURE_BUILD_NV: Self = Self::ACCELERATION_STRUCTURE_BUILD_KHR;
14371 }
14372 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14373 impl BufferUsageFlags {
14374     pub const RAY_TRACING_NV: Self = Self::SHADER_BINDING_TABLE_KHR;
14375 }
14376 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14377 impl PipelineBindPoint {
14378     pub const RAY_TRACING_NV: Self = Self::RAY_TRACING_KHR;
14379 }
14380 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14381 impl DescriptorType {
14382     pub const ACCELERATION_STRUCTURE_NV: Self = Self(1_000_165_000);
14383 }
14384 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14385 impl AccessFlags {
14386     pub const ACCELERATION_STRUCTURE_READ_NV: Self = Self::ACCELERATION_STRUCTURE_READ_KHR;
14387 }
14388 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14389 impl AccessFlags {
14390     pub const ACCELERATION_STRUCTURE_WRITE_NV: Self = Self::ACCELERATION_STRUCTURE_WRITE_KHR;
14391 }
14392 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14393 impl QueryType {
14394     pub const ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV: Self = Self(1_000_165_000);
14395 }
14396 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14397 impl PipelineCreateFlags {
14398     pub const DEFER_COMPILE_NV: Self = Self(0b10_0000);
14399 }
14400 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14401 impl ObjectType {
14402     pub const ACCELERATION_STRUCTURE_NV: Self = Self(1_000_165_000);
14403 }
14404 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14405 impl DebugReportObjectTypeEXT {
14406     pub const ACCELERATION_STRUCTURE_NV: Self = Self(1_000_165_000);
14407 }
14408 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14409 impl IndexType {
14410     pub const NONE_NV: Self = Self::NONE_KHR;
14411 }
14412 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14413 impl RayTracingShaderGroupTypeKHR {
14414     pub const GENERAL_NV: Self = Self::GENERAL;
14415 }
14416 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14417 impl RayTracingShaderGroupTypeKHR {
14418     pub const TRIANGLES_HIT_GROUP_NV: Self = Self::TRIANGLES_HIT_GROUP;
14419 }
14420 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14421 impl RayTracingShaderGroupTypeKHR {
14422     pub const PROCEDURAL_HIT_GROUP_NV: Self = Self::PROCEDURAL_HIT_GROUP;
14423 }
14424 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14425 impl GeometryTypeKHR {
14426     pub const TRIANGLES_NV: Self = Self::TRIANGLES;
14427 }
14428 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14429 impl GeometryTypeKHR {
14430     pub const AABBS_NV: Self = Self::AABBS;
14431 }
14432 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14433 impl AccelerationStructureTypeKHR {
14434     pub const TOP_LEVEL_NV: Self = Self::TOP_LEVEL;
14435 }
14436 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14437 impl AccelerationStructureTypeKHR {
14438     pub const BOTTOM_LEVEL_NV: Self = Self::BOTTOM_LEVEL;
14439 }
14440 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14441 impl GeometryFlagsKHR {
14442     pub const OPAQUE_NV: Self = Self::OPAQUE;
14443 }
14444 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14445 impl GeometryFlagsKHR {
14446     pub const NO_DUPLICATE_ANY_HIT_INVOCATION_NV: Self = Self::NO_DUPLICATE_ANY_HIT_INVOCATION;
14447 }
14448 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14449 impl GeometryInstanceFlagsKHR {
14450     pub const TRIANGLE_CULL_DISABLE_NV: Self = Self::TRIANGLE_FACING_CULL_DISABLE;
14451 }
14452 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14453 impl GeometryInstanceFlagsKHR {
14454     pub const TRIANGLE_FRONT_COUNTERCLOCKWISE_NV: Self = Self::TRIANGLE_FRONT_COUNTERCLOCKWISE;
14455 }
14456 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14457 impl GeometryInstanceFlagsKHR {
14458     pub const FORCE_OPAQUE_NV: Self = Self::FORCE_OPAQUE;
14459 }
14460 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14461 impl GeometryInstanceFlagsKHR {
14462     pub const FORCE_NO_OPAQUE_NV: Self = Self::FORCE_NO_OPAQUE;
14463 }
14464 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14465 impl BuildAccelerationStructureFlagsKHR {
14466     pub const ALLOW_UPDATE_NV: Self = Self::ALLOW_UPDATE;
14467 }
14468 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14469 impl BuildAccelerationStructureFlagsKHR {
14470     pub const ALLOW_COMPACTION_NV: Self = Self::ALLOW_COMPACTION;
14471 }
14472 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14473 impl BuildAccelerationStructureFlagsKHR {
14474     pub const PREFER_FAST_TRACE_NV: Self = Self::PREFER_FAST_TRACE;
14475 }
14476 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14477 impl BuildAccelerationStructureFlagsKHR {
14478     pub const PREFER_FAST_BUILD_NV: Self = Self::PREFER_FAST_BUILD;
14479 }
14480 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14481 impl BuildAccelerationStructureFlagsKHR {
14482     pub const LOW_MEMORY_NV: Self = Self::LOW_MEMORY;
14483 }
14484 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14485 impl CopyAccelerationStructureModeKHR {
14486     pub const CLONE_NV: Self = Self::CLONE;
14487 }
14488 #[doc = "Generated from 'VK_NV_ray_tracing'"]
14489 impl CopyAccelerationStructureModeKHR {
14490     pub const COMPACT_NV: Self = Self::COMPACT;
14491 }
14492 impl NvRepresentativeFragmentTestFn {
name() -> &'static ::std::ffi::CStr14493     pub fn name() -> &'static ::std::ffi::CStr {
14494         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_representative_fragment_test\0")
14495             .expect("Wrong extension string")
14496     }
14497     pub const SPEC_VERSION: u32 = 2u32;
14498 }
14499 #[derive(Clone)]
14500 pub struct NvRepresentativeFragmentTestFn {}
14501 unsafe impl Send for NvRepresentativeFragmentTestFn {}
14502 unsafe impl Sync for NvRepresentativeFragmentTestFn {}
14503 impl NvRepresentativeFragmentTestFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14504     pub fn load<F>(mut _f: F) -> Self
14505     where
14506         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14507     {
14508         NvRepresentativeFragmentTestFn {}
14509     }
14510 }
14511 #[doc = "Generated from 'VK_NV_representative_fragment_test'"]
14512 impl StructureType {
14513     pub const PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV: Self = Self(1_000_166_000);
14514 }
14515 #[doc = "Generated from 'VK_NV_representative_fragment_test'"]
14516 impl StructureType {
14517     pub const PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV: Self =
14518         Self(1_000_166_001);
14519 }
14520 impl NvExtension168Fn {
name() -> &'static ::std::ffi::CStr14521     pub fn name() -> &'static ::std::ffi::CStr {
14522         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_extension_168\0")
14523             .expect("Wrong extension string")
14524     }
14525     pub const SPEC_VERSION: u32 = 0u32;
14526 }
14527 #[derive(Clone)]
14528 pub struct NvExtension168Fn {}
14529 unsafe impl Send for NvExtension168Fn {}
14530 unsafe impl Sync for NvExtension168Fn {}
14531 impl NvExtension168Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14532     pub fn load<F>(mut _f: F) -> Self
14533     where
14534         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14535     {
14536         NvExtension168Fn {}
14537     }
14538 }
14539 impl KhrMaintenance3Fn {
name() -> &'static ::std::ffi::CStr14540     pub fn name() -> &'static ::std::ffi::CStr {
14541         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_maintenance3\0")
14542             .expect("Wrong extension string")
14543     }
14544     pub const SPEC_VERSION: u32 = 1u32;
14545 }
14546 #[allow(non_camel_case_types)]
14547 pub type PFN_vkGetDescriptorSetLayoutSupport = unsafe extern "system" fn(
14548     device: Device,
14549     p_create_info: *const DescriptorSetLayoutCreateInfo,
14550     p_support: *mut DescriptorSetLayoutSupport,
14551 );
14552 #[derive(Clone)]
14553 pub struct KhrMaintenance3Fn {
14554     pub get_descriptor_set_layout_support_khr: PFN_vkGetDescriptorSetLayoutSupport,
14555 }
14556 unsafe impl Send for KhrMaintenance3Fn {}
14557 unsafe impl Sync for KhrMaintenance3Fn {}
14558 impl KhrMaintenance3Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14559     pub fn load<F>(mut _f: F) -> Self
14560     where
14561         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14562     {
14563         KhrMaintenance3Fn {
14564             get_descriptor_set_layout_support_khr: unsafe {
14565                 unsafe extern "system" fn get_descriptor_set_layout_support_khr(
14566                     _device: Device,
14567                     _p_create_info: *const DescriptorSetLayoutCreateInfo,
14568                     _p_support: *mut DescriptorSetLayoutSupport,
14569                 ) {
14570                     panic!(concat!(
14571                         "Unable to load ",
14572                         stringify!(get_descriptor_set_layout_support_khr)
14573                     ))
14574                 }
14575                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14576                     b"vkGetDescriptorSetLayoutSupportKHR\0",
14577                 );
14578                 let val = _f(cname);
14579                 if val.is_null() {
14580                     get_descriptor_set_layout_support_khr
14581                 } else {
14582                     ::std::mem::transmute(val)
14583                 }
14584             },
14585         }
14586     }
14587     #[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, )14588     pub unsafe fn get_descriptor_set_layout_support_khr(
14589         &self,
14590         device: Device,
14591         p_create_info: *const DescriptorSetLayoutCreateInfo,
14592         p_support: *mut DescriptorSetLayoutSupport,
14593     ) {
14594         (self.get_descriptor_set_layout_support_khr)(device, p_create_info, p_support)
14595     }
14596 }
14597 #[doc = "Generated from 'VK_KHR_maintenance3'"]
14598 impl StructureType {
14599     pub const PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR: Self =
14600         Self::PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES;
14601 }
14602 #[doc = "Generated from 'VK_KHR_maintenance3'"]
14603 impl StructureType {
14604     pub const DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR: Self = Self::DESCRIPTOR_SET_LAYOUT_SUPPORT;
14605 }
14606 impl KhrDrawIndirectCountFn {
name() -> &'static ::std::ffi::CStr14607     pub fn name() -> &'static ::std::ffi::CStr {
14608         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_draw_indirect_count\0")
14609             .expect("Wrong extension string")
14610     }
14611     pub const SPEC_VERSION: u32 = 1u32;
14612 }
14613 #[derive(Clone)]
14614 pub struct KhrDrawIndirectCountFn {
14615     pub cmd_draw_indirect_count_khr: crate::vk::PFN_vkCmdDrawIndirectCount,
14616     pub cmd_draw_indexed_indirect_count_khr: crate::vk::PFN_vkCmdDrawIndexedIndirectCount,
14617 }
14618 unsafe impl Send for KhrDrawIndirectCountFn {}
14619 unsafe impl Sync for KhrDrawIndirectCountFn {}
14620 impl KhrDrawIndirectCountFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14621     pub fn load<F>(mut _f: F) -> Self
14622     where
14623         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14624     {
14625         KhrDrawIndirectCountFn {
14626             cmd_draw_indirect_count_khr: unsafe {
14627                 unsafe extern "system" fn cmd_draw_indirect_count_khr(
14628                     _command_buffer: CommandBuffer,
14629                     _buffer: Buffer,
14630                     _offset: DeviceSize,
14631                     _count_buffer: Buffer,
14632                     _count_buffer_offset: DeviceSize,
14633                     _max_draw_count: u32,
14634                     _stride: u32,
14635                 ) {
14636                     panic!(concat!(
14637                         "Unable to load ",
14638                         stringify!(cmd_draw_indirect_count_khr)
14639                     ))
14640                 }
14641                 let cname =
14642                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndirectCountKHR\0");
14643                 let val = _f(cname);
14644                 if val.is_null() {
14645                     cmd_draw_indirect_count_khr
14646                 } else {
14647                     ::std::mem::transmute(val)
14648                 }
14649             },
14650             cmd_draw_indexed_indirect_count_khr: unsafe {
14651                 unsafe extern "system" fn cmd_draw_indexed_indirect_count_khr(
14652                     _command_buffer: CommandBuffer,
14653                     _buffer: Buffer,
14654                     _offset: DeviceSize,
14655                     _count_buffer: Buffer,
14656                     _count_buffer_offset: DeviceSize,
14657                     _max_draw_count: u32,
14658                     _stride: u32,
14659                 ) {
14660                     panic!(concat!(
14661                         "Unable to load ",
14662                         stringify!(cmd_draw_indexed_indirect_count_khr)
14663                     ))
14664                 }
14665                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14666                     b"vkCmdDrawIndexedIndirectCountKHR\0",
14667                 );
14668                 let val = _f(cname);
14669                 if val.is_null() {
14670                     cmd_draw_indexed_indirect_count_khr
14671                 } else {
14672                     ::std::mem::transmute(val)
14673                 }
14674             },
14675         }
14676     }
14677     #[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, )14678     pub unsafe fn cmd_draw_indirect_count_khr(
14679         &self,
14680         command_buffer: CommandBuffer,
14681         buffer: Buffer,
14682         offset: DeviceSize,
14683         count_buffer: Buffer,
14684         count_buffer_offset: DeviceSize,
14685         max_draw_count: u32,
14686         stride: u32,
14687     ) {
14688         (self.cmd_draw_indirect_count_khr)(
14689             command_buffer,
14690             buffer,
14691             offset,
14692             count_buffer,
14693             count_buffer_offset,
14694             max_draw_count,
14695             stride,
14696         )
14697     }
14698     #[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, )14699     pub unsafe fn cmd_draw_indexed_indirect_count_khr(
14700         &self,
14701         command_buffer: CommandBuffer,
14702         buffer: Buffer,
14703         offset: DeviceSize,
14704         count_buffer: Buffer,
14705         count_buffer_offset: DeviceSize,
14706         max_draw_count: u32,
14707         stride: u32,
14708     ) {
14709         (self.cmd_draw_indexed_indirect_count_khr)(
14710             command_buffer,
14711             buffer,
14712             offset,
14713             count_buffer,
14714             count_buffer_offset,
14715             max_draw_count,
14716             stride,
14717         )
14718     }
14719 }
14720 impl ExtFilterCubicFn {
name() -> &'static ::std::ffi::CStr14721     pub fn name() -> &'static ::std::ffi::CStr {
14722         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_filter_cubic\0")
14723             .expect("Wrong extension string")
14724     }
14725     pub const SPEC_VERSION: u32 = 3u32;
14726 }
14727 #[derive(Clone)]
14728 pub struct ExtFilterCubicFn {}
14729 unsafe impl Send for ExtFilterCubicFn {}
14730 unsafe impl Sync for ExtFilterCubicFn {}
14731 impl ExtFilterCubicFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14732     pub fn load<F>(mut _f: F) -> Self
14733     where
14734         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14735     {
14736         ExtFilterCubicFn {}
14737     }
14738 }
14739 #[doc = "Generated from 'VK_EXT_filter_cubic'"]
14740 impl Filter {
14741     pub const CUBIC_EXT: Self = Self::CUBIC_IMG;
14742 }
14743 #[doc = "Generated from 'VK_EXT_filter_cubic'"]
14744 impl FormatFeatureFlags {
14745     pub const SAMPLED_IMAGE_FILTER_CUBIC_EXT: Self = Self::SAMPLED_IMAGE_FILTER_CUBIC_IMG;
14746 }
14747 #[doc = "Generated from 'VK_EXT_filter_cubic'"]
14748 impl StructureType {
14749     pub const PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT: Self = Self(1_000_170_000);
14750 }
14751 #[doc = "Generated from 'VK_EXT_filter_cubic'"]
14752 impl StructureType {
14753     pub const FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT: Self = Self(1_000_170_001);
14754 }
14755 impl QcomRenderPassShaderResolveFn {
name() -> &'static ::std::ffi::CStr14756     pub fn name() -> &'static ::std::ffi::CStr {
14757         ::std::ffi::CStr::from_bytes_with_nul(b"VK_QCOM_render_pass_shader_resolve\0")
14758             .expect("Wrong extension string")
14759     }
14760     pub const SPEC_VERSION: u32 = 4u32;
14761 }
14762 #[derive(Clone)]
14763 pub struct QcomRenderPassShaderResolveFn {}
14764 unsafe impl Send for QcomRenderPassShaderResolveFn {}
14765 unsafe impl Sync for QcomRenderPassShaderResolveFn {}
14766 impl QcomRenderPassShaderResolveFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14767     pub fn load<F>(mut _f: F) -> Self
14768     where
14769         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14770     {
14771         QcomRenderPassShaderResolveFn {}
14772     }
14773 }
14774 #[doc = "Generated from 'VK_QCOM_render_pass_shader_resolve'"]
14775 impl SubpassDescriptionFlags {
14776     pub const FRAGMENT_REGION_QCOM: Self = Self(0b100);
14777 }
14778 #[doc = "Generated from 'VK_QCOM_render_pass_shader_resolve'"]
14779 impl SubpassDescriptionFlags {
14780     pub const SHADER_RESOLVE_QCOM: Self = Self(0b1000);
14781 }
14782 impl QcomExtension173Fn {
name() -> &'static ::std::ffi::CStr14783     pub fn name() -> &'static ::std::ffi::CStr {
14784         ::std::ffi::CStr::from_bytes_with_nul(b"VK_QCOM_extension_173\0")
14785             .expect("Wrong extension string")
14786     }
14787     pub const SPEC_VERSION: u32 = 0u32;
14788 }
14789 #[derive(Clone)]
14790 pub struct QcomExtension173Fn {}
14791 unsafe impl Send for QcomExtension173Fn {}
14792 unsafe impl Sync for QcomExtension173Fn {}
14793 impl QcomExtension173Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14794     pub fn load<F>(mut _f: F) -> Self
14795     where
14796         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14797     {
14798         QcomExtension173Fn {}
14799     }
14800 }
14801 #[doc = "Generated from 'VK_QCOM_extension_173'"]
14802 impl BufferUsageFlags {
14803     pub const RESERVED_18_QCOM: Self = Self(0b100_0000_0000_0000_0000);
14804 }
14805 #[doc = "Generated from 'VK_QCOM_extension_173'"]
14806 impl ImageUsageFlags {
14807     pub const RESERVED_16_QCOM: Self = Self(0b1_0000_0000_0000_0000);
14808 }
14809 #[doc = "Generated from 'VK_QCOM_extension_173'"]
14810 impl ImageUsageFlags {
14811     pub const RESERVED_17_QCOM: Self = Self(0b10_0000_0000_0000_0000);
14812 }
14813 impl QcomExtension174Fn {
name() -> &'static ::std::ffi::CStr14814     pub fn name() -> &'static ::std::ffi::CStr {
14815         ::std::ffi::CStr::from_bytes_with_nul(b"VK_QCOM_extension_174\0")
14816             .expect("Wrong extension string")
14817     }
14818     pub const SPEC_VERSION: u32 = 0u32;
14819 }
14820 #[derive(Clone)]
14821 pub struct QcomExtension174Fn {}
14822 unsafe impl Send for QcomExtension174Fn {}
14823 unsafe impl Sync for QcomExtension174Fn {}
14824 impl QcomExtension174Fn {
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         QcomExtension174Fn {}
14830     }
14831 }
14832 impl ExtGlobalPriorityFn {
name() -> &'static ::std::ffi::CStr14833     pub fn name() -> &'static ::std::ffi::CStr {
14834         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_global_priority\0")
14835             .expect("Wrong extension string")
14836     }
14837     pub const SPEC_VERSION: u32 = 2u32;
14838 }
14839 #[derive(Clone)]
14840 pub struct ExtGlobalPriorityFn {}
14841 unsafe impl Send for ExtGlobalPriorityFn {}
14842 unsafe impl Sync for ExtGlobalPriorityFn {}
14843 impl ExtGlobalPriorityFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14844     pub fn load<F>(mut _f: F) -> Self
14845     where
14846         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14847     {
14848         ExtGlobalPriorityFn {}
14849     }
14850 }
14851 #[doc = "Generated from 'VK_EXT_global_priority'"]
14852 impl StructureType {
14853     pub const DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT: Self = Self(1_000_174_000);
14854 }
14855 #[doc = "Generated from 'VK_EXT_global_priority'"]
14856 impl Result {
14857     pub const ERROR_NOT_PERMITTED_EXT: Self = Self(-1000174001);
14858 }
14859 impl KhrShaderSubgroupExtendedTypesFn {
name() -> &'static ::std::ffi::CStr14860     pub fn name() -> &'static ::std::ffi::CStr {
14861         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_shader_subgroup_extended_types\0")
14862             .expect("Wrong extension string")
14863     }
14864     pub const SPEC_VERSION: u32 = 1u32;
14865 }
14866 #[derive(Clone)]
14867 pub struct KhrShaderSubgroupExtendedTypesFn {}
14868 unsafe impl Send for KhrShaderSubgroupExtendedTypesFn {}
14869 unsafe impl Sync for KhrShaderSubgroupExtendedTypesFn {}
14870 impl KhrShaderSubgroupExtendedTypesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14871     pub fn load<F>(mut _f: F) -> Self
14872     where
14873         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14874     {
14875         KhrShaderSubgroupExtendedTypesFn {}
14876     }
14877 }
14878 #[doc = "Generated from 'VK_KHR_shader_subgroup_extended_types'"]
14879 impl StructureType {
14880     pub const PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR: Self =
14881         Self::PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES;
14882 }
14883 impl ExtExtension177Fn {
name() -> &'static ::std::ffi::CStr14884     pub fn name() -> &'static ::std::ffi::CStr {
14885         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_177\0")
14886             .expect("Wrong extension string")
14887     }
14888     pub const SPEC_VERSION: u32 = 0u32;
14889 }
14890 #[derive(Clone)]
14891 pub struct ExtExtension177Fn {}
14892 unsafe impl Send for ExtExtension177Fn {}
14893 unsafe impl Sync for ExtExtension177Fn {}
14894 impl ExtExtension177Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14895     pub fn load<F>(mut _f: F) -> Self
14896     where
14897         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14898     {
14899         ExtExtension177Fn {}
14900     }
14901 }
14902 impl Khr8bitStorageFn {
name() -> &'static ::std::ffi::CStr14903     pub fn name() -> &'static ::std::ffi::CStr {
14904         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_8bit_storage\0")
14905             .expect("Wrong extension string")
14906     }
14907     pub const SPEC_VERSION: u32 = 1u32;
14908 }
14909 #[derive(Clone)]
14910 pub struct Khr8bitStorageFn {}
14911 unsafe impl Send for Khr8bitStorageFn {}
14912 unsafe impl Sync for Khr8bitStorageFn {}
14913 impl Khr8bitStorageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14914     pub fn load<F>(mut _f: F) -> Self
14915     where
14916         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14917     {
14918         Khr8bitStorageFn {}
14919     }
14920 }
14921 #[doc = "Generated from 'VK_KHR_8bit_storage'"]
14922 impl StructureType {
14923     pub const PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR: Self =
14924         Self::PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES;
14925 }
14926 impl ExtExternalMemoryHostFn {
name() -> &'static ::std::ffi::CStr14927     pub fn name() -> &'static ::std::ffi::CStr {
14928         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_external_memory_host\0")
14929             .expect("Wrong extension string")
14930     }
14931     pub const SPEC_VERSION: u32 = 1u32;
14932 }
14933 #[allow(non_camel_case_types)]
14934 pub type PFN_vkGetMemoryHostPointerPropertiesEXT = unsafe extern "system" fn(
14935     device: Device,
14936     handle_type: ExternalMemoryHandleTypeFlags,
14937     p_host_pointer: *const c_void,
14938     p_memory_host_pointer_properties: *mut MemoryHostPointerPropertiesEXT,
14939 ) -> Result;
14940 #[derive(Clone)]
14941 pub struct ExtExternalMemoryHostFn {
14942     pub get_memory_host_pointer_properties_ext: PFN_vkGetMemoryHostPointerPropertiesEXT,
14943 }
14944 unsafe impl Send for ExtExternalMemoryHostFn {}
14945 unsafe impl Sync for ExtExternalMemoryHostFn {}
14946 impl ExtExternalMemoryHostFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14947     pub fn load<F>(mut _f: F) -> Self
14948     where
14949         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14950     {
14951         ExtExternalMemoryHostFn {
14952             get_memory_host_pointer_properties_ext: unsafe {
14953                 unsafe extern "system" fn get_memory_host_pointer_properties_ext(
14954                     _device: Device,
14955                     _handle_type: ExternalMemoryHandleTypeFlags,
14956                     _p_host_pointer: *const c_void,
14957                     _p_memory_host_pointer_properties: *mut MemoryHostPointerPropertiesEXT,
14958                 ) -> Result {
14959                     panic!(concat!(
14960                         "Unable to load ",
14961                         stringify!(get_memory_host_pointer_properties_ext)
14962                     ))
14963                 }
14964                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14965                     b"vkGetMemoryHostPointerPropertiesEXT\0",
14966                 );
14967                 let val = _f(cname);
14968                 if val.is_null() {
14969                     get_memory_host_pointer_properties_ext
14970                 } else {
14971                     ::std::mem::transmute(val)
14972                 }
14973             },
14974         }
14975     }
14976     #[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, ) -> Result14977     pub unsafe fn get_memory_host_pointer_properties_ext(
14978         &self,
14979         device: Device,
14980         handle_type: ExternalMemoryHandleTypeFlags,
14981         p_host_pointer: *const c_void,
14982         p_memory_host_pointer_properties: *mut MemoryHostPointerPropertiesEXT,
14983     ) -> Result {
14984         (self.get_memory_host_pointer_properties_ext)(
14985             device,
14986             handle_type,
14987             p_host_pointer,
14988             p_memory_host_pointer_properties,
14989         )
14990     }
14991 }
14992 #[doc = "Generated from 'VK_EXT_external_memory_host'"]
14993 impl StructureType {
14994     pub const IMPORT_MEMORY_HOST_POINTER_INFO_EXT: Self = Self(1_000_178_000);
14995 }
14996 #[doc = "Generated from 'VK_EXT_external_memory_host'"]
14997 impl StructureType {
14998     pub const MEMORY_HOST_POINTER_PROPERTIES_EXT: Self = Self(1_000_178_001);
14999 }
15000 #[doc = "Generated from 'VK_EXT_external_memory_host'"]
15001 impl StructureType {
15002     pub const PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT: Self = Self(1_000_178_002);
15003 }
15004 #[doc = "Generated from 'VK_EXT_external_memory_host'"]
15005 impl ExternalMemoryHandleTypeFlags {
15006     pub const HOST_ALLOCATION_EXT: Self = Self(0b1000_0000);
15007 }
15008 #[doc = "Generated from 'VK_EXT_external_memory_host'"]
15009 impl ExternalMemoryHandleTypeFlags {
15010     pub const HOST_MAPPED_FOREIGN_MEMORY_EXT: Self = Self(0b1_0000_0000);
15011 }
15012 impl AmdBufferMarkerFn {
name() -> &'static ::std::ffi::CStr15013     pub fn name() -> &'static ::std::ffi::CStr {
15014         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_buffer_marker\0")
15015             .expect("Wrong extension string")
15016     }
15017     pub const SPEC_VERSION: u32 = 1u32;
15018 }
15019 #[allow(non_camel_case_types)]
15020 pub type PFN_vkCmdWriteBufferMarkerAMD = unsafe extern "system" fn(
15021     command_buffer: CommandBuffer,
15022     pipeline_stage: PipelineStageFlags,
15023     dst_buffer: Buffer,
15024     dst_offset: DeviceSize,
15025     marker: u32,
15026 );
15027 #[derive(Clone)]
15028 pub struct AmdBufferMarkerFn {
15029     pub cmd_write_buffer_marker_amd: PFN_vkCmdWriteBufferMarkerAMD,
15030 }
15031 unsafe impl Send for AmdBufferMarkerFn {}
15032 unsafe impl Sync for AmdBufferMarkerFn {}
15033 impl AmdBufferMarkerFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15034     pub fn load<F>(mut _f: F) -> Self
15035     where
15036         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15037     {
15038         AmdBufferMarkerFn {
15039             cmd_write_buffer_marker_amd: unsafe {
15040                 unsafe extern "system" fn cmd_write_buffer_marker_amd(
15041                     _command_buffer: CommandBuffer,
15042                     _pipeline_stage: PipelineStageFlags,
15043                     _dst_buffer: Buffer,
15044                     _dst_offset: DeviceSize,
15045                     _marker: u32,
15046                 ) {
15047                     panic!(concat!(
15048                         "Unable to load ",
15049                         stringify!(cmd_write_buffer_marker_amd)
15050                     ))
15051                 }
15052                 let cname =
15053                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdWriteBufferMarkerAMD\0");
15054                 let val = _f(cname);
15055                 if val.is_null() {
15056                     cmd_write_buffer_marker_amd
15057                 } else {
15058                     ::std::mem::transmute(val)
15059                 }
15060             },
15061         }
15062     }
15063     #[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, )15064     pub unsafe fn cmd_write_buffer_marker_amd(
15065         &self,
15066         command_buffer: CommandBuffer,
15067         pipeline_stage: PipelineStageFlags,
15068         dst_buffer: Buffer,
15069         dst_offset: DeviceSize,
15070         marker: u32,
15071     ) {
15072         (self.cmd_write_buffer_marker_amd)(
15073             command_buffer,
15074             pipeline_stage,
15075             dst_buffer,
15076             dst_offset,
15077             marker,
15078         )
15079     }
15080 }
15081 impl KhrShaderAtomicInt64Fn {
name() -> &'static ::std::ffi::CStr15082     pub fn name() -> &'static ::std::ffi::CStr {
15083         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_shader_atomic_int64\0")
15084             .expect("Wrong extension string")
15085     }
15086     pub const SPEC_VERSION: u32 = 1u32;
15087 }
15088 #[derive(Clone)]
15089 pub struct KhrShaderAtomicInt64Fn {}
15090 unsafe impl Send for KhrShaderAtomicInt64Fn {}
15091 unsafe impl Sync for KhrShaderAtomicInt64Fn {}
15092 impl KhrShaderAtomicInt64Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15093     pub fn load<F>(mut _f: F) -> Self
15094     where
15095         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15096     {
15097         KhrShaderAtomicInt64Fn {}
15098     }
15099 }
15100 #[doc = "Generated from 'VK_KHR_shader_atomic_int64'"]
15101 impl StructureType {
15102     pub const PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR: Self =
15103         Self::PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES;
15104 }
15105 impl KhrShaderClockFn {
name() -> &'static ::std::ffi::CStr15106     pub fn name() -> &'static ::std::ffi::CStr {
15107         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_shader_clock\0")
15108             .expect("Wrong extension string")
15109     }
15110     pub const SPEC_VERSION: u32 = 1u32;
15111 }
15112 #[derive(Clone)]
15113 pub struct KhrShaderClockFn {}
15114 unsafe impl Send for KhrShaderClockFn {}
15115 unsafe impl Sync for KhrShaderClockFn {}
15116 impl KhrShaderClockFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15117     pub fn load<F>(mut _f: F) -> Self
15118     where
15119         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15120     {
15121         KhrShaderClockFn {}
15122     }
15123 }
15124 #[doc = "Generated from 'VK_KHR_shader_clock'"]
15125 impl StructureType {
15126     pub const PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR: Self = Self(1_000_181_000);
15127 }
15128 impl AmdExtension183Fn {
name() -> &'static ::std::ffi::CStr15129     pub fn name() -> &'static ::std::ffi::CStr {
15130         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_183\0")
15131             .expect("Wrong extension string")
15132     }
15133     pub const SPEC_VERSION: u32 = 0u32;
15134 }
15135 #[derive(Clone)]
15136 pub struct AmdExtension183Fn {}
15137 unsafe impl Send for AmdExtension183Fn {}
15138 unsafe impl Sync for AmdExtension183Fn {}
15139 impl AmdExtension183Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15140     pub fn load<F>(mut _f: F) -> Self
15141     where
15142         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15143     {
15144         AmdExtension183Fn {}
15145     }
15146 }
15147 impl AmdPipelineCompilerControlFn {
name() -> &'static ::std::ffi::CStr15148     pub fn name() -> &'static ::std::ffi::CStr {
15149         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_pipeline_compiler_control\0")
15150             .expect("Wrong extension string")
15151     }
15152     pub const SPEC_VERSION: u32 = 1u32;
15153 }
15154 #[derive(Clone)]
15155 pub struct AmdPipelineCompilerControlFn {}
15156 unsafe impl Send for AmdPipelineCompilerControlFn {}
15157 unsafe impl Sync for AmdPipelineCompilerControlFn {}
15158 impl AmdPipelineCompilerControlFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15159     pub fn load<F>(mut _f: F) -> Self
15160     where
15161         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15162     {
15163         AmdPipelineCompilerControlFn {}
15164     }
15165 }
15166 #[doc = "Generated from 'VK_AMD_pipeline_compiler_control'"]
15167 impl StructureType {
15168     pub const PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD: Self = Self(1_000_183_000);
15169 }
15170 impl ExtCalibratedTimestampsFn {
name() -> &'static ::std::ffi::CStr15171     pub fn name() -> &'static ::std::ffi::CStr {
15172         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_calibrated_timestamps\0")
15173             .expect("Wrong extension string")
15174     }
15175     pub const SPEC_VERSION: u32 = 2u32;
15176 }
15177 #[allow(non_camel_case_types)]
15178 pub type PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = unsafe extern "system" fn(
15179     physical_device: PhysicalDevice,
15180     p_time_domain_count: *mut u32,
15181     p_time_domains: *mut TimeDomainEXT,
15182 ) -> Result;
15183 #[allow(non_camel_case_types)]
15184 pub type PFN_vkGetCalibratedTimestampsEXT = unsafe extern "system" fn(
15185     device: Device,
15186     timestamp_count: u32,
15187     p_timestamp_infos: *const CalibratedTimestampInfoEXT,
15188     p_timestamps: *mut u64,
15189     p_max_deviation: *mut u64,
15190 ) -> Result;
15191 #[derive(Clone)]
15192 pub struct ExtCalibratedTimestampsFn {
15193     pub get_physical_device_calibrateable_time_domains_ext:
15194         PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT,
15195     pub get_calibrated_timestamps_ext: PFN_vkGetCalibratedTimestampsEXT,
15196 }
15197 unsafe impl Send for ExtCalibratedTimestampsFn {}
15198 unsafe impl Sync for ExtCalibratedTimestampsFn {}
15199 impl ExtCalibratedTimestampsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15200     pub fn load<F>(mut _f: F) -> Self
15201     where
15202         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15203     {
15204         ExtCalibratedTimestampsFn {
15205             get_physical_device_calibrateable_time_domains_ext: unsafe {
15206                 unsafe extern "system" fn get_physical_device_calibrateable_time_domains_ext(
15207                     _physical_device: PhysicalDevice,
15208                     _p_time_domain_count: *mut u32,
15209                     _p_time_domains: *mut TimeDomainEXT,
15210                 ) -> Result {
15211                     panic!(concat!(
15212                         "Unable to load ",
15213                         stringify!(get_physical_device_calibrateable_time_domains_ext)
15214                     ))
15215                 }
15216                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15217                     b"vkGetPhysicalDeviceCalibrateableTimeDomainsEXT\0",
15218                 );
15219                 let val = _f(cname);
15220                 if val.is_null() {
15221                     get_physical_device_calibrateable_time_domains_ext
15222                 } else {
15223                     ::std::mem::transmute(val)
15224                 }
15225             },
15226             get_calibrated_timestamps_ext: unsafe {
15227                 unsafe extern "system" fn get_calibrated_timestamps_ext(
15228                     _device: Device,
15229                     _timestamp_count: u32,
15230                     _p_timestamp_infos: *const CalibratedTimestampInfoEXT,
15231                     _p_timestamps: *mut u64,
15232                     _p_max_deviation: *mut u64,
15233                 ) -> Result {
15234                     panic!(concat!(
15235                         "Unable to load ",
15236                         stringify!(get_calibrated_timestamps_ext)
15237                     ))
15238                 }
15239                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15240                     b"vkGetCalibratedTimestampsEXT\0",
15241                 );
15242                 let val = _f(cname);
15243                 if val.is_null() {
15244                     get_calibrated_timestamps_ext
15245                 } else {
15246                     ::std::mem::transmute(val)
15247                 }
15248             },
15249         }
15250     }
15251     #[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, ) -> Result15252     pub unsafe fn get_physical_device_calibrateable_time_domains_ext(
15253         &self,
15254         physical_device: PhysicalDevice,
15255         p_time_domain_count: *mut u32,
15256         p_time_domains: *mut TimeDomainEXT,
15257     ) -> Result {
15258         (self.get_physical_device_calibrateable_time_domains_ext)(
15259             physical_device,
15260             p_time_domain_count,
15261             p_time_domains,
15262         )
15263     }
15264     #[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, ) -> Result15265     pub unsafe fn get_calibrated_timestamps_ext(
15266         &self,
15267         device: Device,
15268         timestamp_count: u32,
15269         p_timestamp_infos: *const CalibratedTimestampInfoEXT,
15270         p_timestamps: *mut u64,
15271         p_max_deviation: *mut u64,
15272     ) -> Result {
15273         (self.get_calibrated_timestamps_ext)(
15274             device,
15275             timestamp_count,
15276             p_timestamp_infos,
15277             p_timestamps,
15278             p_max_deviation,
15279         )
15280     }
15281 }
15282 #[doc = "Generated from 'VK_EXT_calibrated_timestamps'"]
15283 impl StructureType {
15284     pub const CALIBRATED_TIMESTAMP_INFO_EXT: Self = Self(1_000_184_000);
15285 }
15286 impl AmdShaderCorePropertiesFn {
name() -> &'static ::std::ffi::CStr15287     pub fn name() -> &'static ::std::ffi::CStr {
15288         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_shader_core_properties\0")
15289             .expect("Wrong extension string")
15290     }
15291     pub const SPEC_VERSION: u32 = 2u32;
15292 }
15293 #[derive(Clone)]
15294 pub struct AmdShaderCorePropertiesFn {}
15295 unsafe impl Send for AmdShaderCorePropertiesFn {}
15296 unsafe impl Sync for AmdShaderCorePropertiesFn {}
15297 impl AmdShaderCorePropertiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15298     pub fn load<F>(mut _f: F) -> Self
15299     where
15300         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15301     {
15302         AmdShaderCorePropertiesFn {}
15303     }
15304 }
15305 #[doc = "Generated from 'VK_AMD_shader_core_properties'"]
15306 impl StructureType {
15307     pub const PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD: Self = Self(1_000_185_000);
15308 }
15309 impl AmdExtension187Fn {
name() -> &'static ::std::ffi::CStr15310     pub fn name() -> &'static ::std::ffi::CStr {
15311         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_187\0")
15312             .expect("Wrong extension string")
15313     }
15314     pub const SPEC_VERSION: u32 = 0u32;
15315 }
15316 #[derive(Clone)]
15317 pub struct AmdExtension187Fn {}
15318 unsafe impl Send for AmdExtension187Fn {}
15319 unsafe impl Sync for AmdExtension187Fn {}
15320 impl AmdExtension187Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15321     pub fn load<F>(mut _f: F) -> Self
15322     where
15323         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15324     {
15325         AmdExtension187Fn {}
15326     }
15327 }
15328 impl ExtVideoDecodeH265Fn {
name() -> &'static ::std::ffi::CStr15329     pub fn name() -> &'static ::std::ffi::CStr {
15330         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_video_decode_h265\0")
15331             .expect("Wrong extension string")
15332     }
15333     pub const SPEC_VERSION: u32 = 1u32;
15334 }
15335 #[derive(Clone)]
15336 pub struct ExtVideoDecodeH265Fn {}
15337 unsafe impl Send for ExtVideoDecodeH265Fn {}
15338 unsafe impl Sync for ExtVideoDecodeH265Fn {}
15339 impl ExtVideoDecodeH265Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15340     pub fn load<F>(mut _f: F) -> Self
15341     where
15342         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15343     {
15344         ExtVideoDecodeH265Fn {}
15345     }
15346 }
15347 #[doc = "Generated from 'VK_EXT_video_decode_h265'"]
15348 impl StructureType {
15349     pub const VIDEO_DECODE_H265_CAPABILITIES_EXT: Self = Self(1_000_187_000);
15350 }
15351 #[doc = "Generated from 'VK_EXT_video_decode_h265'"]
15352 impl StructureType {
15353     pub const VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT: Self = Self(1_000_187_001);
15354 }
15355 #[doc = "Generated from 'VK_EXT_video_decode_h265'"]
15356 impl StructureType {
15357     pub const VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT: Self = Self(1_000_187_002);
15358 }
15359 #[doc = "Generated from 'VK_EXT_video_decode_h265'"]
15360 impl StructureType {
15361     pub const VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT: Self = Self(1_000_187_003);
15362 }
15363 #[doc = "Generated from 'VK_EXT_video_decode_h265'"]
15364 impl StructureType {
15365     pub const VIDEO_DECODE_H265_PROFILE_EXT: Self = Self(1_000_187_004);
15366 }
15367 #[doc = "Generated from 'VK_EXT_video_decode_h265'"]
15368 impl StructureType {
15369     pub const VIDEO_DECODE_H265_PICTURE_INFO_EXT: Self = Self(1_000_187_005);
15370 }
15371 #[doc = "Generated from 'VK_EXT_video_decode_h265'"]
15372 impl StructureType {
15373     pub const VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT: Self = Self(1_000_187_006);
15374 }
15375 #[doc = "Generated from 'VK_EXT_video_decode_h265'"]
15376 impl VideoCodecOperationFlagsKHR {
15377     pub const DECODE_H265_EXT: Self = Self(0b10);
15378 }
15379 impl AmdExtension189Fn {
name() -> &'static ::std::ffi::CStr15380     pub fn name() -> &'static ::std::ffi::CStr {
15381         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_189\0")
15382             .expect("Wrong extension string")
15383     }
15384     pub const SPEC_VERSION: u32 = 0u32;
15385 }
15386 #[derive(Clone)]
15387 pub struct AmdExtension189Fn {}
15388 unsafe impl Send for AmdExtension189Fn {}
15389 unsafe impl Sync for AmdExtension189Fn {}
15390 impl AmdExtension189Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15391     pub fn load<F>(mut _f: F) -> Self
15392     where
15393         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15394     {
15395         AmdExtension189Fn {}
15396     }
15397 }
15398 impl AmdMemoryOverallocationBehaviorFn {
name() -> &'static ::std::ffi::CStr15399     pub fn name() -> &'static ::std::ffi::CStr {
15400         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_memory_overallocation_behavior\0")
15401             .expect("Wrong extension string")
15402     }
15403     pub const SPEC_VERSION: u32 = 1u32;
15404 }
15405 #[derive(Clone)]
15406 pub struct AmdMemoryOverallocationBehaviorFn {}
15407 unsafe impl Send for AmdMemoryOverallocationBehaviorFn {}
15408 unsafe impl Sync for AmdMemoryOverallocationBehaviorFn {}
15409 impl AmdMemoryOverallocationBehaviorFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15410     pub fn load<F>(mut _f: F) -> Self
15411     where
15412         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15413     {
15414         AmdMemoryOverallocationBehaviorFn {}
15415     }
15416 }
15417 #[doc = "Generated from 'VK_AMD_memory_overallocation_behavior'"]
15418 impl StructureType {
15419     pub const DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD: Self = Self(1_000_189_000);
15420 }
15421 impl ExtVertexAttributeDivisorFn {
name() -> &'static ::std::ffi::CStr15422     pub fn name() -> &'static ::std::ffi::CStr {
15423         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_vertex_attribute_divisor\0")
15424             .expect("Wrong extension string")
15425     }
15426     pub const SPEC_VERSION: u32 = 3u32;
15427 }
15428 #[derive(Clone)]
15429 pub struct ExtVertexAttributeDivisorFn {}
15430 unsafe impl Send for ExtVertexAttributeDivisorFn {}
15431 unsafe impl Sync for ExtVertexAttributeDivisorFn {}
15432 impl ExtVertexAttributeDivisorFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15433     pub fn load<F>(mut _f: F) -> Self
15434     where
15435         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15436     {
15437         ExtVertexAttributeDivisorFn {}
15438     }
15439 }
15440 #[doc = "Generated from 'VK_EXT_vertex_attribute_divisor'"]
15441 impl StructureType {
15442     pub const PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: Self = Self(1_000_190_000);
15443 }
15444 #[doc = "Generated from 'VK_EXT_vertex_attribute_divisor'"]
15445 impl StructureType {
15446     pub const PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: Self = Self(1_000_190_001);
15447 }
15448 #[doc = "Generated from 'VK_EXT_vertex_attribute_divisor'"]
15449 impl StructureType {
15450     pub const PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT: Self = Self(1_000_190_002);
15451 }
15452 impl GgpFrameTokenFn {
name() -> &'static ::std::ffi::CStr15453     pub fn name() -> &'static ::std::ffi::CStr {
15454         ::std::ffi::CStr::from_bytes_with_nul(b"VK_GGP_frame_token\0")
15455             .expect("Wrong extension string")
15456     }
15457     pub const SPEC_VERSION: u32 = 1u32;
15458 }
15459 #[derive(Clone)]
15460 pub struct GgpFrameTokenFn {}
15461 unsafe impl Send for GgpFrameTokenFn {}
15462 unsafe impl Sync for GgpFrameTokenFn {}
15463 impl GgpFrameTokenFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15464     pub fn load<F>(mut _f: F) -> Self
15465     where
15466         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15467     {
15468         GgpFrameTokenFn {}
15469     }
15470 }
15471 #[doc = "Generated from 'VK_GGP_frame_token'"]
15472 impl StructureType {
15473     pub const PRESENT_FRAME_TOKEN_GGP: Self = Self(1_000_191_000);
15474 }
15475 impl ExtPipelineCreationFeedbackFn {
name() -> &'static ::std::ffi::CStr15476     pub fn name() -> &'static ::std::ffi::CStr {
15477         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_pipeline_creation_feedback\0")
15478             .expect("Wrong extension string")
15479     }
15480     pub const SPEC_VERSION: u32 = 1u32;
15481 }
15482 #[derive(Clone)]
15483 pub struct ExtPipelineCreationFeedbackFn {}
15484 unsafe impl Send for ExtPipelineCreationFeedbackFn {}
15485 unsafe impl Sync for ExtPipelineCreationFeedbackFn {}
15486 impl ExtPipelineCreationFeedbackFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15487     pub fn load<F>(mut _f: F) -> Self
15488     where
15489         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15490     {
15491         ExtPipelineCreationFeedbackFn {}
15492     }
15493 }
15494 #[doc = "Generated from 'VK_EXT_pipeline_creation_feedback'"]
15495 impl StructureType {
15496     pub const PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT: Self = Self(1_000_192_000);
15497 }
15498 impl GoogleExtension194Fn {
name() -> &'static ::std::ffi::CStr15499     pub fn name() -> &'static ::std::ffi::CStr {
15500         ::std::ffi::CStr::from_bytes_with_nul(b"VK_GOOGLE_extension_194\0")
15501             .expect("Wrong extension string")
15502     }
15503     pub const SPEC_VERSION: u32 = 0u32;
15504 }
15505 #[derive(Clone)]
15506 pub struct GoogleExtension194Fn {}
15507 unsafe impl Send for GoogleExtension194Fn {}
15508 unsafe impl Sync for GoogleExtension194Fn {}
15509 impl GoogleExtension194Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15510     pub fn load<F>(mut _f: F) -> Self
15511     where
15512         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15513     {
15514         GoogleExtension194Fn {}
15515     }
15516 }
15517 impl GoogleExtension195Fn {
name() -> &'static ::std::ffi::CStr15518     pub fn name() -> &'static ::std::ffi::CStr {
15519         ::std::ffi::CStr::from_bytes_with_nul(b"VK_GOOGLE_extension_195\0")
15520             .expect("Wrong extension string")
15521     }
15522     pub const SPEC_VERSION: u32 = 0u32;
15523 }
15524 #[derive(Clone)]
15525 pub struct GoogleExtension195Fn {}
15526 unsafe impl Send for GoogleExtension195Fn {}
15527 unsafe impl Sync for GoogleExtension195Fn {}
15528 impl GoogleExtension195Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15529     pub fn load<F>(mut _f: F) -> Self
15530     where
15531         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15532     {
15533         GoogleExtension195Fn {}
15534     }
15535 }
15536 impl GoogleExtension196Fn {
name() -> &'static ::std::ffi::CStr15537     pub fn name() -> &'static ::std::ffi::CStr {
15538         ::std::ffi::CStr::from_bytes_with_nul(b"VK_GOOGLE_extension_196\0")
15539             .expect("Wrong extension string")
15540     }
15541     pub const SPEC_VERSION: u32 = 0u32;
15542 }
15543 #[derive(Clone)]
15544 pub struct GoogleExtension196Fn {}
15545 unsafe impl Send for GoogleExtension196Fn {}
15546 unsafe impl Sync for GoogleExtension196Fn {}
15547 impl GoogleExtension196Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15548     pub fn load<F>(mut _f: F) -> Self
15549     where
15550         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15551     {
15552         GoogleExtension196Fn {}
15553     }
15554 }
15555 #[doc = "Generated from 'VK_GOOGLE_extension_196'"]
15556 impl PipelineCacheCreateFlags {
15557     pub const RESERVED_1_EXT: Self = Self(0b10);
15558 }
15559 impl KhrDriverPropertiesFn {
name() -> &'static ::std::ffi::CStr15560     pub fn name() -> &'static ::std::ffi::CStr {
15561         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_driver_properties\0")
15562             .expect("Wrong extension string")
15563     }
15564     pub const SPEC_VERSION: u32 = 1u32;
15565 }
15566 #[derive(Clone)]
15567 pub struct KhrDriverPropertiesFn {}
15568 unsafe impl Send for KhrDriverPropertiesFn {}
15569 unsafe impl Sync for KhrDriverPropertiesFn {}
15570 impl KhrDriverPropertiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15571     pub fn load<F>(mut _f: F) -> Self
15572     where
15573         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15574     {
15575         KhrDriverPropertiesFn {}
15576     }
15577 }
15578 #[doc = "Generated from 'VK_KHR_driver_properties'"]
15579 impl StructureType {
15580     pub const PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR: Self = Self::PHYSICAL_DEVICE_DRIVER_PROPERTIES;
15581 }
15582 #[doc = "Generated from 'VK_KHR_driver_properties'"]
15583 impl DriverId {
15584     pub const AMD_PROPRIETARY_KHR: Self = Self::AMD_PROPRIETARY;
15585 }
15586 #[doc = "Generated from 'VK_KHR_driver_properties'"]
15587 impl DriverId {
15588     pub const AMD_OPEN_SOURCE_KHR: Self = Self::AMD_OPEN_SOURCE;
15589 }
15590 #[doc = "Generated from 'VK_KHR_driver_properties'"]
15591 impl DriverId {
15592     pub const MESA_RADV_KHR: Self = Self::MESA_RADV;
15593 }
15594 #[doc = "Generated from 'VK_KHR_driver_properties'"]
15595 impl DriverId {
15596     pub const NVIDIA_PROPRIETARY_KHR: Self = Self::NVIDIA_PROPRIETARY;
15597 }
15598 #[doc = "Generated from 'VK_KHR_driver_properties'"]
15599 impl DriverId {
15600     pub const INTEL_PROPRIETARY_WINDOWS_KHR: Self = Self::INTEL_PROPRIETARY_WINDOWS;
15601 }
15602 #[doc = "Generated from 'VK_KHR_driver_properties'"]
15603 impl DriverId {
15604     pub const INTEL_OPEN_SOURCE_MESA_KHR: Self = Self::INTEL_OPEN_SOURCE_MESA;
15605 }
15606 #[doc = "Generated from 'VK_KHR_driver_properties'"]
15607 impl DriverId {
15608     pub const IMAGINATION_PROPRIETARY_KHR: Self = Self::IMAGINATION_PROPRIETARY;
15609 }
15610 #[doc = "Generated from 'VK_KHR_driver_properties'"]
15611 impl DriverId {
15612     pub const QUALCOMM_PROPRIETARY_KHR: Self = Self::QUALCOMM_PROPRIETARY;
15613 }
15614 #[doc = "Generated from 'VK_KHR_driver_properties'"]
15615 impl DriverId {
15616     pub const ARM_PROPRIETARY_KHR: Self = Self::ARM_PROPRIETARY;
15617 }
15618 #[doc = "Generated from 'VK_KHR_driver_properties'"]
15619 impl DriverId {
15620     pub const GOOGLE_SWIFTSHADER_KHR: Self = Self::GOOGLE_SWIFTSHADER;
15621 }
15622 #[doc = "Generated from 'VK_KHR_driver_properties'"]
15623 impl DriverId {
15624     pub const GGP_PROPRIETARY_KHR: Self = Self::GGP_PROPRIETARY;
15625 }
15626 #[doc = "Generated from 'VK_KHR_driver_properties'"]
15627 impl DriverId {
15628     pub const BROADCOM_PROPRIETARY_KHR: Self = Self::BROADCOM_PROPRIETARY;
15629 }
15630 impl KhrShaderFloatControlsFn {
name() -> &'static ::std::ffi::CStr15631     pub fn name() -> &'static ::std::ffi::CStr {
15632         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_shader_float_controls\0")
15633             .expect("Wrong extension string")
15634     }
15635     pub const SPEC_VERSION: u32 = 4u32;
15636 }
15637 #[derive(Clone)]
15638 pub struct KhrShaderFloatControlsFn {}
15639 unsafe impl Send for KhrShaderFloatControlsFn {}
15640 unsafe impl Sync for KhrShaderFloatControlsFn {}
15641 impl KhrShaderFloatControlsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15642     pub fn load<F>(mut _f: F) -> Self
15643     where
15644         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15645     {
15646         KhrShaderFloatControlsFn {}
15647     }
15648 }
15649 #[doc = "Generated from 'VK_KHR_shader_float_controls'"]
15650 impl StructureType {
15651     pub const PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR: Self =
15652         Self::PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES;
15653 }
15654 #[doc = "Generated from 'VK_KHR_shader_float_controls'"]
15655 impl ShaderFloatControlsIndependence {
15656     pub const TYPE_32_ONLY_KHR: Self = Self::TYPE_32_ONLY;
15657 }
15658 #[doc = "Generated from 'VK_KHR_shader_float_controls'"]
15659 impl ShaderFloatControlsIndependence {
15660     pub const ALL_KHR: Self = Self::ALL;
15661 }
15662 #[doc = "Generated from 'VK_KHR_shader_float_controls'"]
15663 impl ShaderFloatControlsIndependence {
15664     pub const NONE_KHR: Self = Self::NONE;
15665 }
15666 impl NvShaderSubgroupPartitionedFn {
name() -> &'static ::std::ffi::CStr15667     pub fn name() -> &'static ::std::ffi::CStr {
15668         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_shader_subgroup_partitioned\0")
15669             .expect("Wrong extension string")
15670     }
15671     pub const SPEC_VERSION: u32 = 1u32;
15672 }
15673 #[derive(Clone)]
15674 pub struct NvShaderSubgroupPartitionedFn {}
15675 unsafe impl Send for NvShaderSubgroupPartitionedFn {}
15676 unsafe impl Sync for NvShaderSubgroupPartitionedFn {}
15677 impl NvShaderSubgroupPartitionedFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15678     pub fn load<F>(mut _f: F) -> Self
15679     where
15680         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15681     {
15682         NvShaderSubgroupPartitionedFn {}
15683     }
15684 }
15685 #[doc = "Generated from 'VK_NV_shader_subgroup_partitioned'"]
15686 impl SubgroupFeatureFlags {
15687     pub const PARTITIONED_NV: Self = Self(0b1_0000_0000);
15688 }
15689 impl KhrDepthStencilResolveFn {
name() -> &'static ::std::ffi::CStr15690     pub fn name() -> &'static ::std::ffi::CStr {
15691         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_depth_stencil_resolve\0")
15692             .expect("Wrong extension string")
15693     }
15694     pub const SPEC_VERSION: u32 = 1u32;
15695 }
15696 #[derive(Clone)]
15697 pub struct KhrDepthStencilResolveFn {}
15698 unsafe impl Send for KhrDepthStencilResolveFn {}
15699 unsafe impl Sync for KhrDepthStencilResolveFn {}
15700 impl KhrDepthStencilResolveFn {
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         KhrDepthStencilResolveFn {}
15706     }
15707 }
15708 #[doc = "Generated from 'VK_KHR_depth_stencil_resolve'"]
15709 impl StructureType {
15710     pub const PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR: Self =
15711         Self::PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES;
15712 }
15713 #[doc = "Generated from 'VK_KHR_depth_stencil_resolve'"]
15714 impl StructureType {
15715     pub const SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR: Self =
15716         Self::SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE;
15717 }
15718 #[doc = "Generated from 'VK_KHR_depth_stencil_resolve'"]
15719 impl ResolveModeFlags {
15720     pub const NONE_KHR: Self = Self::NONE;
15721 }
15722 #[doc = "Generated from 'VK_KHR_depth_stencil_resolve'"]
15723 impl ResolveModeFlags {
15724     pub const SAMPLE_ZERO_KHR: Self = Self::SAMPLE_ZERO;
15725 }
15726 #[doc = "Generated from 'VK_KHR_depth_stencil_resolve'"]
15727 impl ResolveModeFlags {
15728     pub const AVERAGE_KHR: Self = Self::AVERAGE;
15729 }
15730 #[doc = "Generated from 'VK_KHR_depth_stencil_resolve'"]
15731 impl ResolveModeFlags {
15732     pub const MIN_KHR: Self = Self::MIN;
15733 }
15734 #[doc = "Generated from 'VK_KHR_depth_stencil_resolve'"]
15735 impl ResolveModeFlags {
15736     pub const MAX_KHR: Self = Self::MAX;
15737 }
15738 impl KhrSwapchainMutableFormatFn {
name() -> &'static ::std::ffi::CStr15739     pub fn name() -> &'static ::std::ffi::CStr {
15740         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_swapchain_mutable_format\0")
15741             .expect("Wrong extension string")
15742     }
15743     pub const SPEC_VERSION: u32 = 1u32;
15744 }
15745 #[derive(Clone)]
15746 pub struct KhrSwapchainMutableFormatFn {}
15747 unsafe impl Send for KhrSwapchainMutableFormatFn {}
15748 unsafe impl Sync for KhrSwapchainMutableFormatFn {}
15749 impl KhrSwapchainMutableFormatFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15750     pub fn load<F>(mut _f: F) -> Self
15751     where
15752         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15753     {
15754         KhrSwapchainMutableFormatFn {}
15755     }
15756 }
15757 #[doc = "Generated from 'VK_KHR_swapchain_mutable_format'"]
15758 impl SwapchainCreateFlagsKHR {
15759     pub const MUTABLE_FORMAT: Self = Self(0b100);
15760 }
15761 impl NvComputeShaderDerivativesFn {
name() -> &'static ::std::ffi::CStr15762     pub fn name() -> &'static ::std::ffi::CStr {
15763         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_compute_shader_derivatives\0")
15764             .expect("Wrong extension string")
15765     }
15766     pub const SPEC_VERSION: u32 = 1u32;
15767 }
15768 #[derive(Clone)]
15769 pub struct NvComputeShaderDerivativesFn {}
15770 unsafe impl Send for NvComputeShaderDerivativesFn {}
15771 unsafe impl Sync for NvComputeShaderDerivativesFn {}
15772 impl NvComputeShaderDerivativesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15773     pub fn load<F>(mut _f: F) -> Self
15774     where
15775         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15776     {
15777         NvComputeShaderDerivativesFn {}
15778     }
15779 }
15780 #[doc = "Generated from 'VK_NV_compute_shader_derivatives'"]
15781 impl StructureType {
15782     pub const PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: Self = Self(1_000_201_000);
15783 }
15784 impl NvMeshShaderFn {
name() -> &'static ::std::ffi::CStr15785     pub fn name() -> &'static ::std::ffi::CStr {
15786         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_mesh_shader\0")
15787             .expect("Wrong extension string")
15788     }
15789     pub const SPEC_VERSION: u32 = 1u32;
15790 }
15791 #[allow(non_camel_case_types)]
15792 pub type PFN_vkCmdDrawMeshTasksNV =
15793     unsafe extern "system" fn(command_buffer: CommandBuffer, task_count: u32, first_task: u32);
15794 #[allow(non_camel_case_types)]
15795 pub type PFN_vkCmdDrawMeshTasksIndirectNV = unsafe extern "system" fn(
15796     command_buffer: CommandBuffer,
15797     buffer: Buffer,
15798     offset: DeviceSize,
15799     draw_count: u32,
15800     stride: u32,
15801 );
15802 #[allow(non_camel_case_types)]
15803 pub type PFN_vkCmdDrawMeshTasksIndirectCountNV = unsafe extern "system" fn(
15804     command_buffer: CommandBuffer,
15805     buffer: Buffer,
15806     offset: DeviceSize,
15807     count_buffer: Buffer,
15808     count_buffer_offset: DeviceSize,
15809     max_draw_count: u32,
15810     stride: u32,
15811 );
15812 #[derive(Clone)]
15813 pub struct NvMeshShaderFn {
15814     pub cmd_draw_mesh_tasks_nv: PFN_vkCmdDrawMeshTasksNV,
15815     pub cmd_draw_mesh_tasks_indirect_nv: PFN_vkCmdDrawMeshTasksIndirectNV,
15816     pub cmd_draw_mesh_tasks_indirect_count_nv: PFN_vkCmdDrawMeshTasksIndirectCountNV,
15817 }
15818 unsafe impl Send for NvMeshShaderFn {}
15819 unsafe impl Sync for NvMeshShaderFn {}
15820 impl NvMeshShaderFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15821     pub fn load<F>(mut _f: F) -> Self
15822     where
15823         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15824     {
15825         NvMeshShaderFn {
15826             cmd_draw_mesh_tasks_nv: unsafe {
15827                 unsafe extern "system" fn cmd_draw_mesh_tasks_nv(
15828                     _command_buffer: CommandBuffer,
15829                     _task_count: u32,
15830                     _first_task: u32,
15831                 ) {
15832                     panic!(concat!(
15833                         "Unable to load ",
15834                         stringify!(cmd_draw_mesh_tasks_nv)
15835                     ))
15836                 }
15837                 let cname =
15838                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMeshTasksNV\0");
15839                 let val = _f(cname);
15840                 if val.is_null() {
15841                     cmd_draw_mesh_tasks_nv
15842                 } else {
15843                     ::std::mem::transmute(val)
15844                 }
15845             },
15846             cmd_draw_mesh_tasks_indirect_nv: unsafe {
15847                 unsafe extern "system" fn cmd_draw_mesh_tasks_indirect_nv(
15848                     _command_buffer: CommandBuffer,
15849                     _buffer: Buffer,
15850                     _offset: DeviceSize,
15851                     _draw_count: u32,
15852                     _stride: u32,
15853                 ) {
15854                     panic!(concat!(
15855                         "Unable to load ",
15856                         stringify!(cmd_draw_mesh_tasks_indirect_nv)
15857                     ))
15858                 }
15859                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15860                     b"vkCmdDrawMeshTasksIndirectNV\0",
15861                 );
15862                 let val = _f(cname);
15863                 if val.is_null() {
15864                     cmd_draw_mesh_tasks_indirect_nv
15865                 } else {
15866                     ::std::mem::transmute(val)
15867                 }
15868             },
15869             cmd_draw_mesh_tasks_indirect_count_nv: unsafe {
15870                 unsafe extern "system" fn cmd_draw_mesh_tasks_indirect_count_nv(
15871                     _command_buffer: CommandBuffer,
15872                     _buffer: Buffer,
15873                     _offset: DeviceSize,
15874                     _count_buffer: Buffer,
15875                     _count_buffer_offset: DeviceSize,
15876                     _max_draw_count: u32,
15877                     _stride: u32,
15878                 ) {
15879                     panic!(concat!(
15880                         "Unable to load ",
15881                         stringify!(cmd_draw_mesh_tasks_indirect_count_nv)
15882                     ))
15883                 }
15884                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15885                     b"vkCmdDrawMeshTasksIndirectCountNV\0",
15886                 );
15887                 let val = _f(cname);
15888                 if val.is_null() {
15889                     cmd_draw_mesh_tasks_indirect_count_nv
15890                 } else {
15891                     ::std::mem::transmute(val)
15892                 }
15893             },
15894         }
15895     }
15896     #[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, )15897     pub unsafe fn cmd_draw_mesh_tasks_nv(
15898         &self,
15899         command_buffer: CommandBuffer,
15900         task_count: u32,
15901         first_task: u32,
15902     ) {
15903         (self.cmd_draw_mesh_tasks_nv)(command_buffer, task_count, first_task)
15904     }
15905     #[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, )15906     pub unsafe fn cmd_draw_mesh_tasks_indirect_nv(
15907         &self,
15908         command_buffer: CommandBuffer,
15909         buffer: Buffer,
15910         offset: DeviceSize,
15911         draw_count: u32,
15912         stride: u32,
15913     ) {
15914         (self.cmd_draw_mesh_tasks_indirect_nv)(command_buffer, buffer, offset, draw_count, stride)
15915     }
15916     #[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, )15917     pub unsafe fn cmd_draw_mesh_tasks_indirect_count_nv(
15918         &self,
15919         command_buffer: CommandBuffer,
15920         buffer: Buffer,
15921         offset: DeviceSize,
15922         count_buffer: Buffer,
15923         count_buffer_offset: DeviceSize,
15924         max_draw_count: u32,
15925         stride: u32,
15926     ) {
15927         (self.cmd_draw_mesh_tasks_indirect_count_nv)(
15928             command_buffer,
15929             buffer,
15930             offset,
15931             count_buffer,
15932             count_buffer_offset,
15933             max_draw_count,
15934             stride,
15935         )
15936     }
15937 }
15938 #[doc = "Generated from 'VK_NV_mesh_shader'"]
15939 impl StructureType {
15940     pub const PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV: Self = Self(1_000_202_000);
15941 }
15942 #[doc = "Generated from 'VK_NV_mesh_shader'"]
15943 impl StructureType {
15944     pub const PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV: Self = Self(1_000_202_001);
15945 }
15946 #[doc = "Generated from 'VK_NV_mesh_shader'"]
15947 impl ShaderStageFlags {
15948     pub const TASK_NV: Self = Self(0b100_0000);
15949 }
15950 #[doc = "Generated from 'VK_NV_mesh_shader'"]
15951 impl ShaderStageFlags {
15952     pub const MESH_NV: Self = Self(0b1000_0000);
15953 }
15954 #[doc = "Generated from 'VK_NV_mesh_shader'"]
15955 impl PipelineStageFlags {
15956     pub const TASK_SHADER_NV: Self = Self(0b1000_0000_0000_0000_0000);
15957 }
15958 #[doc = "Generated from 'VK_NV_mesh_shader'"]
15959 impl PipelineStageFlags {
15960     pub const MESH_SHADER_NV: Self = Self(0b1_0000_0000_0000_0000_0000);
15961 }
15962 impl NvFragmentShaderBarycentricFn {
name() -> &'static ::std::ffi::CStr15963     pub fn name() -> &'static ::std::ffi::CStr {
15964         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_fragment_shader_barycentric\0")
15965             .expect("Wrong extension string")
15966     }
15967     pub const SPEC_VERSION: u32 = 1u32;
15968 }
15969 #[derive(Clone)]
15970 pub struct NvFragmentShaderBarycentricFn {}
15971 unsafe impl Send for NvFragmentShaderBarycentricFn {}
15972 unsafe impl Sync for NvFragmentShaderBarycentricFn {}
15973 impl NvFragmentShaderBarycentricFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15974     pub fn load<F>(mut _f: F) -> Self
15975     where
15976         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15977     {
15978         NvFragmentShaderBarycentricFn {}
15979     }
15980 }
15981 #[doc = "Generated from 'VK_NV_fragment_shader_barycentric'"]
15982 impl StructureType {
15983     pub const PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV: Self = Self(1_000_203_000);
15984 }
15985 impl NvShaderImageFootprintFn {
name() -> &'static ::std::ffi::CStr15986     pub fn name() -> &'static ::std::ffi::CStr {
15987         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_shader_image_footprint\0")
15988             .expect("Wrong extension string")
15989     }
15990     pub const SPEC_VERSION: u32 = 2u32;
15991 }
15992 #[derive(Clone)]
15993 pub struct NvShaderImageFootprintFn {}
15994 unsafe impl Send for NvShaderImageFootprintFn {}
15995 unsafe impl Sync for NvShaderImageFootprintFn {}
15996 impl NvShaderImageFootprintFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15997     pub fn load<F>(mut _f: F) -> Self
15998     where
15999         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16000     {
16001         NvShaderImageFootprintFn {}
16002     }
16003 }
16004 #[doc = "Generated from 'VK_NV_shader_image_footprint'"]
16005 impl StructureType {
16006     pub const PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV: Self = Self(1_000_204_000);
16007 }
16008 impl NvScissorExclusiveFn {
name() -> &'static ::std::ffi::CStr16009     pub fn name() -> &'static ::std::ffi::CStr {
16010         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_scissor_exclusive\0")
16011             .expect("Wrong extension string")
16012     }
16013     pub const SPEC_VERSION: u32 = 1u32;
16014 }
16015 #[allow(non_camel_case_types)]
16016 pub type PFN_vkCmdSetExclusiveScissorNV = unsafe extern "system" fn(
16017     command_buffer: CommandBuffer,
16018     first_exclusive_scissor: u32,
16019     exclusive_scissor_count: u32,
16020     p_exclusive_scissors: *const Rect2D,
16021 );
16022 #[derive(Clone)]
16023 pub struct NvScissorExclusiveFn {
16024     pub cmd_set_exclusive_scissor_nv: PFN_vkCmdSetExclusiveScissorNV,
16025 }
16026 unsafe impl Send for NvScissorExclusiveFn {}
16027 unsafe impl Sync for NvScissorExclusiveFn {}
16028 impl NvScissorExclusiveFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16029     pub fn load<F>(mut _f: F) -> Self
16030     where
16031         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16032     {
16033         NvScissorExclusiveFn {
16034             cmd_set_exclusive_scissor_nv: unsafe {
16035                 unsafe extern "system" fn cmd_set_exclusive_scissor_nv(
16036                     _command_buffer: CommandBuffer,
16037                     _first_exclusive_scissor: u32,
16038                     _exclusive_scissor_count: u32,
16039                     _p_exclusive_scissors: *const Rect2D,
16040                 ) {
16041                     panic!(concat!(
16042                         "Unable to load ",
16043                         stringify!(cmd_set_exclusive_scissor_nv)
16044                     ))
16045                 }
16046                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16047                     b"vkCmdSetExclusiveScissorNV\0",
16048                 );
16049                 let val = _f(cname);
16050                 if val.is_null() {
16051                     cmd_set_exclusive_scissor_nv
16052                 } else {
16053                     ::std::mem::transmute(val)
16054                 }
16055             },
16056         }
16057     }
16058     #[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, )16059     pub unsafe fn cmd_set_exclusive_scissor_nv(
16060         &self,
16061         command_buffer: CommandBuffer,
16062         first_exclusive_scissor: u32,
16063         exclusive_scissor_count: u32,
16064         p_exclusive_scissors: *const Rect2D,
16065     ) {
16066         (self.cmd_set_exclusive_scissor_nv)(
16067             command_buffer,
16068             first_exclusive_scissor,
16069             exclusive_scissor_count,
16070             p_exclusive_scissors,
16071         )
16072     }
16073 }
16074 #[doc = "Generated from 'VK_NV_scissor_exclusive'"]
16075 impl StructureType {
16076     pub const PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV: Self = Self(1_000_205_000);
16077 }
16078 #[doc = "Generated from 'VK_NV_scissor_exclusive'"]
16079 impl DynamicState {
16080     pub const EXCLUSIVE_SCISSOR_NV: Self = Self(1_000_205_001);
16081 }
16082 #[doc = "Generated from 'VK_NV_scissor_exclusive'"]
16083 impl StructureType {
16084     pub const PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV: Self = Self(1_000_205_002);
16085 }
16086 impl NvDeviceDiagnosticCheckpointsFn {
name() -> &'static ::std::ffi::CStr16087     pub fn name() -> &'static ::std::ffi::CStr {
16088         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_device_diagnostic_checkpoints\0")
16089             .expect("Wrong extension string")
16090     }
16091     pub const SPEC_VERSION: u32 = 2u32;
16092 }
16093 #[allow(non_camel_case_types)]
16094 pub type PFN_vkCmdSetCheckpointNV =
16095     unsafe extern "system" fn(command_buffer: CommandBuffer, p_checkpoint_marker: *const c_void);
16096 #[allow(non_camel_case_types)]
16097 pub type PFN_vkGetQueueCheckpointDataNV = unsafe extern "system" fn(
16098     queue: Queue,
16099     p_checkpoint_data_count: *mut u32,
16100     p_checkpoint_data: *mut CheckpointDataNV,
16101 );
16102 #[derive(Clone)]
16103 pub struct NvDeviceDiagnosticCheckpointsFn {
16104     pub cmd_set_checkpoint_nv: PFN_vkCmdSetCheckpointNV,
16105     pub get_queue_checkpoint_data_nv: PFN_vkGetQueueCheckpointDataNV,
16106 }
16107 unsafe impl Send for NvDeviceDiagnosticCheckpointsFn {}
16108 unsafe impl Sync for NvDeviceDiagnosticCheckpointsFn {}
16109 impl NvDeviceDiagnosticCheckpointsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16110     pub fn load<F>(mut _f: F) -> Self
16111     where
16112         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16113     {
16114         NvDeviceDiagnosticCheckpointsFn {
16115             cmd_set_checkpoint_nv: unsafe {
16116                 unsafe extern "system" fn cmd_set_checkpoint_nv(
16117                     _command_buffer: CommandBuffer,
16118                     _p_checkpoint_marker: *const c_void,
16119                 ) {
16120                     panic!(concat!(
16121                         "Unable to load ",
16122                         stringify!(cmd_set_checkpoint_nv)
16123                     ))
16124                 }
16125                 let cname =
16126                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCheckpointNV\0");
16127                 let val = _f(cname);
16128                 if val.is_null() {
16129                     cmd_set_checkpoint_nv
16130                 } else {
16131                     ::std::mem::transmute(val)
16132                 }
16133             },
16134             get_queue_checkpoint_data_nv: unsafe {
16135                 unsafe extern "system" fn get_queue_checkpoint_data_nv(
16136                     _queue: Queue,
16137                     _p_checkpoint_data_count: *mut u32,
16138                     _p_checkpoint_data: *mut CheckpointDataNV,
16139                 ) {
16140                     panic!(concat!(
16141                         "Unable to load ",
16142                         stringify!(get_queue_checkpoint_data_nv)
16143                     ))
16144                 }
16145                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16146                     b"vkGetQueueCheckpointDataNV\0",
16147                 );
16148                 let val = _f(cname);
16149                 if val.is_null() {
16150                     get_queue_checkpoint_data_nv
16151                 } else {
16152                     ::std::mem::transmute(val)
16153                 }
16154             },
16155         }
16156     }
16157     #[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, )16158     pub unsafe fn cmd_set_checkpoint_nv(
16159         &self,
16160         command_buffer: CommandBuffer,
16161         p_checkpoint_marker: *const c_void,
16162     ) {
16163         (self.cmd_set_checkpoint_nv)(command_buffer, p_checkpoint_marker)
16164     }
16165     #[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, )16166     pub unsafe fn get_queue_checkpoint_data_nv(
16167         &self,
16168         queue: Queue,
16169         p_checkpoint_data_count: *mut u32,
16170         p_checkpoint_data: *mut CheckpointDataNV,
16171     ) {
16172         (self.get_queue_checkpoint_data_nv)(queue, p_checkpoint_data_count, p_checkpoint_data)
16173     }
16174 }
16175 #[doc = "Generated from 'VK_NV_device_diagnostic_checkpoints'"]
16176 impl StructureType {
16177     pub const CHECKPOINT_DATA_NV: Self = Self(1_000_206_000);
16178 }
16179 #[doc = "Generated from 'VK_NV_device_diagnostic_checkpoints'"]
16180 impl StructureType {
16181     pub const QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV: Self = Self(1_000_206_001);
16182 }
16183 impl KhrTimelineSemaphoreFn {
name() -> &'static ::std::ffi::CStr16184     pub fn name() -> &'static ::std::ffi::CStr {
16185         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_timeline_semaphore\0")
16186             .expect("Wrong extension string")
16187     }
16188     pub const SPEC_VERSION: u32 = 2u32;
16189 }
16190 #[allow(non_camel_case_types)]
16191 pub type PFN_vkGetSemaphoreCounterValue =
16192     unsafe extern "system" fn(device: Device, semaphore: Semaphore, p_value: *mut u64) -> Result;
16193 #[allow(non_camel_case_types)]
16194 pub type PFN_vkWaitSemaphores = unsafe extern "system" fn(
16195     device: Device,
16196     p_wait_info: *const SemaphoreWaitInfo,
16197     timeout: u64,
16198 ) -> Result;
16199 #[allow(non_camel_case_types)]
16200 pub type PFN_vkSignalSemaphore =
16201     unsafe extern "system" fn(device: Device, p_signal_info: *const SemaphoreSignalInfo) -> Result;
16202 #[derive(Clone)]
16203 pub struct KhrTimelineSemaphoreFn {
16204     pub get_semaphore_counter_value_khr: PFN_vkGetSemaphoreCounterValue,
16205     pub wait_semaphores_khr: PFN_vkWaitSemaphores,
16206     pub signal_semaphore_khr: PFN_vkSignalSemaphore,
16207 }
16208 unsafe impl Send for KhrTimelineSemaphoreFn {}
16209 unsafe impl Sync for KhrTimelineSemaphoreFn {}
16210 impl KhrTimelineSemaphoreFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16211     pub fn load<F>(mut _f: F) -> Self
16212     where
16213         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16214     {
16215         KhrTimelineSemaphoreFn {
16216             get_semaphore_counter_value_khr: unsafe {
16217                 unsafe extern "system" fn get_semaphore_counter_value_khr(
16218                     _device: Device,
16219                     _semaphore: Semaphore,
16220                     _p_value: *mut u64,
16221                 ) -> Result {
16222                     panic!(concat!(
16223                         "Unable to load ",
16224                         stringify!(get_semaphore_counter_value_khr)
16225                     ))
16226                 }
16227                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16228                     b"vkGetSemaphoreCounterValueKHR\0",
16229                 );
16230                 let val = _f(cname);
16231                 if val.is_null() {
16232                     get_semaphore_counter_value_khr
16233                 } else {
16234                     ::std::mem::transmute(val)
16235                 }
16236             },
16237             wait_semaphores_khr: unsafe {
16238                 unsafe extern "system" fn wait_semaphores_khr(
16239                     _device: Device,
16240                     _p_wait_info: *const SemaphoreWaitInfo,
16241                     _timeout: u64,
16242                 ) -> Result {
16243                     panic!(concat!("Unable to load ", stringify!(wait_semaphores_khr)))
16244                 }
16245                 let cname =
16246                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkWaitSemaphoresKHR\0");
16247                 let val = _f(cname);
16248                 if val.is_null() {
16249                     wait_semaphores_khr
16250                 } else {
16251                     ::std::mem::transmute(val)
16252                 }
16253             },
16254             signal_semaphore_khr: unsafe {
16255                 unsafe extern "system" fn signal_semaphore_khr(
16256                     _device: Device,
16257                     _p_signal_info: *const SemaphoreSignalInfo,
16258                 ) -> Result {
16259                     panic!(concat!("Unable to load ", stringify!(signal_semaphore_khr)))
16260                 }
16261                 let cname =
16262                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkSignalSemaphoreKHR\0");
16263                 let val = _f(cname);
16264                 if val.is_null() {
16265                     signal_semaphore_khr
16266                 } else {
16267                     ::std::mem::transmute(val)
16268                 }
16269             },
16270         }
16271     }
16272     #[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, ) -> Result16273     pub unsafe fn get_semaphore_counter_value_khr(
16274         &self,
16275         device: Device,
16276         semaphore: Semaphore,
16277         p_value: *mut u64,
16278     ) -> Result {
16279         (self.get_semaphore_counter_value_khr)(device, semaphore, p_value)
16280     }
16281     #[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, ) -> Result16282     pub unsafe fn wait_semaphores_khr(
16283         &self,
16284         device: Device,
16285         p_wait_info: *const SemaphoreWaitInfo,
16286         timeout: u64,
16287     ) -> Result {
16288         (self.wait_semaphores_khr)(device, p_wait_info, timeout)
16289     }
16290     #[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, ) -> Result16291     pub unsafe fn signal_semaphore_khr(
16292         &self,
16293         device: Device,
16294         p_signal_info: *const SemaphoreSignalInfo,
16295     ) -> Result {
16296         (self.signal_semaphore_khr)(device, p_signal_info)
16297     }
16298 }
16299 #[doc = "Generated from 'VK_KHR_timeline_semaphore'"]
16300 impl StructureType {
16301     pub const PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR: Self =
16302         Self::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES;
16303 }
16304 #[doc = "Generated from 'VK_KHR_timeline_semaphore'"]
16305 impl StructureType {
16306     pub const PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR: Self =
16307         Self::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES;
16308 }
16309 #[doc = "Generated from 'VK_KHR_timeline_semaphore'"]
16310 impl StructureType {
16311     pub const SEMAPHORE_TYPE_CREATE_INFO_KHR: Self = Self::SEMAPHORE_TYPE_CREATE_INFO;
16312 }
16313 #[doc = "Generated from 'VK_KHR_timeline_semaphore'"]
16314 impl StructureType {
16315     pub const TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR: Self = Self::TIMELINE_SEMAPHORE_SUBMIT_INFO;
16316 }
16317 #[doc = "Generated from 'VK_KHR_timeline_semaphore'"]
16318 impl StructureType {
16319     pub const SEMAPHORE_WAIT_INFO_KHR: Self = Self::SEMAPHORE_WAIT_INFO;
16320 }
16321 #[doc = "Generated from 'VK_KHR_timeline_semaphore'"]
16322 impl StructureType {
16323     pub const SEMAPHORE_SIGNAL_INFO_KHR: Self = Self::SEMAPHORE_SIGNAL_INFO;
16324 }
16325 #[doc = "Generated from 'VK_KHR_timeline_semaphore'"]
16326 impl SemaphoreType {
16327     pub const BINARY_KHR: Self = Self::BINARY;
16328 }
16329 #[doc = "Generated from 'VK_KHR_timeline_semaphore'"]
16330 impl SemaphoreType {
16331     pub const TIMELINE_KHR: Self = Self::TIMELINE;
16332 }
16333 #[doc = "Generated from 'VK_KHR_timeline_semaphore'"]
16334 impl SemaphoreWaitFlags {
16335     pub const ANY_KHR: Self = Self::ANY;
16336 }
16337 impl KhrExtension209Fn {
name() -> &'static ::std::ffi::CStr16338     pub fn name() -> &'static ::std::ffi::CStr {
16339         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_209\0")
16340             .expect("Wrong extension string")
16341     }
16342     pub const SPEC_VERSION: u32 = 0u32;
16343 }
16344 #[derive(Clone)]
16345 pub struct KhrExtension209Fn {}
16346 unsafe impl Send for KhrExtension209Fn {}
16347 unsafe impl Sync for KhrExtension209Fn {}
16348 impl KhrExtension209Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16349     pub fn load<F>(mut _f: F) -> Self
16350     where
16351         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16352     {
16353         KhrExtension209Fn {}
16354     }
16355 }
16356 impl IntelShaderIntegerFunctions2Fn {
name() -> &'static ::std::ffi::CStr16357     pub fn name() -> &'static ::std::ffi::CStr {
16358         ::std::ffi::CStr::from_bytes_with_nul(b"VK_INTEL_shader_integer_functions2\0")
16359             .expect("Wrong extension string")
16360     }
16361     pub const SPEC_VERSION: u32 = 1u32;
16362 }
16363 #[derive(Clone)]
16364 pub struct IntelShaderIntegerFunctions2Fn {}
16365 unsafe impl Send for IntelShaderIntegerFunctions2Fn {}
16366 unsafe impl Sync for IntelShaderIntegerFunctions2Fn {}
16367 impl IntelShaderIntegerFunctions2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16368     pub fn load<F>(mut _f: F) -> Self
16369     where
16370         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16371     {
16372         IntelShaderIntegerFunctions2Fn {}
16373     }
16374 }
16375 #[doc = "Generated from 'VK_INTEL_shader_integer_functions2'"]
16376 impl StructureType {
16377     pub const PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL: Self = Self(1_000_209_000);
16378 }
16379 impl IntelPerformanceQueryFn {
name() -> &'static ::std::ffi::CStr16380     pub fn name() -> &'static ::std::ffi::CStr {
16381         ::std::ffi::CStr::from_bytes_with_nul(b"VK_INTEL_performance_query\0")
16382             .expect("Wrong extension string")
16383     }
16384     pub const SPEC_VERSION: u32 = 2u32;
16385 }
16386 #[allow(non_camel_case_types)]
16387 pub type PFN_vkInitializePerformanceApiINTEL = unsafe extern "system" fn(
16388     device: Device,
16389     p_initialize_info: *const InitializePerformanceApiInfoINTEL,
16390 ) -> Result;
16391 #[allow(non_camel_case_types)]
16392 pub type PFN_vkUninitializePerformanceApiINTEL = unsafe extern "system" fn(device: Device);
16393 #[allow(non_camel_case_types)]
16394 pub type PFN_vkCmdSetPerformanceMarkerINTEL = unsafe extern "system" fn(
16395     command_buffer: CommandBuffer,
16396     p_marker_info: *const PerformanceMarkerInfoINTEL,
16397 ) -> Result;
16398 #[allow(non_camel_case_types)]
16399 pub type PFN_vkCmdSetPerformanceStreamMarkerINTEL = unsafe extern "system" fn(
16400     command_buffer: CommandBuffer,
16401     p_marker_info: *const PerformanceStreamMarkerInfoINTEL,
16402 ) -> Result;
16403 #[allow(non_camel_case_types)]
16404 pub type PFN_vkCmdSetPerformanceOverrideINTEL = unsafe extern "system" fn(
16405     command_buffer: CommandBuffer,
16406     p_override_info: *const PerformanceOverrideInfoINTEL,
16407 ) -> Result;
16408 #[allow(non_camel_case_types)]
16409 pub type PFN_vkAcquirePerformanceConfigurationINTEL = unsafe extern "system" fn(
16410     device: Device,
16411     p_acquire_info: *const PerformanceConfigurationAcquireInfoINTEL,
16412     p_configuration: *mut PerformanceConfigurationINTEL,
16413 ) -> Result;
16414 #[allow(non_camel_case_types)]
16415 pub type PFN_vkReleasePerformanceConfigurationINTEL = unsafe extern "system" fn(
16416     device: Device,
16417     configuration: PerformanceConfigurationINTEL,
16418 ) -> Result;
16419 #[allow(non_camel_case_types)]
16420 pub type PFN_vkQueueSetPerformanceConfigurationINTEL =
16421     unsafe extern "system" fn(queue: Queue, configuration: PerformanceConfigurationINTEL) -> Result;
16422 #[allow(non_camel_case_types)]
16423 pub type PFN_vkGetPerformanceParameterINTEL = unsafe extern "system" fn(
16424     device: Device,
16425     parameter: PerformanceParameterTypeINTEL,
16426     p_value: *mut PerformanceValueINTEL,
16427 ) -> Result;
16428 #[derive(Clone)]
16429 pub struct IntelPerformanceQueryFn {
16430     pub initialize_performance_api_intel: PFN_vkInitializePerformanceApiINTEL,
16431     pub uninitialize_performance_api_intel: PFN_vkUninitializePerformanceApiINTEL,
16432     pub cmd_set_performance_marker_intel: PFN_vkCmdSetPerformanceMarkerINTEL,
16433     pub cmd_set_performance_stream_marker_intel: PFN_vkCmdSetPerformanceStreamMarkerINTEL,
16434     pub cmd_set_performance_override_intel: PFN_vkCmdSetPerformanceOverrideINTEL,
16435     pub acquire_performance_configuration_intel: PFN_vkAcquirePerformanceConfigurationINTEL,
16436     pub release_performance_configuration_intel: PFN_vkReleasePerformanceConfigurationINTEL,
16437     pub queue_set_performance_configuration_intel: PFN_vkQueueSetPerformanceConfigurationINTEL,
16438     pub get_performance_parameter_intel: PFN_vkGetPerformanceParameterINTEL,
16439 }
16440 unsafe impl Send for IntelPerformanceQueryFn {}
16441 unsafe impl Sync for IntelPerformanceQueryFn {}
16442 impl IntelPerformanceQueryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16443     pub fn load<F>(mut _f: F) -> Self
16444     where
16445         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16446     {
16447         IntelPerformanceQueryFn {
16448             initialize_performance_api_intel: unsafe {
16449                 unsafe extern "system" fn initialize_performance_api_intel(
16450                     _device: Device,
16451                     _p_initialize_info: *const InitializePerformanceApiInfoINTEL,
16452                 ) -> Result {
16453                     panic!(concat!(
16454                         "Unable to load ",
16455                         stringify!(initialize_performance_api_intel)
16456                     ))
16457                 }
16458                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16459                     b"vkInitializePerformanceApiINTEL\0",
16460                 );
16461                 let val = _f(cname);
16462                 if val.is_null() {
16463                     initialize_performance_api_intel
16464                 } else {
16465                     ::std::mem::transmute(val)
16466                 }
16467             },
16468             uninitialize_performance_api_intel: unsafe {
16469                 unsafe extern "system" fn uninitialize_performance_api_intel(_device: Device) {
16470                     panic!(concat!(
16471                         "Unable to load ",
16472                         stringify!(uninitialize_performance_api_intel)
16473                     ))
16474                 }
16475                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16476                     b"vkUninitializePerformanceApiINTEL\0",
16477                 );
16478                 let val = _f(cname);
16479                 if val.is_null() {
16480                     uninitialize_performance_api_intel
16481                 } else {
16482                     ::std::mem::transmute(val)
16483                 }
16484             },
16485             cmd_set_performance_marker_intel: unsafe {
16486                 unsafe extern "system" fn cmd_set_performance_marker_intel(
16487                     _command_buffer: CommandBuffer,
16488                     _p_marker_info: *const PerformanceMarkerInfoINTEL,
16489                 ) -> Result {
16490                     panic!(concat!(
16491                         "Unable to load ",
16492                         stringify!(cmd_set_performance_marker_intel)
16493                     ))
16494                 }
16495                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16496                     b"vkCmdSetPerformanceMarkerINTEL\0",
16497                 );
16498                 let val = _f(cname);
16499                 if val.is_null() {
16500                     cmd_set_performance_marker_intel
16501                 } else {
16502                     ::std::mem::transmute(val)
16503                 }
16504             },
16505             cmd_set_performance_stream_marker_intel: unsafe {
16506                 unsafe extern "system" fn cmd_set_performance_stream_marker_intel(
16507                     _command_buffer: CommandBuffer,
16508                     _p_marker_info: *const PerformanceStreamMarkerInfoINTEL,
16509                 ) -> Result {
16510                     panic!(concat!(
16511                         "Unable to load ",
16512                         stringify!(cmd_set_performance_stream_marker_intel)
16513                     ))
16514                 }
16515                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16516                     b"vkCmdSetPerformanceStreamMarkerINTEL\0",
16517                 );
16518                 let val = _f(cname);
16519                 if val.is_null() {
16520                     cmd_set_performance_stream_marker_intel
16521                 } else {
16522                     ::std::mem::transmute(val)
16523                 }
16524             },
16525             cmd_set_performance_override_intel: unsafe {
16526                 unsafe extern "system" fn cmd_set_performance_override_intel(
16527                     _command_buffer: CommandBuffer,
16528                     _p_override_info: *const PerformanceOverrideInfoINTEL,
16529                 ) -> Result {
16530                     panic!(concat!(
16531                         "Unable to load ",
16532                         stringify!(cmd_set_performance_override_intel)
16533                     ))
16534                 }
16535                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16536                     b"vkCmdSetPerformanceOverrideINTEL\0",
16537                 );
16538                 let val = _f(cname);
16539                 if val.is_null() {
16540                     cmd_set_performance_override_intel
16541                 } else {
16542                     ::std::mem::transmute(val)
16543                 }
16544             },
16545             acquire_performance_configuration_intel: unsafe {
16546                 unsafe extern "system" fn acquire_performance_configuration_intel(
16547                     _device: Device,
16548                     _p_acquire_info: *const PerformanceConfigurationAcquireInfoINTEL,
16549                     _p_configuration: *mut PerformanceConfigurationINTEL,
16550                 ) -> Result {
16551                     panic!(concat!(
16552                         "Unable to load ",
16553                         stringify!(acquire_performance_configuration_intel)
16554                     ))
16555                 }
16556                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16557                     b"vkAcquirePerformanceConfigurationINTEL\0",
16558                 );
16559                 let val = _f(cname);
16560                 if val.is_null() {
16561                     acquire_performance_configuration_intel
16562                 } else {
16563                     ::std::mem::transmute(val)
16564                 }
16565             },
16566             release_performance_configuration_intel: unsafe {
16567                 unsafe extern "system" fn release_performance_configuration_intel(
16568                     _device: Device,
16569                     _configuration: PerformanceConfigurationINTEL,
16570                 ) -> Result {
16571                     panic!(concat!(
16572                         "Unable to load ",
16573                         stringify!(release_performance_configuration_intel)
16574                     ))
16575                 }
16576                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16577                     b"vkReleasePerformanceConfigurationINTEL\0",
16578                 );
16579                 let val = _f(cname);
16580                 if val.is_null() {
16581                     release_performance_configuration_intel
16582                 } else {
16583                     ::std::mem::transmute(val)
16584                 }
16585             },
16586             queue_set_performance_configuration_intel: unsafe {
16587                 unsafe extern "system" fn queue_set_performance_configuration_intel(
16588                     _queue: Queue,
16589                     _configuration: PerformanceConfigurationINTEL,
16590                 ) -> Result {
16591                     panic!(concat!(
16592                         "Unable to load ",
16593                         stringify!(queue_set_performance_configuration_intel)
16594                     ))
16595                 }
16596                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16597                     b"vkQueueSetPerformanceConfigurationINTEL\0",
16598                 );
16599                 let val = _f(cname);
16600                 if val.is_null() {
16601                     queue_set_performance_configuration_intel
16602                 } else {
16603                     ::std::mem::transmute(val)
16604                 }
16605             },
16606             get_performance_parameter_intel: unsafe {
16607                 unsafe extern "system" fn get_performance_parameter_intel(
16608                     _device: Device,
16609                     _parameter: PerformanceParameterTypeINTEL,
16610                     _p_value: *mut PerformanceValueINTEL,
16611                 ) -> Result {
16612                     panic!(concat!(
16613                         "Unable to load ",
16614                         stringify!(get_performance_parameter_intel)
16615                     ))
16616                 }
16617                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16618                     b"vkGetPerformanceParameterINTEL\0",
16619                 );
16620                 let val = _f(cname);
16621                 if val.is_null() {
16622                     get_performance_parameter_intel
16623                 } else {
16624                     ::std::mem::transmute(val)
16625                 }
16626             },
16627         }
16628     }
16629     #[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, ) -> Result16630     pub unsafe fn initialize_performance_api_intel(
16631         &self,
16632         device: Device,
16633         p_initialize_info: *const InitializePerformanceApiInfoINTEL,
16634     ) -> Result {
16635         (self.initialize_performance_api_intel)(device, p_initialize_info)
16636     }
16637     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkUninitializePerformanceApiINTEL.html>"]
uninitialize_performance_api_intel(&self, device: Device)16638     pub unsafe fn uninitialize_performance_api_intel(&self, device: Device) {
16639         (self.uninitialize_performance_api_intel)(device)
16640     }
16641     #[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, ) -> Result16642     pub unsafe fn cmd_set_performance_marker_intel(
16643         &self,
16644         command_buffer: CommandBuffer,
16645         p_marker_info: *const PerformanceMarkerInfoINTEL,
16646     ) -> Result {
16647         (self.cmd_set_performance_marker_intel)(command_buffer, p_marker_info)
16648     }
16649     #[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, ) -> Result16650     pub unsafe fn cmd_set_performance_stream_marker_intel(
16651         &self,
16652         command_buffer: CommandBuffer,
16653         p_marker_info: *const PerformanceStreamMarkerInfoINTEL,
16654     ) -> Result {
16655         (self.cmd_set_performance_stream_marker_intel)(command_buffer, p_marker_info)
16656     }
16657     #[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, ) -> Result16658     pub unsafe fn cmd_set_performance_override_intel(
16659         &self,
16660         command_buffer: CommandBuffer,
16661         p_override_info: *const PerformanceOverrideInfoINTEL,
16662     ) -> Result {
16663         (self.cmd_set_performance_override_intel)(command_buffer, p_override_info)
16664     }
16665     #[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, ) -> Result16666     pub unsafe fn acquire_performance_configuration_intel(
16667         &self,
16668         device: Device,
16669         p_acquire_info: *const PerformanceConfigurationAcquireInfoINTEL,
16670         p_configuration: *mut PerformanceConfigurationINTEL,
16671     ) -> Result {
16672         (self.acquire_performance_configuration_intel)(device, p_acquire_info, p_configuration)
16673     }
16674     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkReleasePerformanceConfigurationINTEL.html>"]
release_performance_configuration_intel( &self, device: Device, configuration: PerformanceConfigurationINTEL, ) -> Result16675     pub unsafe fn release_performance_configuration_intel(
16676         &self,
16677         device: Device,
16678         configuration: PerformanceConfigurationINTEL,
16679     ) -> Result {
16680         (self.release_performance_configuration_intel)(device, configuration)
16681     }
16682     #[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, ) -> Result16683     pub unsafe fn queue_set_performance_configuration_intel(
16684         &self,
16685         queue: Queue,
16686         configuration: PerformanceConfigurationINTEL,
16687     ) -> Result {
16688         (self.queue_set_performance_configuration_intel)(queue, configuration)
16689     }
16690     #[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, ) -> Result16691     pub unsafe fn get_performance_parameter_intel(
16692         &self,
16693         device: Device,
16694         parameter: PerformanceParameterTypeINTEL,
16695         p_value: *mut PerformanceValueINTEL,
16696     ) -> Result {
16697         (self.get_performance_parameter_intel)(device, parameter, p_value)
16698     }
16699 }
16700 #[doc = "Generated from 'VK_INTEL_performance_query'"]
16701 impl StructureType {
16702     pub const QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL: Self = Self(1_000_210_000);
16703 }
16704 #[doc = "Generated from 'VK_INTEL_performance_query'"]
16705 impl StructureType {
16706     pub const QUERY_POOL_CREATE_INFO_INTEL: Self =
16707         Self::QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL;
16708 }
16709 #[doc = "Generated from 'VK_INTEL_performance_query'"]
16710 impl StructureType {
16711     pub const INITIALIZE_PERFORMANCE_API_INFO_INTEL: Self = Self(1_000_210_001);
16712 }
16713 #[doc = "Generated from 'VK_INTEL_performance_query'"]
16714 impl StructureType {
16715     pub const PERFORMANCE_MARKER_INFO_INTEL: Self = Self(1_000_210_002);
16716 }
16717 #[doc = "Generated from 'VK_INTEL_performance_query'"]
16718 impl StructureType {
16719     pub const PERFORMANCE_STREAM_MARKER_INFO_INTEL: Self = Self(1_000_210_003);
16720 }
16721 #[doc = "Generated from 'VK_INTEL_performance_query'"]
16722 impl StructureType {
16723     pub const PERFORMANCE_OVERRIDE_INFO_INTEL: Self = Self(1_000_210_004);
16724 }
16725 #[doc = "Generated from 'VK_INTEL_performance_query'"]
16726 impl StructureType {
16727     pub const PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL: Self = Self(1_000_210_005);
16728 }
16729 #[doc = "Generated from 'VK_INTEL_performance_query'"]
16730 impl QueryType {
16731     pub const PERFORMANCE_QUERY_INTEL: Self = Self(1_000_210_000);
16732 }
16733 #[doc = "Generated from 'VK_INTEL_performance_query'"]
16734 impl ObjectType {
16735     pub const PERFORMANCE_CONFIGURATION_INTEL: Self = Self(1_000_210_000);
16736 }
16737 impl KhrVulkanMemoryModelFn {
name() -> &'static ::std::ffi::CStr16738     pub fn name() -> &'static ::std::ffi::CStr {
16739         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_vulkan_memory_model\0")
16740             .expect("Wrong extension string")
16741     }
16742     pub const SPEC_VERSION: u32 = 3u32;
16743 }
16744 #[derive(Clone)]
16745 pub struct KhrVulkanMemoryModelFn {}
16746 unsafe impl Send for KhrVulkanMemoryModelFn {}
16747 unsafe impl Sync for KhrVulkanMemoryModelFn {}
16748 impl KhrVulkanMemoryModelFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16749     pub fn load<F>(mut _f: F) -> Self
16750     where
16751         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16752     {
16753         KhrVulkanMemoryModelFn {}
16754     }
16755 }
16756 #[doc = "Generated from 'VK_KHR_vulkan_memory_model'"]
16757 impl StructureType {
16758     pub const PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR: Self =
16759         Self::PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES;
16760 }
16761 impl ExtPciBusInfoFn {
name() -> &'static ::std::ffi::CStr16762     pub fn name() -> &'static ::std::ffi::CStr {
16763         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_pci_bus_info\0")
16764             .expect("Wrong extension string")
16765     }
16766     pub const SPEC_VERSION: u32 = 2u32;
16767 }
16768 #[derive(Clone)]
16769 pub struct ExtPciBusInfoFn {}
16770 unsafe impl Send for ExtPciBusInfoFn {}
16771 unsafe impl Sync for ExtPciBusInfoFn {}
16772 impl ExtPciBusInfoFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16773     pub fn load<F>(mut _f: F) -> Self
16774     where
16775         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16776     {
16777         ExtPciBusInfoFn {}
16778     }
16779 }
16780 #[doc = "Generated from 'VK_EXT_pci_bus_info'"]
16781 impl StructureType {
16782     pub const PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT: Self = Self(1_000_212_000);
16783 }
16784 impl AmdDisplayNativeHdrFn {
name() -> &'static ::std::ffi::CStr16785     pub fn name() -> &'static ::std::ffi::CStr {
16786         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_display_native_hdr\0")
16787             .expect("Wrong extension string")
16788     }
16789     pub const SPEC_VERSION: u32 = 1u32;
16790 }
16791 #[allow(non_camel_case_types)]
16792 pub type PFN_vkSetLocalDimmingAMD = unsafe extern "system" fn(
16793     device: Device,
16794     swap_chain: SwapchainKHR,
16795     local_dimming_enable: Bool32,
16796 );
16797 #[derive(Clone)]
16798 pub struct AmdDisplayNativeHdrFn {
16799     pub set_local_dimming_amd: PFN_vkSetLocalDimmingAMD,
16800 }
16801 unsafe impl Send for AmdDisplayNativeHdrFn {}
16802 unsafe impl Sync for AmdDisplayNativeHdrFn {}
16803 impl AmdDisplayNativeHdrFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16804     pub fn load<F>(mut _f: F) -> Self
16805     where
16806         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16807     {
16808         AmdDisplayNativeHdrFn {
16809             set_local_dimming_amd: unsafe {
16810                 unsafe extern "system" fn set_local_dimming_amd(
16811                     _device: Device,
16812                     _swap_chain: SwapchainKHR,
16813                     _local_dimming_enable: Bool32,
16814                 ) {
16815                     panic!(concat!(
16816                         "Unable to load ",
16817                         stringify!(set_local_dimming_amd)
16818                     ))
16819                 }
16820                 let cname =
16821                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkSetLocalDimmingAMD\0");
16822                 let val = _f(cname);
16823                 if val.is_null() {
16824                     set_local_dimming_amd
16825                 } else {
16826                     ::std::mem::transmute(val)
16827                 }
16828             },
16829         }
16830     }
16831     #[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, )16832     pub unsafe fn set_local_dimming_amd(
16833         &self,
16834         device: Device,
16835         swap_chain: SwapchainKHR,
16836         local_dimming_enable: Bool32,
16837     ) {
16838         (self.set_local_dimming_amd)(device, swap_chain, local_dimming_enable)
16839     }
16840 }
16841 #[doc = "Generated from 'VK_AMD_display_native_hdr'"]
16842 impl StructureType {
16843     pub const DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD: Self = Self(1_000_213_000);
16844 }
16845 #[doc = "Generated from 'VK_AMD_display_native_hdr'"]
16846 impl StructureType {
16847     pub const SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD: Self = Self(1_000_213_001);
16848 }
16849 #[doc = "Generated from 'VK_AMD_display_native_hdr'"]
16850 impl ColorSpaceKHR {
16851     pub const DISPLAY_NATIVE_AMD: Self = Self(1_000_213_000);
16852 }
16853 impl FuchsiaImagepipeSurfaceFn {
name() -> &'static ::std::ffi::CStr16854     pub fn name() -> &'static ::std::ffi::CStr {
16855         ::std::ffi::CStr::from_bytes_with_nul(b"VK_FUCHSIA_imagepipe_surface\0")
16856             .expect("Wrong extension string")
16857     }
16858     pub const SPEC_VERSION: u32 = 1u32;
16859 }
16860 #[allow(non_camel_case_types)]
16861 pub type PFN_vkCreateImagePipeSurfaceFUCHSIA = unsafe extern "system" fn(
16862     instance: Instance,
16863     p_create_info: *const ImagePipeSurfaceCreateInfoFUCHSIA,
16864     p_allocator: *const AllocationCallbacks,
16865     p_surface: *mut SurfaceKHR,
16866 ) -> Result;
16867 #[derive(Clone)]
16868 pub struct FuchsiaImagepipeSurfaceFn {
16869     pub create_image_pipe_surface_fuchsia: PFN_vkCreateImagePipeSurfaceFUCHSIA,
16870 }
16871 unsafe impl Send for FuchsiaImagepipeSurfaceFn {}
16872 unsafe impl Sync for FuchsiaImagepipeSurfaceFn {}
16873 impl FuchsiaImagepipeSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16874     pub fn load<F>(mut _f: F) -> Self
16875     where
16876         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16877     {
16878         FuchsiaImagepipeSurfaceFn {
16879             create_image_pipe_surface_fuchsia: unsafe {
16880                 unsafe extern "system" fn create_image_pipe_surface_fuchsia(
16881                     _instance: Instance,
16882                     _p_create_info: *const ImagePipeSurfaceCreateInfoFUCHSIA,
16883                     _p_allocator: *const AllocationCallbacks,
16884                     _p_surface: *mut SurfaceKHR,
16885                 ) -> Result {
16886                     panic!(concat!(
16887                         "Unable to load ",
16888                         stringify!(create_image_pipe_surface_fuchsia)
16889                     ))
16890                 }
16891                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16892                     b"vkCreateImagePipeSurfaceFUCHSIA\0",
16893                 );
16894                 let val = _f(cname);
16895                 if val.is_null() {
16896                     create_image_pipe_surface_fuchsia
16897                 } else {
16898                     ::std::mem::transmute(val)
16899                 }
16900             },
16901         }
16902     }
16903     #[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, ) -> Result16904     pub unsafe fn create_image_pipe_surface_fuchsia(
16905         &self,
16906         instance: Instance,
16907         p_create_info: *const ImagePipeSurfaceCreateInfoFUCHSIA,
16908         p_allocator: *const AllocationCallbacks,
16909         p_surface: *mut SurfaceKHR,
16910     ) -> Result {
16911         (self.create_image_pipe_surface_fuchsia)(instance, p_create_info, p_allocator, p_surface)
16912     }
16913 }
16914 #[doc = "Generated from 'VK_FUCHSIA_imagepipe_surface'"]
16915 impl StructureType {
16916     pub const IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA: Self = Self(1_000_214_000);
16917 }
16918 impl KhrShaderTerminateInvocationFn {
name() -> &'static ::std::ffi::CStr16919     pub fn name() -> &'static ::std::ffi::CStr {
16920         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_shader_terminate_invocation\0")
16921             .expect("Wrong extension string")
16922     }
16923     pub const SPEC_VERSION: u32 = 1u32;
16924 }
16925 #[derive(Clone)]
16926 pub struct KhrShaderTerminateInvocationFn {}
16927 unsafe impl Send for KhrShaderTerminateInvocationFn {}
16928 unsafe impl Sync for KhrShaderTerminateInvocationFn {}
16929 impl KhrShaderTerminateInvocationFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16930     pub fn load<F>(mut _f: F) -> Self
16931     where
16932         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16933     {
16934         KhrShaderTerminateInvocationFn {}
16935     }
16936 }
16937 #[doc = "Generated from 'VK_KHR_shader_terminate_invocation'"]
16938 impl StructureType {
16939     pub const PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR: Self = Self(1_000_215_000);
16940 }
16941 impl GoogleExtension217Fn {
name() -> &'static ::std::ffi::CStr16942     pub fn name() -> &'static ::std::ffi::CStr {
16943         ::std::ffi::CStr::from_bytes_with_nul(b"VK_GOOGLE_extension_217\0")
16944             .expect("Wrong extension string")
16945     }
16946     pub const SPEC_VERSION: u32 = 0u32;
16947 }
16948 #[derive(Clone)]
16949 pub struct GoogleExtension217Fn {}
16950 unsafe impl Send for GoogleExtension217Fn {}
16951 unsafe impl Sync for GoogleExtension217Fn {}
16952 impl GoogleExtension217Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16953     pub fn load<F>(mut _f: F) -> Self
16954     where
16955         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16956     {
16957         GoogleExtension217Fn {}
16958     }
16959 }
16960 impl ExtMetalSurfaceFn {
name() -> &'static ::std::ffi::CStr16961     pub fn name() -> &'static ::std::ffi::CStr {
16962         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_metal_surface\0")
16963             .expect("Wrong extension string")
16964     }
16965     pub const SPEC_VERSION: u32 = 1u32;
16966 }
16967 #[allow(non_camel_case_types)]
16968 pub type PFN_vkCreateMetalSurfaceEXT = unsafe extern "system" fn(
16969     instance: Instance,
16970     p_create_info: *const MetalSurfaceCreateInfoEXT,
16971     p_allocator: *const AllocationCallbacks,
16972     p_surface: *mut SurfaceKHR,
16973 ) -> Result;
16974 #[derive(Clone)]
16975 pub struct ExtMetalSurfaceFn {
16976     pub create_metal_surface_ext: PFN_vkCreateMetalSurfaceEXT,
16977 }
16978 unsafe impl Send for ExtMetalSurfaceFn {}
16979 unsafe impl Sync for ExtMetalSurfaceFn {}
16980 impl ExtMetalSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16981     pub fn load<F>(mut _f: F) -> Self
16982     where
16983         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16984     {
16985         ExtMetalSurfaceFn {
16986             create_metal_surface_ext: unsafe {
16987                 unsafe extern "system" fn create_metal_surface_ext(
16988                     _instance: Instance,
16989                     _p_create_info: *const MetalSurfaceCreateInfoEXT,
16990                     _p_allocator: *const AllocationCallbacks,
16991                     _p_surface: *mut SurfaceKHR,
16992                 ) -> Result {
16993                     panic!(concat!(
16994                         "Unable to load ",
16995                         stringify!(create_metal_surface_ext)
16996                     ))
16997                 }
16998                 let cname =
16999                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateMetalSurfaceEXT\0");
17000                 let val = _f(cname);
17001                 if val.is_null() {
17002                     create_metal_surface_ext
17003                 } else {
17004                     ::std::mem::transmute(val)
17005                 }
17006             },
17007         }
17008     }
17009     #[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, ) -> Result17010     pub unsafe fn create_metal_surface_ext(
17011         &self,
17012         instance: Instance,
17013         p_create_info: *const MetalSurfaceCreateInfoEXT,
17014         p_allocator: *const AllocationCallbacks,
17015         p_surface: *mut SurfaceKHR,
17016     ) -> Result {
17017         (self.create_metal_surface_ext)(instance, p_create_info, p_allocator, p_surface)
17018     }
17019 }
17020 #[doc = "Generated from 'VK_EXT_metal_surface'"]
17021 impl StructureType {
17022     pub const METAL_SURFACE_CREATE_INFO_EXT: Self = Self(1_000_217_000);
17023 }
17024 impl ExtFragmentDensityMapFn {
name() -> &'static ::std::ffi::CStr17025     pub fn name() -> &'static ::std::ffi::CStr {
17026         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_fragment_density_map\0")
17027             .expect("Wrong extension string")
17028     }
17029     pub const SPEC_VERSION: u32 = 1u32;
17030 }
17031 #[derive(Clone)]
17032 pub struct ExtFragmentDensityMapFn {}
17033 unsafe impl Send for ExtFragmentDensityMapFn {}
17034 unsafe impl Sync for ExtFragmentDensityMapFn {}
17035 impl ExtFragmentDensityMapFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17036     pub fn load<F>(mut _f: F) -> Self
17037     where
17038         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17039     {
17040         ExtFragmentDensityMapFn {}
17041     }
17042 }
17043 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
17044 impl StructureType {
17045     pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: Self = Self(1_000_218_000);
17046 }
17047 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
17048 impl StructureType {
17049     pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: Self = Self(1_000_218_001);
17050 }
17051 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
17052 impl StructureType {
17053     pub const RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: Self = Self(1_000_218_002);
17054 }
17055 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
17056 impl ImageCreateFlags {
17057     pub const SUBSAMPLED_EXT: Self = Self(0b100_0000_0000_0000);
17058 }
17059 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
17060 impl ImageLayout {
17061     pub const FRAGMENT_DENSITY_MAP_OPTIMAL_EXT: Self = Self(1_000_218_000);
17062 }
17063 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
17064 impl AccessFlags {
17065     pub const FRAGMENT_DENSITY_MAP_READ_EXT: Self = Self(0b1_0000_0000_0000_0000_0000_0000);
17066 }
17067 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
17068 impl FormatFeatureFlags {
17069     pub const FRAGMENT_DENSITY_MAP_EXT: Self = Self(0b1_0000_0000_0000_0000_0000_0000);
17070 }
17071 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
17072 impl ImageUsageFlags {
17073     pub const FRAGMENT_DENSITY_MAP_EXT: Self = Self(0b10_0000_0000);
17074 }
17075 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
17076 impl ImageViewCreateFlags {
17077     pub const FRAGMENT_DENSITY_MAP_DYNAMIC_EXT: Self = Self(0b1);
17078 }
17079 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
17080 impl PipelineStageFlags {
17081     pub const FRAGMENT_DENSITY_PROCESS_EXT: Self = Self(0b1000_0000_0000_0000_0000_0000);
17082 }
17083 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
17084 impl SamplerCreateFlags {
17085     pub const SUBSAMPLED_EXT: Self = Self(0b1);
17086 }
17087 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
17088 impl SamplerCreateFlags {
17089     pub const SUBSAMPLED_COARSE_RECONSTRUCTION_EXT: Self = Self(0b10);
17090 }
17091 impl ExtExtension220Fn {
name() -> &'static ::std::ffi::CStr17092     pub fn name() -> &'static ::std::ffi::CStr {
17093         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_220\0")
17094             .expect("Wrong extension string")
17095     }
17096     pub const SPEC_VERSION: u32 = 0u32;
17097 }
17098 #[derive(Clone)]
17099 pub struct ExtExtension220Fn {}
17100 unsafe impl Send for ExtExtension220Fn {}
17101 unsafe impl Sync for ExtExtension220Fn {}
17102 impl ExtExtension220Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17103     pub fn load<F>(mut _f: F) -> Self
17104     where
17105         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17106     {
17107         ExtExtension220Fn {}
17108     }
17109 }
17110 impl KhrExtension221Fn {
name() -> &'static ::std::ffi::CStr17111     pub fn name() -> &'static ::std::ffi::CStr {
17112         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_221\0")
17113             .expect("Wrong extension string")
17114     }
17115     pub const SPEC_VERSION: u32 = 0u32;
17116 }
17117 #[derive(Clone)]
17118 pub struct KhrExtension221Fn {}
17119 unsafe impl Send for KhrExtension221Fn {}
17120 unsafe impl Sync for KhrExtension221Fn {}
17121 impl KhrExtension221Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17122     pub fn load<F>(mut _f: F) -> Self
17123     where
17124         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17125     {
17126         KhrExtension221Fn {}
17127     }
17128 }
17129 #[doc = "Generated from 'VK_KHR_extension_221'"]
17130 impl RenderPassCreateFlags {
17131     pub const RESERVED_0_KHR: Self = Self(0b1);
17132 }
17133 impl ExtScalarBlockLayoutFn {
name() -> &'static ::std::ffi::CStr17134     pub fn name() -> &'static ::std::ffi::CStr {
17135         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_scalar_block_layout\0")
17136             .expect("Wrong extension string")
17137     }
17138     pub const SPEC_VERSION: u32 = 1u32;
17139 }
17140 #[derive(Clone)]
17141 pub struct ExtScalarBlockLayoutFn {}
17142 unsafe impl Send for ExtScalarBlockLayoutFn {}
17143 unsafe impl Sync for ExtScalarBlockLayoutFn {}
17144 impl ExtScalarBlockLayoutFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17145     pub fn load<F>(mut _f: F) -> Self
17146     where
17147         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17148     {
17149         ExtScalarBlockLayoutFn {}
17150     }
17151 }
17152 #[doc = "Generated from 'VK_EXT_scalar_block_layout'"]
17153 impl StructureType {
17154     pub const PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT: Self =
17155         Self::PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES;
17156 }
17157 impl ExtExtension223Fn {
name() -> &'static ::std::ffi::CStr17158     pub fn name() -> &'static ::std::ffi::CStr {
17159         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_223\0")
17160             .expect("Wrong extension string")
17161     }
17162     pub const SPEC_VERSION: u32 = 0u32;
17163 }
17164 #[derive(Clone)]
17165 pub struct ExtExtension223Fn {}
17166 unsafe impl Send for ExtExtension223Fn {}
17167 unsafe impl Sync for ExtExtension223Fn {}
17168 impl ExtExtension223Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17169     pub fn load<F>(mut _f: F) -> Self
17170     where
17171         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17172     {
17173         ExtExtension223Fn {}
17174     }
17175 }
17176 impl GoogleHlslFunctionality1Fn {
name() -> &'static ::std::ffi::CStr17177     pub fn name() -> &'static ::std::ffi::CStr {
17178         ::std::ffi::CStr::from_bytes_with_nul(b"VK_GOOGLE_hlsl_functionality1\0")
17179             .expect("Wrong extension string")
17180     }
17181     pub const SPEC_VERSION: u32 = 1u32;
17182 }
17183 #[derive(Clone)]
17184 pub struct GoogleHlslFunctionality1Fn {}
17185 unsafe impl Send for GoogleHlslFunctionality1Fn {}
17186 unsafe impl Sync for GoogleHlslFunctionality1Fn {}
17187 impl GoogleHlslFunctionality1Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17188     pub fn load<F>(mut _f: F) -> Self
17189     where
17190         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17191     {
17192         GoogleHlslFunctionality1Fn {}
17193     }
17194 }
17195 impl GoogleDecorateStringFn {
name() -> &'static ::std::ffi::CStr17196     pub fn name() -> &'static ::std::ffi::CStr {
17197         ::std::ffi::CStr::from_bytes_with_nul(b"VK_GOOGLE_decorate_string\0")
17198             .expect("Wrong extension string")
17199     }
17200     pub const SPEC_VERSION: u32 = 1u32;
17201 }
17202 #[derive(Clone)]
17203 pub struct GoogleDecorateStringFn {}
17204 unsafe impl Send for GoogleDecorateStringFn {}
17205 unsafe impl Sync for GoogleDecorateStringFn {}
17206 impl GoogleDecorateStringFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17207     pub fn load<F>(mut _f: F) -> Self
17208     where
17209         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17210     {
17211         GoogleDecorateStringFn {}
17212     }
17213 }
17214 impl ExtSubgroupSizeControlFn {
name() -> &'static ::std::ffi::CStr17215     pub fn name() -> &'static ::std::ffi::CStr {
17216         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_subgroup_size_control\0")
17217             .expect("Wrong extension string")
17218     }
17219     pub const SPEC_VERSION: u32 = 2u32;
17220 }
17221 #[derive(Clone)]
17222 pub struct ExtSubgroupSizeControlFn {}
17223 unsafe impl Send for ExtSubgroupSizeControlFn {}
17224 unsafe impl Sync for ExtSubgroupSizeControlFn {}
17225 impl ExtSubgroupSizeControlFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17226     pub fn load<F>(mut _f: F) -> Self
17227     where
17228         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17229     {
17230         ExtSubgroupSizeControlFn {}
17231     }
17232 }
17233 #[doc = "Generated from 'VK_EXT_subgroup_size_control'"]
17234 impl StructureType {
17235     pub const PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT: Self = Self(1_000_225_000);
17236 }
17237 #[doc = "Generated from 'VK_EXT_subgroup_size_control'"]
17238 impl StructureType {
17239     pub const PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT: Self =
17240         Self(1_000_225_001);
17241 }
17242 #[doc = "Generated from 'VK_EXT_subgroup_size_control'"]
17243 impl StructureType {
17244     pub const PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT: Self = Self(1_000_225_002);
17245 }
17246 #[doc = "Generated from 'VK_EXT_subgroup_size_control'"]
17247 impl PipelineShaderStageCreateFlags {
17248     pub const ALLOW_VARYING_SUBGROUP_SIZE_EXT: Self = Self(0b1);
17249 }
17250 #[doc = "Generated from 'VK_EXT_subgroup_size_control'"]
17251 impl PipelineShaderStageCreateFlags {
17252     pub const REQUIRE_FULL_SUBGROUPS_EXT: Self = Self(0b10);
17253 }
17254 impl KhrFragmentShadingRateFn {
name() -> &'static ::std::ffi::CStr17255     pub fn name() -> &'static ::std::ffi::CStr {
17256         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_fragment_shading_rate\0")
17257             .expect("Wrong extension string")
17258     }
17259     pub const SPEC_VERSION: u32 = 1u32;
17260 }
17261 #[allow(non_camel_case_types)]
17262 pub type PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = unsafe extern "system" fn(
17263     physical_device: PhysicalDevice,
17264     p_fragment_shading_rate_count: *mut u32,
17265     p_fragment_shading_rates: *mut PhysicalDeviceFragmentShadingRateKHR,
17266 ) -> Result;
17267 #[allow(non_camel_case_types)]
17268 pub type PFN_vkCmdSetFragmentShadingRateKHR = unsafe extern "system" fn(
17269     command_buffer: CommandBuffer,
17270     p_fragment_size: *const Extent2D,
17271     combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2],
17272 );
17273 #[derive(Clone)]
17274 pub struct KhrFragmentShadingRateFn {
17275     pub get_physical_device_fragment_shading_rates_khr:
17276         PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR,
17277     pub cmd_set_fragment_shading_rate_khr: PFN_vkCmdSetFragmentShadingRateKHR,
17278 }
17279 unsafe impl Send for KhrFragmentShadingRateFn {}
17280 unsafe impl Sync for KhrFragmentShadingRateFn {}
17281 impl KhrFragmentShadingRateFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17282     pub fn load<F>(mut _f: F) -> Self
17283     where
17284         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17285     {
17286         KhrFragmentShadingRateFn {
17287             get_physical_device_fragment_shading_rates_khr: unsafe {
17288                 unsafe extern "system" fn get_physical_device_fragment_shading_rates_khr(
17289                     _physical_device: PhysicalDevice,
17290                     _p_fragment_shading_rate_count: *mut u32,
17291                     _p_fragment_shading_rates: *mut PhysicalDeviceFragmentShadingRateKHR,
17292                 ) -> Result {
17293                     panic!(concat!(
17294                         "Unable to load ",
17295                         stringify!(get_physical_device_fragment_shading_rates_khr)
17296                     ))
17297                 }
17298                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17299                     b"vkGetPhysicalDeviceFragmentShadingRatesKHR\0",
17300                 );
17301                 let val = _f(cname);
17302                 if val.is_null() {
17303                     get_physical_device_fragment_shading_rates_khr
17304                 } else {
17305                     ::std::mem::transmute(val)
17306                 }
17307             },
17308             cmd_set_fragment_shading_rate_khr: unsafe {
17309                 unsafe extern "system" fn cmd_set_fragment_shading_rate_khr(
17310                     _command_buffer: CommandBuffer,
17311                     _p_fragment_size: *const Extent2D,
17312                     _combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2],
17313                 ) {
17314                     panic!(concat!(
17315                         "Unable to load ",
17316                         stringify!(cmd_set_fragment_shading_rate_khr)
17317                     ))
17318                 }
17319                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17320                     b"vkCmdSetFragmentShadingRateKHR\0",
17321                 );
17322                 let val = _f(cname);
17323                 if val.is_null() {
17324                     cmd_set_fragment_shading_rate_khr
17325                 } else {
17326                     ::std::mem::transmute(val)
17327                 }
17328             },
17329         }
17330     }
17331     #[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, ) -> Result17332     pub unsafe fn get_physical_device_fragment_shading_rates_khr(
17333         &self,
17334         physical_device: PhysicalDevice,
17335         p_fragment_shading_rate_count: *mut u32,
17336         p_fragment_shading_rates: *mut PhysicalDeviceFragmentShadingRateKHR,
17337     ) -> Result {
17338         (self.get_physical_device_fragment_shading_rates_khr)(
17339             physical_device,
17340             p_fragment_shading_rate_count,
17341             p_fragment_shading_rates,
17342         )
17343     }
17344     #[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], )17345     pub unsafe fn cmd_set_fragment_shading_rate_khr(
17346         &self,
17347         command_buffer: CommandBuffer,
17348         p_fragment_size: *const Extent2D,
17349         combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2],
17350     ) {
17351         (self.cmd_set_fragment_shading_rate_khr)(command_buffer, p_fragment_size, combiner_ops)
17352     }
17353 }
17354 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
17355 impl ImageLayout {
17356     pub const FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR: Self = Self(1_000_164_003);
17357 }
17358 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
17359 impl DynamicState {
17360     pub const FRAGMENT_SHADING_RATE_KHR: Self = Self(1_000_226_000);
17361 }
17362 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
17363 impl StructureType {
17364     pub const FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: Self = Self(1_000_226_000);
17365 }
17366 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
17367 impl StructureType {
17368     pub const PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR: Self = Self(1_000_226_001);
17369 }
17370 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
17371 impl StructureType {
17372     pub const PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR: Self = Self(1_000_226_002);
17373 }
17374 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
17375 impl StructureType {
17376     pub const PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR: Self = Self(1_000_226_003);
17377 }
17378 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
17379 impl StructureType {
17380     pub const PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR: Self = Self(1_000_226_004);
17381 }
17382 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
17383 impl AccessFlags {
17384     pub const FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR: Self =
17385         Self(0b1000_0000_0000_0000_0000_0000);
17386 }
17387 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
17388 impl ImageUsageFlags {
17389     pub const FRAGMENT_SHADING_RATE_ATTACHMENT_KHR: Self = Self(0b1_0000_0000);
17390 }
17391 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
17392 impl PipelineStageFlags {
17393     pub const FRAGMENT_SHADING_RATE_ATTACHMENT_KHR: Self = Self(0b100_0000_0000_0000_0000_0000);
17394 }
17395 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
17396 impl FormatFeatureFlags {
17397     pub const FRAGMENT_SHADING_RATE_ATTACHMENT_KHR: Self =
17398         Self(0b100_0000_0000_0000_0000_0000_0000_0000);
17399 }
17400 impl AmdShaderCoreProperties2Fn {
name() -> &'static ::std::ffi::CStr17401     pub fn name() -> &'static ::std::ffi::CStr {
17402         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_shader_core_properties2\0")
17403             .expect("Wrong extension string")
17404     }
17405     pub const SPEC_VERSION: u32 = 1u32;
17406 }
17407 #[derive(Clone)]
17408 pub struct AmdShaderCoreProperties2Fn {}
17409 unsafe impl Send for AmdShaderCoreProperties2Fn {}
17410 unsafe impl Sync for AmdShaderCoreProperties2Fn {}
17411 impl AmdShaderCoreProperties2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17412     pub fn load<F>(mut _f: F) -> Self
17413     where
17414         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17415     {
17416         AmdShaderCoreProperties2Fn {}
17417     }
17418 }
17419 #[doc = "Generated from 'VK_AMD_shader_core_properties2'"]
17420 impl StructureType {
17421     pub const PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD: Self = Self(1_000_227_000);
17422 }
17423 impl AmdExtension229Fn {
name() -> &'static ::std::ffi::CStr17424     pub fn name() -> &'static ::std::ffi::CStr {
17425         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_229\0")
17426             .expect("Wrong extension string")
17427     }
17428     pub const SPEC_VERSION: u32 = 0u32;
17429 }
17430 #[derive(Clone)]
17431 pub struct AmdExtension229Fn {}
17432 unsafe impl Send for AmdExtension229Fn {}
17433 unsafe impl Sync for AmdExtension229Fn {}
17434 impl AmdExtension229Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17435     pub fn load<F>(mut _f: F) -> Self
17436     where
17437         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17438     {
17439         AmdExtension229Fn {}
17440     }
17441 }
17442 impl AmdDeviceCoherentMemoryFn {
name() -> &'static ::std::ffi::CStr17443     pub fn name() -> &'static ::std::ffi::CStr {
17444         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_device_coherent_memory\0")
17445             .expect("Wrong extension string")
17446     }
17447     pub const SPEC_VERSION: u32 = 1u32;
17448 }
17449 #[derive(Clone)]
17450 pub struct AmdDeviceCoherentMemoryFn {}
17451 unsafe impl Send for AmdDeviceCoherentMemoryFn {}
17452 unsafe impl Sync for AmdDeviceCoherentMemoryFn {}
17453 impl AmdDeviceCoherentMemoryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17454     pub fn load<F>(mut _f: F) -> Self
17455     where
17456         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17457     {
17458         AmdDeviceCoherentMemoryFn {}
17459     }
17460 }
17461 #[doc = "Generated from 'VK_AMD_device_coherent_memory'"]
17462 impl MemoryPropertyFlags {
17463     pub const DEVICE_COHERENT_AMD: Self = Self(0b100_0000);
17464 }
17465 #[doc = "Generated from 'VK_AMD_device_coherent_memory'"]
17466 impl MemoryPropertyFlags {
17467     pub const DEVICE_UNCACHED_AMD: Self = Self(0b1000_0000);
17468 }
17469 #[doc = "Generated from 'VK_AMD_device_coherent_memory'"]
17470 impl StructureType {
17471     pub const PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD: Self = Self(1_000_229_000);
17472 }
17473 impl AmdExtension231Fn {
name() -> &'static ::std::ffi::CStr17474     pub fn name() -> &'static ::std::ffi::CStr {
17475         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_231\0")
17476             .expect("Wrong extension string")
17477     }
17478     pub const SPEC_VERSION: u32 = 0u32;
17479 }
17480 #[derive(Clone)]
17481 pub struct AmdExtension231Fn {}
17482 unsafe impl Send for AmdExtension231Fn {}
17483 unsafe impl Sync for AmdExtension231Fn {}
17484 impl AmdExtension231Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17485     pub fn load<F>(mut _f: F) -> Self
17486     where
17487         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17488     {
17489         AmdExtension231Fn {}
17490     }
17491 }
17492 impl AmdExtension232Fn {
name() -> &'static ::std::ffi::CStr17493     pub fn name() -> &'static ::std::ffi::CStr {
17494         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_232\0")
17495             .expect("Wrong extension string")
17496     }
17497     pub const SPEC_VERSION: u32 = 0u32;
17498 }
17499 #[derive(Clone)]
17500 pub struct AmdExtension232Fn {}
17501 unsafe impl Send for AmdExtension232Fn {}
17502 unsafe impl Sync for AmdExtension232Fn {}
17503 impl AmdExtension232Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17504     pub fn load<F>(mut _f: F) -> Self
17505     where
17506         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17507     {
17508         AmdExtension232Fn {}
17509     }
17510 }
17511 impl AmdExtension233Fn {
name() -> &'static ::std::ffi::CStr17512     pub fn name() -> &'static ::std::ffi::CStr {
17513         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_233\0")
17514             .expect("Wrong extension string")
17515     }
17516     pub const SPEC_VERSION: u32 = 0u32;
17517 }
17518 #[derive(Clone)]
17519 pub struct AmdExtension233Fn {}
17520 unsafe impl Send for AmdExtension233Fn {}
17521 unsafe impl Sync for AmdExtension233Fn {}
17522 impl AmdExtension233Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17523     pub fn load<F>(mut _f: F) -> Self
17524     where
17525         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17526     {
17527         AmdExtension233Fn {}
17528     }
17529 }
17530 impl AmdExtension234Fn {
name() -> &'static ::std::ffi::CStr17531     pub fn name() -> &'static ::std::ffi::CStr {
17532         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_234\0")
17533             .expect("Wrong extension string")
17534     }
17535     pub const SPEC_VERSION: u32 = 0u32;
17536 }
17537 #[derive(Clone)]
17538 pub struct AmdExtension234Fn {}
17539 unsafe impl Send for AmdExtension234Fn {}
17540 unsafe impl Sync for AmdExtension234Fn {}
17541 impl AmdExtension234Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17542     pub fn load<F>(mut _f: F) -> Self
17543     where
17544         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17545     {
17546         AmdExtension234Fn {}
17547     }
17548 }
17549 impl ExtShaderImageAtomicInt64Fn {
name() -> &'static ::std::ffi::CStr17550     pub fn name() -> &'static ::std::ffi::CStr {
17551         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_shader_image_atomic_int64\0")
17552             .expect("Wrong extension string")
17553     }
17554     pub const SPEC_VERSION: u32 = 1u32;
17555 }
17556 #[derive(Clone)]
17557 pub struct ExtShaderImageAtomicInt64Fn {}
17558 unsafe impl Send for ExtShaderImageAtomicInt64Fn {}
17559 unsafe impl Sync for ExtShaderImageAtomicInt64Fn {}
17560 impl ExtShaderImageAtomicInt64Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17561     pub fn load<F>(mut _f: F) -> Self
17562     where
17563         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17564     {
17565         ExtShaderImageAtomicInt64Fn {}
17566     }
17567 }
17568 #[doc = "Generated from 'VK_EXT_shader_image_atomic_int64'"]
17569 impl StructureType {
17570     pub const PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT: Self = Self(1_000_234_000);
17571 }
17572 impl AmdExtension236Fn {
name() -> &'static ::std::ffi::CStr17573     pub fn name() -> &'static ::std::ffi::CStr {
17574         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_236\0")
17575             .expect("Wrong extension string")
17576     }
17577     pub const SPEC_VERSION: u32 = 0u32;
17578 }
17579 #[derive(Clone)]
17580 pub struct AmdExtension236Fn {}
17581 unsafe impl Send for AmdExtension236Fn {}
17582 unsafe impl Sync for AmdExtension236Fn {}
17583 impl AmdExtension236Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17584     pub fn load<F>(mut _f: F) -> Self
17585     where
17586         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17587     {
17588         AmdExtension236Fn {}
17589     }
17590 }
17591 impl KhrSpirv14Fn {
name() -> &'static ::std::ffi::CStr17592     pub fn name() -> &'static ::std::ffi::CStr {
17593         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_spirv_1_4\0")
17594             .expect("Wrong extension string")
17595     }
17596     pub const SPEC_VERSION: u32 = 1u32;
17597 }
17598 #[derive(Clone)]
17599 pub struct KhrSpirv14Fn {}
17600 unsafe impl Send for KhrSpirv14Fn {}
17601 unsafe impl Sync for KhrSpirv14Fn {}
17602 impl KhrSpirv14Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17603     pub fn load<F>(mut _f: F) -> Self
17604     where
17605         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17606     {
17607         KhrSpirv14Fn {}
17608     }
17609 }
17610 impl ExtMemoryBudgetFn {
name() -> &'static ::std::ffi::CStr17611     pub fn name() -> &'static ::std::ffi::CStr {
17612         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_memory_budget\0")
17613             .expect("Wrong extension string")
17614     }
17615     pub const SPEC_VERSION: u32 = 1u32;
17616 }
17617 #[derive(Clone)]
17618 pub struct ExtMemoryBudgetFn {}
17619 unsafe impl Send for ExtMemoryBudgetFn {}
17620 unsafe impl Sync for ExtMemoryBudgetFn {}
17621 impl ExtMemoryBudgetFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17622     pub fn load<F>(mut _f: F) -> Self
17623     where
17624         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17625     {
17626         ExtMemoryBudgetFn {}
17627     }
17628 }
17629 #[doc = "Generated from 'VK_EXT_memory_budget'"]
17630 impl StructureType {
17631     pub const PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT: Self = Self(1_000_237_000);
17632 }
17633 impl ExtMemoryPriorityFn {
name() -> &'static ::std::ffi::CStr17634     pub fn name() -> &'static ::std::ffi::CStr {
17635         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_memory_priority\0")
17636             .expect("Wrong extension string")
17637     }
17638     pub const SPEC_VERSION: u32 = 1u32;
17639 }
17640 #[derive(Clone)]
17641 pub struct ExtMemoryPriorityFn {}
17642 unsafe impl Send for ExtMemoryPriorityFn {}
17643 unsafe impl Sync for ExtMemoryPriorityFn {}
17644 impl ExtMemoryPriorityFn {
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         ExtMemoryPriorityFn {}
17650     }
17651 }
17652 #[doc = "Generated from 'VK_EXT_memory_priority'"]
17653 impl StructureType {
17654     pub const PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT: Self = Self(1_000_238_000);
17655 }
17656 #[doc = "Generated from 'VK_EXT_memory_priority'"]
17657 impl StructureType {
17658     pub const MEMORY_PRIORITY_ALLOCATE_INFO_EXT: Self = Self(1_000_238_001);
17659 }
17660 impl KhrSurfaceProtectedCapabilitiesFn {
name() -> &'static ::std::ffi::CStr17661     pub fn name() -> &'static ::std::ffi::CStr {
17662         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_surface_protected_capabilities\0")
17663             .expect("Wrong extension string")
17664     }
17665     pub const SPEC_VERSION: u32 = 1u32;
17666 }
17667 #[derive(Clone)]
17668 pub struct KhrSurfaceProtectedCapabilitiesFn {}
17669 unsafe impl Send for KhrSurfaceProtectedCapabilitiesFn {}
17670 unsafe impl Sync for KhrSurfaceProtectedCapabilitiesFn {}
17671 impl KhrSurfaceProtectedCapabilitiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17672     pub fn load<F>(mut _f: F) -> Self
17673     where
17674         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17675     {
17676         KhrSurfaceProtectedCapabilitiesFn {}
17677     }
17678 }
17679 #[doc = "Generated from 'VK_KHR_surface_protected_capabilities'"]
17680 impl StructureType {
17681     pub const SURFACE_PROTECTED_CAPABILITIES_KHR: Self = Self(1_000_239_000);
17682 }
17683 impl NvDedicatedAllocationImageAliasingFn {
name() -> &'static ::std::ffi::CStr17684     pub fn name() -> &'static ::std::ffi::CStr {
17685         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_dedicated_allocation_image_aliasing\0")
17686             .expect("Wrong extension string")
17687     }
17688     pub const SPEC_VERSION: u32 = 1u32;
17689 }
17690 #[derive(Clone)]
17691 pub struct NvDedicatedAllocationImageAliasingFn {}
17692 unsafe impl Send for NvDedicatedAllocationImageAliasingFn {}
17693 unsafe impl Sync for NvDedicatedAllocationImageAliasingFn {}
17694 impl NvDedicatedAllocationImageAliasingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17695     pub fn load<F>(mut _f: F) -> Self
17696     where
17697         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17698     {
17699         NvDedicatedAllocationImageAliasingFn {}
17700     }
17701 }
17702 #[doc = "Generated from 'VK_NV_dedicated_allocation_image_aliasing'"]
17703 impl StructureType {
17704     pub const PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV: Self =
17705         Self(1_000_240_000);
17706 }
17707 impl KhrSeparateDepthStencilLayoutsFn {
name() -> &'static ::std::ffi::CStr17708     pub fn name() -> &'static ::std::ffi::CStr {
17709         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_separate_depth_stencil_layouts\0")
17710             .expect("Wrong extension string")
17711     }
17712     pub const SPEC_VERSION: u32 = 1u32;
17713 }
17714 #[derive(Clone)]
17715 pub struct KhrSeparateDepthStencilLayoutsFn {}
17716 unsafe impl Send for KhrSeparateDepthStencilLayoutsFn {}
17717 unsafe impl Sync for KhrSeparateDepthStencilLayoutsFn {}
17718 impl KhrSeparateDepthStencilLayoutsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17719     pub fn load<F>(mut _f: F) -> Self
17720     where
17721         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17722     {
17723         KhrSeparateDepthStencilLayoutsFn {}
17724     }
17725 }
17726 #[doc = "Generated from 'VK_KHR_separate_depth_stencil_layouts'"]
17727 impl StructureType {
17728     pub const PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR: Self =
17729         Self::PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES;
17730 }
17731 #[doc = "Generated from 'VK_KHR_separate_depth_stencil_layouts'"]
17732 impl StructureType {
17733     pub const ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR: Self =
17734         Self::ATTACHMENT_REFERENCE_STENCIL_LAYOUT;
17735 }
17736 #[doc = "Generated from 'VK_KHR_separate_depth_stencil_layouts'"]
17737 impl StructureType {
17738     pub const ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR: Self =
17739         Self::ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT;
17740 }
17741 #[doc = "Generated from 'VK_KHR_separate_depth_stencil_layouts'"]
17742 impl ImageLayout {
17743     pub const DEPTH_ATTACHMENT_OPTIMAL_KHR: Self = Self::DEPTH_ATTACHMENT_OPTIMAL;
17744 }
17745 #[doc = "Generated from 'VK_KHR_separate_depth_stencil_layouts'"]
17746 impl ImageLayout {
17747     pub const DEPTH_READ_ONLY_OPTIMAL_KHR: Self = Self::DEPTH_READ_ONLY_OPTIMAL;
17748 }
17749 #[doc = "Generated from 'VK_KHR_separate_depth_stencil_layouts'"]
17750 impl ImageLayout {
17751     pub const STENCIL_ATTACHMENT_OPTIMAL_KHR: Self = Self::STENCIL_ATTACHMENT_OPTIMAL;
17752 }
17753 #[doc = "Generated from 'VK_KHR_separate_depth_stencil_layouts'"]
17754 impl ImageLayout {
17755     pub const STENCIL_READ_ONLY_OPTIMAL_KHR: Self = Self::STENCIL_READ_ONLY_OPTIMAL;
17756 }
17757 impl IntelExtension243Fn {
name() -> &'static ::std::ffi::CStr17758     pub fn name() -> &'static ::std::ffi::CStr {
17759         ::std::ffi::CStr::from_bytes_with_nul(b"VK_INTEL_extension_243\0")
17760             .expect("Wrong extension string")
17761     }
17762     pub const SPEC_VERSION: u32 = 0u32;
17763 }
17764 #[derive(Clone)]
17765 pub struct IntelExtension243Fn {}
17766 unsafe impl Send for IntelExtension243Fn {}
17767 unsafe impl Sync for IntelExtension243Fn {}
17768 impl IntelExtension243Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17769     pub fn load<F>(mut _f: F) -> Self
17770     where
17771         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17772     {
17773         IntelExtension243Fn {}
17774     }
17775 }
17776 impl MesaExtension244Fn {
name() -> &'static ::std::ffi::CStr17777     pub fn name() -> &'static ::std::ffi::CStr {
17778         ::std::ffi::CStr::from_bytes_with_nul(b"VK_MESA_extension_244\0")
17779             .expect("Wrong extension string")
17780     }
17781     pub const SPEC_VERSION: u32 = 0u32;
17782 }
17783 #[derive(Clone)]
17784 pub struct MesaExtension244Fn {}
17785 unsafe impl Send for MesaExtension244Fn {}
17786 unsafe impl Sync for MesaExtension244Fn {}
17787 impl MesaExtension244Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17788     pub fn load<F>(mut _f: F) -> Self
17789     where
17790         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17791     {
17792         MesaExtension244Fn {}
17793     }
17794 }
17795 impl ExtBufferDeviceAddressFn {
name() -> &'static ::std::ffi::CStr17796     pub fn name() -> &'static ::std::ffi::CStr {
17797         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_buffer_device_address\0")
17798             .expect("Wrong extension string")
17799     }
17800     pub const SPEC_VERSION: u32 = 2u32;
17801 }
17802 #[allow(non_camel_case_types)]
17803 pub type PFN_vkGetBufferDeviceAddress = unsafe extern "system" fn(
17804     device: Device,
17805     p_info: *const BufferDeviceAddressInfo,
17806 ) -> DeviceAddress;
17807 #[derive(Clone)]
17808 pub struct ExtBufferDeviceAddressFn {
17809     pub get_buffer_device_address_ext: PFN_vkGetBufferDeviceAddress,
17810 }
17811 unsafe impl Send for ExtBufferDeviceAddressFn {}
17812 unsafe impl Sync for ExtBufferDeviceAddressFn {}
17813 impl ExtBufferDeviceAddressFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17814     pub fn load<F>(mut _f: F) -> Self
17815     where
17816         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17817     {
17818         ExtBufferDeviceAddressFn {
17819             get_buffer_device_address_ext: unsafe {
17820                 unsafe extern "system" fn get_buffer_device_address_ext(
17821                     _device: Device,
17822                     _p_info: *const BufferDeviceAddressInfo,
17823                 ) -> DeviceAddress {
17824                     panic!(concat!(
17825                         "Unable to load ",
17826                         stringify!(get_buffer_device_address_ext)
17827                     ))
17828                 }
17829                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17830                     b"vkGetBufferDeviceAddressEXT\0",
17831                 );
17832                 let val = _f(cname);
17833                 if val.is_null() {
17834                     get_buffer_device_address_ext
17835                 } else {
17836                     ::std::mem::transmute(val)
17837                 }
17838             },
17839         }
17840     }
17841     #[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, ) -> DeviceAddress17842     pub unsafe fn get_buffer_device_address_ext(
17843         &self,
17844         device: Device,
17845         p_info: *const BufferDeviceAddressInfo,
17846     ) -> DeviceAddress {
17847         (self.get_buffer_device_address_ext)(device, p_info)
17848     }
17849 }
17850 #[doc = "Generated from 'VK_EXT_buffer_device_address'"]
17851 impl StructureType {
17852     pub const PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT: Self = Self(1_000_244_000);
17853 }
17854 #[doc = "Generated from 'VK_EXT_buffer_device_address'"]
17855 impl StructureType {
17856     pub const PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT: Self =
17857         Self::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT;
17858 }
17859 #[doc = "Generated from 'VK_EXT_buffer_device_address'"]
17860 impl StructureType {
17861     pub const BUFFER_DEVICE_ADDRESS_INFO_EXT: Self = Self::BUFFER_DEVICE_ADDRESS_INFO;
17862 }
17863 #[doc = "Generated from 'VK_EXT_buffer_device_address'"]
17864 impl StructureType {
17865     pub const BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT: Self = Self(1_000_244_002);
17866 }
17867 #[doc = "Generated from 'VK_EXT_buffer_device_address'"]
17868 impl BufferUsageFlags {
17869     pub const SHADER_DEVICE_ADDRESS_EXT: Self = Self::SHADER_DEVICE_ADDRESS;
17870 }
17871 #[doc = "Generated from 'VK_EXT_buffer_device_address'"]
17872 impl BufferCreateFlags {
17873     pub const DEVICE_ADDRESS_CAPTURE_REPLAY_EXT: Self = Self::DEVICE_ADDRESS_CAPTURE_REPLAY;
17874 }
17875 #[doc = "Generated from 'VK_EXT_buffer_device_address'"]
17876 impl Result {
17877     pub const ERROR_INVALID_DEVICE_ADDRESS_EXT: Self = Self::ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS;
17878 }
17879 impl ExtToolingInfoFn {
name() -> &'static ::std::ffi::CStr17880     pub fn name() -> &'static ::std::ffi::CStr {
17881         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_tooling_info\0")
17882             .expect("Wrong extension string")
17883     }
17884     pub const SPEC_VERSION: u32 = 1u32;
17885 }
17886 #[allow(non_camel_case_types)]
17887 pub type PFN_vkGetPhysicalDeviceToolPropertiesEXT = unsafe extern "system" fn(
17888     physical_device: PhysicalDevice,
17889     p_tool_count: *mut u32,
17890     p_tool_properties: *mut PhysicalDeviceToolPropertiesEXT,
17891 ) -> Result;
17892 #[derive(Clone)]
17893 pub struct ExtToolingInfoFn {
17894     pub get_physical_device_tool_properties_ext: PFN_vkGetPhysicalDeviceToolPropertiesEXT,
17895 }
17896 unsafe impl Send for ExtToolingInfoFn {}
17897 unsafe impl Sync for ExtToolingInfoFn {}
17898 impl ExtToolingInfoFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17899     pub fn load<F>(mut _f: F) -> Self
17900     where
17901         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17902     {
17903         ExtToolingInfoFn {
17904             get_physical_device_tool_properties_ext: unsafe {
17905                 unsafe extern "system" fn get_physical_device_tool_properties_ext(
17906                     _physical_device: PhysicalDevice,
17907                     _p_tool_count: *mut u32,
17908                     _p_tool_properties: *mut PhysicalDeviceToolPropertiesEXT,
17909                 ) -> Result {
17910                     panic!(concat!(
17911                         "Unable to load ",
17912                         stringify!(get_physical_device_tool_properties_ext)
17913                     ))
17914                 }
17915                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17916                     b"vkGetPhysicalDeviceToolPropertiesEXT\0",
17917                 );
17918                 let val = _f(cname);
17919                 if val.is_null() {
17920                     get_physical_device_tool_properties_ext
17921                 } else {
17922                     ::std::mem::transmute(val)
17923                 }
17924             },
17925         }
17926     }
17927     #[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, ) -> Result17928     pub unsafe fn get_physical_device_tool_properties_ext(
17929         &self,
17930         physical_device: PhysicalDevice,
17931         p_tool_count: *mut u32,
17932         p_tool_properties: *mut PhysicalDeviceToolPropertiesEXT,
17933     ) -> Result {
17934         (self.get_physical_device_tool_properties_ext)(
17935             physical_device,
17936             p_tool_count,
17937             p_tool_properties,
17938         )
17939     }
17940 }
17941 #[doc = "Generated from 'VK_EXT_tooling_info'"]
17942 impl StructureType {
17943     pub const PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT: Self = Self(1_000_245_000);
17944 }
17945 #[doc = "Generated from 'VK_EXT_tooling_info'"]
17946 impl ToolPurposeFlagsEXT {
17947     pub const DEBUG_REPORTING: Self = Self(0b10_0000);
17948 }
17949 #[doc = "Generated from 'VK_EXT_tooling_info'"]
17950 impl ToolPurposeFlagsEXT {
17951     pub const DEBUG_MARKERS: Self = Self(0b100_0000);
17952 }
17953 impl ExtSeparateStencilUsageFn {
name() -> &'static ::std::ffi::CStr17954     pub fn name() -> &'static ::std::ffi::CStr {
17955         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_separate_stencil_usage\0")
17956             .expect("Wrong extension string")
17957     }
17958     pub const SPEC_VERSION: u32 = 1u32;
17959 }
17960 #[derive(Clone)]
17961 pub struct ExtSeparateStencilUsageFn {}
17962 unsafe impl Send for ExtSeparateStencilUsageFn {}
17963 unsafe impl Sync for ExtSeparateStencilUsageFn {}
17964 impl ExtSeparateStencilUsageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17965     pub fn load<F>(mut _f: F) -> Self
17966     where
17967         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17968     {
17969         ExtSeparateStencilUsageFn {}
17970     }
17971 }
17972 #[doc = "Generated from 'VK_EXT_separate_stencil_usage'"]
17973 impl StructureType {
17974     pub const IMAGE_STENCIL_USAGE_CREATE_INFO_EXT: Self = Self::IMAGE_STENCIL_USAGE_CREATE_INFO;
17975 }
17976 impl ExtValidationFeaturesFn {
name() -> &'static ::std::ffi::CStr17977     pub fn name() -> &'static ::std::ffi::CStr {
17978         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_validation_features\0")
17979             .expect("Wrong extension string")
17980     }
17981     pub const SPEC_VERSION: u32 = 5u32;
17982 }
17983 #[derive(Clone)]
17984 pub struct ExtValidationFeaturesFn {}
17985 unsafe impl Send for ExtValidationFeaturesFn {}
17986 unsafe impl Sync for ExtValidationFeaturesFn {}
17987 impl ExtValidationFeaturesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17988     pub fn load<F>(mut _f: F) -> Self
17989     where
17990         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17991     {
17992         ExtValidationFeaturesFn {}
17993     }
17994 }
17995 #[doc = "Generated from 'VK_EXT_validation_features'"]
17996 impl StructureType {
17997     pub const VALIDATION_FEATURES_EXT: Self = Self(1_000_247_000);
17998 }
17999 impl KhrPresentWaitFn {
name() -> &'static ::std::ffi::CStr18000     pub fn name() -> &'static ::std::ffi::CStr {
18001         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_present_wait\0")
18002             .expect("Wrong extension string")
18003     }
18004     pub const SPEC_VERSION: u32 = 1u32;
18005 }
18006 #[allow(non_camel_case_types)]
18007 pub type PFN_vkWaitForPresentKHR = unsafe extern "system" fn(
18008     device: Device,
18009     swapchain: SwapchainKHR,
18010     present_id: u64,
18011     timeout: u64,
18012 ) -> Result;
18013 #[derive(Clone)]
18014 pub struct KhrPresentWaitFn {
18015     pub wait_for_present_khr: PFN_vkWaitForPresentKHR,
18016 }
18017 unsafe impl Send for KhrPresentWaitFn {}
18018 unsafe impl Sync for KhrPresentWaitFn {}
18019 impl KhrPresentWaitFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18020     pub fn load<F>(mut _f: F) -> Self
18021     where
18022         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18023     {
18024         KhrPresentWaitFn {
18025             wait_for_present_khr: unsafe {
18026                 unsafe extern "system" fn wait_for_present_khr(
18027                     _device: Device,
18028                     _swapchain: SwapchainKHR,
18029                     _present_id: u64,
18030                     _timeout: u64,
18031                 ) -> Result {
18032                     panic!(concat!("Unable to load ", stringify!(wait_for_present_khr)))
18033                 }
18034                 let cname =
18035                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkWaitForPresentKHR\0");
18036                 let val = _f(cname);
18037                 if val.is_null() {
18038                     wait_for_present_khr
18039                 } else {
18040                     ::std::mem::transmute(val)
18041                 }
18042             },
18043         }
18044     }
18045     #[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, ) -> Result18046     pub unsafe fn wait_for_present_khr(
18047         &self,
18048         device: Device,
18049         swapchain: SwapchainKHR,
18050         present_id: u64,
18051         timeout: u64,
18052     ) -> Result {
18053         (self.wait_for_present_khr)(device, swapchain, present_id, timeout)
18054     }
18055 }
18056 #[doc = "Generated from 'VK_KHR_present_wait'"]
18057 impl StructureType {
18058     pub const PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR: Self = Self(1_000_248_000);
18059 }
18060 impl NvCooperativeMatrixFn {
name() -> &'static ::std::ffi::CStr18061     pub fn name() -> &'static ::std::ffi::CStr {
18062         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_cooperative_matrix\0")
18063             .expect("Wrong extension string")
18064     }
18065     pub const SPEC_VERSION: u32 = 1u32;
18066 }
18067 #[allow(non_camel_case_types)]
18068 pub type PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = unsafe extern "system" fn(
18069     physical_device: PhysicalDevice,
18070     p_property_count: *mut u32,
18071     p_properties: *mut CooperativeMatrixPropertiesNV,
18072 )
18073     -> Result;
18074 #[derive(Clone)]
18075 pub struct NvCooperativeMatrixFn {
18076     pub get_physical_device_cooperative_matrix_properties_nv:
18077         PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV,
18078 }
18079 unsafe impl Send for NvCooperativeMatrixFn {}
18080 unsafe impl Sync for NvCooperativeMatrixFn {}
18081 impl NvCooperativeMatrixFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18082     pub fn load<F>(mut _f: F) -> Self
18083     where
18084         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18085     {
18086         NvCooperativeMatrixFn {
18087             get_physical_device_cooperative_matrix_properties_nv: unsafe {
18088                 unsafe extern "system" fn get_physical_device_cooperative_matrix_properties_nv(
18089                     _physical_device: PhysicalDevice,
18090                     _p_property_count: *mut u32,
18091                     _p_properties: *mut CooperativeMatrixPropertiesNV,
18092                 ) -> Result {
18093                     panic!(concat!(
18094                         "Unable to load ",
18095                         stringify!(get_physical_device_cooperative_matrix_properties_nv)
18096                     ))
18097                 }
18098                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18099                     b"vkGetPhysicalDeviceCooperativeMatrixPropertiesNV\0",
18100                 );
18101                 let val = _f(cname);
18102                 if val.is_null() {
18103                     get_physical_device_cooperative_matrix_properties_nv
18104                 } else {
18105                     ::std::mem::transmute(val)
18106                 }
18107             },
18108         }
18109     }
18110     #[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, ) -> Result18111     pub unsafe fn get_physical_device_cooperative_matrix_properties_nv(
18112         &self,
18113         physical_device: PhysicalDevice,
18114         p_property_count: *mut u32,
18115         p_properties: *mut CooperativeMatrixPropertiesNV,
18116     ) -> Result {
18117         (self.get_physical_device_cooperative_matrix_properties_nv)(
18118             physical_device,
18119             p_property_count,
18120             p_properties,
18121         )
18122     }
18123 }
18124 #[doc = "Generated from 'VK_NV_cooperative_matrix'"]
18125 impl StructureType {
18126     pub const PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV: Self = Self(1_000_249_000);
18127 }
18128 #[doc = "Generated from 'VK_NV_cooperative_matrix'"]
18129 impl StructureType {
18130     pub const COOPERATIVE_MATRIX_PROPERTIES_NV: Self = Self(1_000_249_001);
18131 }
18132 #[doc = "Generated from 'VK_NV_cooperative_matrix'"]
18133 impl StructureType {
18134     pub const PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV: Self = Self(1_000_249_002);
18135 }
18136 impl NvCoverageReductionModeFn {
name() -> &'static ::std::ffi::CStr18137     pub fn name() -> &'static ::std::ffi::CStr {
18138         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_coverage_reduction_mode\0")
18139             .expect("Wrong extension string")
18140     }
18141     pub const SPEC_VERSION: u32 = 1u32;
18142 }
18143 #[allow(non_camel_case_types)]
18144 pub type PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV =
18145     unsafe extern "system" fn(
18146         physical_device: PhysicalDevice,
18147         p_combination_count: *mut u32,
18148         p_combinations: *mut FramebufferMixedSamplesCombinationNV,
18149     ) -> Result;
18150 #[derive(Clone)]
18151 pub struct NvCoverageReductionModeFn {
18152     pub get_physical_device_supported_framebuffer_mixed_samples_combinations_nv:
18153         PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV,
18154 }
18155 unsafe impl Send for NvCoverageReductionModeFn {}
18156 unsafe impl Sync for NvCoverageReductionModeFn {}
18157 impl NvCoverageReductionModeFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18158     pub fn load<F>(mut _f: F) -> Self
18159     where
18160         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18161     {
18162         NvCoverageReductionModeFn {
18163             get_physical_device_supported_framebuffer_mixed_samples_combinations_nv: unsafe {
18164                 unsafe extern "system" fn get_physical_device_supported_framebuffer_mixed_samples_combinations_nv(
18165                     _physical_device: PhysicalDevice,
18166                     _p_combination_count: *mut u32,
18167                     _p_combinations: *mut FramebufferMixedSamplesCombinationNV,
18168                 ) -> Result {
18169                     panic!(concat!(
18170                         "Unable to load ",
18171                         stringify!(
18172                             get_physical_device_supported_framebuffer_mixed_samples_combinations_nv
18173                         )
18174                     ))
18175                 }
18176                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18177                     b"vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\0",
18178                 );
18179                 let val = _f(cname);
18180                 if val.is_null() {
18181                     get_physical_device_supported_framebuffer_mixed_samples_combinations_nv
18182                 } else {
18183                     ::std::mem::transmute(val)
18184                 }
18185             },
18186         }
18187     }
18188     #[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, ) -> Result18189     pub unsafe fn get_physical_device_supported_framebuffer_mixed_samples_combinations_nv(
18190         &self,
18191         physical_device: PhysicalDevice,
18192         p_combination_count: *mut u32,
18193         p_combinations: *mut FramebufferMixedSamplesCombinationNV,
18194     ) -> Result {
18195         (self.get_physical_device_supported_framebuffer_mixed_samples_combinations_nv)(
18196             physical_device,
18197             p_combination_count,
18198             p_combinations,
18199         )
18200     }
18201 }
18202 #[doc = "Generated from 'VK_NV_coverage_reduction_mode'"]
18203 impl StructureType {
18204     pub const PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV: Self = Self(1_000_250_000);
18205 }
18206 #[doc = "Generated from 'VK_NV_coverage_reduction_mode'"]
18207 impl StructureType {
18208     pub const PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV: Self = Self(1_000_250_001);
18209 }
18210 #[doc = "Generated from 'VK_NV_coverage_reduction_mode'"]
18211 impl StructureType {
18212     pub const FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV: Self = Self(1_000_250_002);
18213 }
18214 impl ExtFragmentShaderInterlockFn {
name() -> &'static ::std::ffi::CStr18215     pub fn name() -> &'static ::std::ffi::CStr {
18216         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_fragment_shader_interlock\0")
18217             .expect("Wrong extension string")
18218     }
18219     pub const SPEC_VERSION: u32 = 1u32;
18220 }
18221 #[derive(Clone)]
18222 pub struct ExtFragmentShaderInterlockFn {}
18223 unsafe impl Send for ExtFragmentShaderInterlockFn {}
18224 unsafe impl Sync for ExtFragmentShaderInterlockFn {}
18225 impl ExtFragmentShaderInterlockFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18226     pub fn load<F>(mut _f: F) -> Self
18227     where
18228         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18229     {
18230         ExtFragmentShaderInterlockFn {}
18231     }
18232 }
18233 #[doc = "Generated from 'VK_EXT_fragment_shader_interlock'"]
18234 impl StructureType {
18235     pub const PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT: Self = Self(1_000_251_000);
18236 }
18237 impl ExtYcbcrImageArraysFn {
name() -> &'static ::std::ffi::CStr18238     pub fn name() -> &'static ::std::ffi::CStr {
18239         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_ycbcr_image_arrays\0")
18240             .expect("Wrong extension string")
18241     }
18242     pub const SPEC_VERSION: u32 = 1u32;
18243 }
18244 #[derive(Clone)]
18245 pub struct ExtYcbcrImageArraysFn {}
18246 unsafe impl Send for ExtYcbcrImageArraysFn {}
18247 unsafe impl Sync for ExtYcbcrImageArraysFn {}
18248 impl ExtYcbcrImageArraysFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18249     pub fn load<F>(mut _f: F) -> Self
18250     where
18251         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18252     {
18253         ExtYcbcrImageArraysFn {}
18254     }
18255 }
18256 #[doc = "Generated from 'VK_EXT_ycbcr_image_arrays'"]
18257 impl StructureType {
18258     pub const PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT: Self = Self(1_000_252_000);
18259 }
18260 impl KhrUniformBufferStandardLayoutFn {
name() -> &'static ::std::ffi::CStr18261     pub fn name() -> &'static ::std::ffi::CStr {
18262         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_uniform_buffer_standard_layout\0")
18263             .expect("Wrong extension string")
18264     }
18265     pub const SPEC_VERSION: u32 = 1u32;
18266 }
18267 #[derive(Clone)]
18268 pub struct KhrUniformBufferStandardLayoutFn {}
18269 unsafe impl Send for KhrUniformBufferStandardLayoutFn {}
18270 unsafe impl Sync for KhrUniformBufferStandardLayoutFn {}
18271 impl KhrUniformBufferStandardLayoutFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18272     pub fn load<F>(mut _f: F) -> Self
18273     where
18274         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18275     {
18276         KhrUniformBufferStandardLayoutFn {}
18277     }
18278 }
18279 #[doc = "Generated from 'VK_KHR_uniform_buffer_standard_layout'"]
18280 impl StructureType {
18281     pub const PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR: Self =
18282         Self::PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES;
18283 }
18284 impl ExtProvokingVertexFn {
name() -> &'static ::std::ffi::CStr18285     pub fn name() -> &'static ::std::ffi::CStr {
18286         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_provoking_vertex\0")
18287             .expect("Wrong extension string")
18288     }
18289     pub const SPEC_VERSION: u32 = 1u32;
18290 }
18291 #[derive(Clone)]
18292 pub struct ExtProvokingVertexFn {}
18293 unsafe impl Send for ExtProvokingVertexFn {}
18294 unsafe impl Sync for ExtProvokingVertexFn {}
18295 impl ExtProvokingVertexFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18296     pub fn load<F>(mut _f: F) -> Self
18297     where
18298         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18299     {
18300         ExtProvokingVertexFn {}
18301     }
18302 }
18303 #[doc = "Generated from 'VK_EXT_provoking_vertex'"]
18304 impl StructureType {
18305     pub const PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: Self = Self(1_000_254_000);
18306 }
18307 #[doc = "Generated from 'VK_EXT_provoking_vertex'"]
18308 impl StructureType {
18309     pub const PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: Self =
18310         Self(1_000_254_001);
18311 }
18312 #[doc = "Generated from 'VK_EXT_provoking_vertex'"]
18313 impl StructureType {
18314     pub const PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: Self = Self(1_000_254_002);
18315 }
18316 impl ExtFullScreenExclusiveFn {
name() -> &'static ::std::ffi::CStr18317     pub fn name() -> &'static ::std::ffi::CStr {
18318         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_full_screen_exclusive\0")
18319             .expect("Wrong extension string")
18320     }
18321     pub const SPEC_VERSION: u32 = 4u32;
18322 }
18323 #[allow(non_camel_case_types)]
18324 pub type PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT = unsafe extern "system" fn(
18325     physical_device: PhysicalDevice,
18326     p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
18327     p_present_mode_count: *mut u32,
18328     p_present_modes: *mut PresentModeKHR,
18329 ) -> Result;
18330 #[allow(non_camel_case_types)]
18331 pub type PFN_vkAcquireFullScreenExclusiveModeEXT =
18332     unsafe extern "system" fn(device: Device, swapchain: SwapchainKHR) -> Result;
18333 #[allow(non_camel_case_types)]
18334 pub type PFN_vkReleaseFullScreenExclusiveModeEXT =
18335     unsafe extern "system" fn(device: Device, swapchain: SwapchainKHR) -> Result;
18336 #[allow(non_camel_case_types)]
18337 pub type PFN_vkGetDeviceGroupSurfacePresentModes2EXT = unsafe extern "system" fn(
18338     device: Device,
18339     p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
18340     p_modes: *mut DeviceGroupPresentModeFlagsKHR,
18341 ) -> Result;
18342 #[derive(Clone)]
18343 pub struct ExtFullScreenExclusiveFn {
18344     pub get_physical_device_surface_present_modes2_ext:
18345         PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT,
18346     pub acquire_full_screen_exclusive_mode_ext: PFN_vkAcquireFullScreenExclusiveModeEXT,
18347     pub release_full_screen_exclusive_mode_ext: PFN_vkReleaseFullScreenExclusiveModeEXT,
18348     pub get_device_group_surface_present_modes2_ext: PFN_vkGetDeviceGroupSurfacePresentModes2EXT,
18349 }
18350 unsafe impl Send for ExtFullScreenExclusiveFn {}
18351 unsafe impl Sync for ExtFullScreenExclusiveFn {}
18352 impl ExtFullScreenExclusiveFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18353     pub fn load<F>(mut _f: F) -> Self
18354     where
18355         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18356     {
18357         ExtFullScreenExclusiveFn {
18358             get_physical_device_surface_present_modes2_ext: unsafe {
18359                 unsafe extern "system" fn get_physical_device_surface_present_modes2_ext(
18360                     _physical_device: PhysicalDevice,
18361                     _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
18362                     _p_present_mode_count: *mut u32,
18363                     _p_present_modes: *mut PresentModeKHR,
18364                 ) -> Result {
18365                     panic!(concat!(
18366                         "Unable to load ",
18367                         stringify!(get_physical_device_surface_present_modes2_ext)
18368                     ))
18369                 }
18370                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18371                     b"vkGetPhysicalDeviceSurfacePresentModes2EXT\0",
18372                 );
18373                 let val = _f(cname);
18374                 if val.is_null() {
18375                     get_physical_device_surface_present_modes2_ext
18376                 } else {
18377                     ::std::mem::transmute(val)
18378                 }
18379             },
18380             acquire_full_screen_exclusive_mode_ext: unsafe {
18381                 unsafe extern "system" fn acquire_full_screen_exclusive_mode_ext(
18382                     _device: Device,
18383                     _swapchain: SwapchainKHR,
18384                 ) -> Result {
18385                     panic!(concat!(
18386                         "Unable to load ",
18387                         stringify!(acquire_full_screen_exclusive_mode_ext)
18388                     ))
18389                 }
18390                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18391                     b"vkAcquireFullScreenExclusiveModeEXT\0",
18392                 );
18393                 let val = _f(cname);
18394                 if val.is_null() {
18395                     acquire_full_screen_exclusive_mode_ext
18396                 } else {
18397                     ::std::mem::transmute(val)
18398                 }
18399             },
18400             release_full_screen_exclusive_mode_ext: unsafe {
18401                 unsafe extern "system" fn release_full_screen_exclusive_mode_ext(
18402                     _device: Device,
18403                     _swapchain: SwapchainKHR,
18404                 ) -> Result {
18405                     panic!(concat!(
18406                         "Unable to load ",
18407                         stringify!(release_full_screen_exclusive_mode_ext)
18408                     ))
18409                 }
18410                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18411                     b"vkReleaseFullScreenExclusiveModeEXT\0",
18412                 );
18413                 let val = _f(cname);
18414                 if val.is_null() {
18415                     release_full_screen_exclusive_mode_ext
18416                 } else {
18417                     ::std::mem::transmute(val)
18418                 }
18419             },
18420             get_device_group_surface_present_modes2_ext: unsafe {
18421                 unsafe extern "system" fn get_device_group_surface_present_modes2_ext(
18422                     _device: Device,
18423                     _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
18424                     _p_modes: *mut DeviceGroupPresentModeFlagsKHR,
18425                 ) -> Result {
18426                     panic!(concat!(
18427                         "Unable to load ",
18428                         stringify!(get_device_group_surface_present_modes2_ext)
18429                     ))
18430                 }
18431                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18432                     b"vkGetDeviceGroupSurfacePresentModes2EXT\0",
18433                 );
18434                 let val = _f(cname);
18435                 if val.is_null() {
18436                     get_device_group_surface_present_modes2_ext
18437                 } else {
18438                     ::std::mem::transmute(val)
18439                 }
18440             },
18441         }
18442     }
18443     #[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, ) -> Result18444     pub unsafe fn get_physical_device_surface_present_modes2_ext(
18445         &self,
18446         physical_device: PhysicalDevice,
18447         p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
18448         p_present_mode_count: *mut u32,
18449         p_present_modes: *mut PresentModeKHR,
18450     ) -> Result {
18451         (self.get_physical_device_surface_present_modes2_ext)(
18452             physical_device,
18453             p_surface_info,
18454             p_present_mode_count,
18455             p_present_modes,
18456         )
18457     }
18458     #[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, ) -> Result18459     pub unsafe fn acquire_full_screen_exclusive_mode_ext(
18460         &self,
18461         device: Device,
18462         swapchain: SwapchainKHR,
18463     ) -> Result {
18464         (self.acquire_full_screen_exclusive_mode_ext)(device, swapchain)
18465     }
18466     #[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, ) -> Result18467     pub unsafe fn release_full_screen_exclusive_mode_ext(
18468         &self,
18469         device: Device,
18470         swapchain: SwapchainKHR,
18471     ) -> Result {
18472         (self.release_full_screen_exclusive_mode_ext)(device, swapchain)
18473     }
18474     #[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, ) -> Result18475     pub unsafe fn get_device_group_surface_present_modes2_ext(
18476         &self,
18477         device: Device,
18478         p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
18479         p_modes: *mut DeviceGroupPresentModeFlagsKHR,
18480     ) -> Result {
18481         (self.get_device_group_surface_present_modes2_ext)(device, p_surface_info, p_modes)
18482     }
18483 }
18484 #[doc = "Generated from 'VK_EXT_full_screen_exclusive'"]
18485 impl StructureType {
18486     pub const SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT: Self = Self(1_000_255_000);
18487 }
18488 #[doc = "Generated from 'VK_EXT_full_screen_exclusive'"]
18489 impl StructureType {
18490     pub const SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT: Self = Self(1_000_255_002);
18491 }
18492 #[doc = "Generated from 'VK_EXT_full_screen_exclusive'"]
18493 impl Result {
18494     pub const ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT: Self = Self(-1000255000);
18495 }
18496 #[doc = "Generated from 'VK_EXT_full_screen_exclusive'"]
18497 impl StructureType {
18498     pub const SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT: Self = Self(1_000_255_001);
18499 }
18500 impl ExtHeadlessSurfaceFn {
name() -> &'static ::std::ffi::CStr18501     pub fn name() -> &'static ::std::ffi::CStr {
18502         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_headless_surface\0")
18503             .expect("Wrong extension string")
18504     }
18505     pub const SPEC_VERSION: u32 = 1u32;
18506 }
18507 #[allow(non_camel_case_types)]
18508 pub type PFN_vkCreateHeadlessSurfaceEXT = unsafe extern "system" fn(
18509     instance: Instance,
18510     p_create_info: *const HeadlessSurfaceCreateInfoEXT,
18511     p_allocator: *const AllocationCallbacks,
18512     p_surface: *mut SurfaceKHR,
18513 ) -> Result;
18514 #[derive(Clone)]
18515 pub struct ExtHeadlessSurfaceFn {
18516     pub create_headless_surface_ext: PFN_vkCreateHeadlessSurfaceEXT,
18517 }
18518 unsafe impl Send for ExtHeadlessSurfaceFn {}
18519 unsafe impl Sync for ExtHeadlessSurfaceFn {}
18520 impl ExtHeadlessSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18521     pub fn load<F>(mut _f: F) -> Self
18522     where
18523         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18524     {
18525         ExtHeadlessSurfaceFn {
18526             create_headless_surface_ext: unsafe {
18527                 unsafe extern "system" fn create_headless_surface_ext(
18528                     _instance: Instance,
18529                     _p_create_info: *const HeadlessSurfaceCreateInfoEXT,
18530                     _p_allocator: *const AllocationCallbacks,
18531                     _p_surface: *mut SurfaceKHR,
18532                 ) -> Result {
18533                     panic!(concat!(
18534                         "Unable to load ",
18535                         stringify!(create_headless_surface_ext)
18536                     ))
18537                 }
18538                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18539                     b"vkCreateHeadlessSurfaceEXT\0",
18540                 );
18541                 let val = _f(cname);
18542                 if val.is_null() {
18543                     create_headless_surface_ext
18544                 } else {
18545                     ::std::mem::transmute(val)
18546                 }
18547             },
18548         }
18549     }
18550     #[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, ) -> Result18551     pub unsafe fn create_headless_surface_ext(
18552         &self,
18553         instance: Instance,
18554         p_create_info: *const HeadlessSurfaceCreateInfoEXT,
18555         p_allocator: *const AllocationCallbacks,
18556         p_surface: *mut SurfaceKHR,
18557     ) -> Result {
18558         (self.create_headless_surface_ext)(instance, p_create_info, p_allocator, p_surface)
18559     }
18560 }
18561 #[doc = "Generated from 'VK_EXT_headless_surface'"]
18562 impl StructureType {
18563     pub const HEADLESS_SURFACE_CREATE_INFO_EXT: Self = Self(1_000_256_000);
18564 }
18565 impl KhrBufferDeviceAddressFn {
name() -> &'static ::std::ffi::CStr18566     pub fn name() -> &'static ::std::ffi::CStr {
18567         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_buffer_device_address\0")
18568             .expect("Wrong extension string")
18569     }
18570     pub const SPEC_VERSION: u32 = 1u32;
18571 }
18572 #[allow(non_camel_case_types)]
18573 pub type PFN_vkGetBufferOpaqueCaptureAddress =
18574     unsafe extern "system" fn(device: Device, p_info: *const BufferDeviceAddressInfo) -> u64;
18575 #[allow(non_camel_case_types)]
18576 pub type PFN_vkGetDeviceMemoryOpaqueCaptureAddress = unsafe extern "system" fn(
18577     device: Device,
18578     p_info: *const DeviceMemoryOpaqueCaptureAddressInfo,
18579 ) -> u64;
18580 #[derive(Clone)]
18581 pub struct KhrBufferDeviceAddressFn {
18582     pub get_buffer_device_address_khr: crate::vk::PFN_vkGetBufferDeviceAddress,
18583     pub get_buffer_opaque_capture_address_khr: PFN_vkGetBufferOpaqueCaptureAddress,
18584     pub get_device_memory_opaque_capture_address_khr: PFN_vkGetDeviceMemoryOpaqueCaptureAddress,
18585 }
18586 unsafe impl Send for KhrBufferDeviceAddressFn {}
18587 unsafe impl Sync for KhrBufferDeviceAddressFn {}
18588 impl KhrBufferDeviceAddressFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18589     pub fn load<F>(mut _f: F) -> Self
18590     where
18591         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18592     {
18593         KhrBufferDeviceAddressFn {
18594             get_buffer_device_address_khr: unsafe {
18595                 unsafe extern "system" fn get_buffer_device_address_khr(
18596                     _device: Device,
18597                     _p_info: *const BufferDeviceAddressInfo,
18598                 ) -> DeviceAddress {
18599                     panic!(concat!(
18600                         "Unable to load ",
18601                         stringify!(get_buffer_device_address_khr)
18602                     ))
18603                 }
18604                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18605                     b"vkGetBufferDeviceAddressKHR\0",
18606                 );
18607                 let val = _f(cname);
18608                 if val.is_null() {
18609                     get_buffer_device_address_khr
18610                 } else {
18611                     ::std::mem::transmute(val)
18612                 }
18613             },
18614             get_buffer_opaque_capture_address_khr: unsafe {
18615                 unsafe extern "system" fn get_buffer_opaque_capture_address_khr(
18616                     _device: Device,
18617                     _p_info: *const BufferDeviceAddressInfo,
18618                 ) -> u64 {
18619                     panic!(concat!(
18620                         "Unable to load ",
18621                         stringify!(get_buffer_opaque_capture_address_khr)
18622                     ))
18623                 }
18624                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18625                     b"vkGetBufferOpaqueCaptureAddressKHR\0",
18626                 );
18627                 let val = _f(cname);
18628                 if val.is_null() {
18629                     get_buffer_opaque_capture_address_khr
18630                 } else {
18631                     ::std::mem::transmute(val)
18632                 }
18633             },
18634             get_device_memory_opaque_capture_address_khr: unsafe {
18635                 unsafe extern "system" fn get_device_memory_opaque_capture_address_khr(
18636                     _device: Device,
18637                     _p_info: *const DeviceMemoryOpaqueCaptureAddressInfo,
18638                 ) -> u64 {
18639                     panic!(concat!(
18640                         "Unable to load ",
18641                         stringify!(get_device_memory_opaque_capture_address_khr)
18642                     ))
18643                 }
18644                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18645                     b"vkGetDeviceMemoryOpaqueCaptureAddressKHR\0",
18646                 );
18647                 let val = _f(cname);
18648                 if val.is_null() {
18649                     get_device_memory_opaque_capture_address_khr
18650                 } else {
18651                     ::std::mem::transmute(val)
18652                 }
18653             },
18654         }
18655     }
18656     #[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, ) -> DeviceAddress18657     pub unsafe fn get_buffer_device_address_khr(
18658         &self,
18659         device: Device,
18660         p_info: *const BufferDeviceAddressInfo,
18661     ) -> DeviceAddress {
18662         (self.get_buffer_device_address_khr)(device, p_info)
18663     }
18664     #[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, ) -> u6418665     pub unsafe fn get_buffer_opaque_capture_address_khr(
18666         &self,
18667         device: Device,
18668         p_info: *const BufferDeviceAddressInfo,
18669     ) -> u64 {
18670         (self.get_buffer_opaque_capture_address_khr)(device, p_info)
18671     }
18672     #[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, ) -> u6418673     pub unsafe fn get_device_memory_opaque_capture_address_khr(
18674         &self,
18675         device: Device,
18676         p_info: *const DeviceMemoryOpaqueCaptureAddressInfo,
18677     ) -> u64 {
18678         (self.get_device_memory_opaque_capture_address_khr)(device, p_info)
18679     }
18680 }
18681 #[doc = "Generated from 'VK_KHR_buffer_device_address'"]
18682 impl StructureType {
18683     pub const PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR: Self =
18684         Self::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES;
18685 }
18686 #[doc = "Generated from 'VK_KHR_buffer_device_address'"]
18687 impl StructureType {
18688     pub const BUFFER_DEVICE_ADDRESS_INFO_KHR: Self = Self::BUFFER_DEVICE_ADDRESS_INFO;
18689 }
18690 #[doc = "Generated from 'VK_KHR_buffer_device_address'"]
18691 impl StructureType {
18692     pub const BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR: Self =
18693         Self::BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO;
18694 }
18695 #[doc = "Generated from 'VK_KHR_buffer_device_address'"]
18696 impl StructureType {
18697     pub const MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR: Self =
18698         Self::MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO;
18699 }
18700 #[doc = "Generated from 'VK_KHR_buffer_device_address'"]
18701 impl StructureType {
18702     pub const DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR: Self =
18703         Self::DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO;
18704 }
18705 #[doc = "Generated from 'VK_KHR_buffer_device_address'"]
18706 impl BufferUsageFlags {
18707     pub const SHADER_DEVICE_ADDRESS_KHR: Self = Self::SHADER_DEVICE_ADDRESS;
18708 }
18709 #[doc = "Generated from 'VK_KHR_buffer_device_address'"]
18710 impl BufferCreateFlags {
18711     pub const DEVICE_ADDRESS_CAPTURE_REPLAY_KHR: Self = Self::DEVICE_ADDRESS_CAPTURE_REPLAY;
18712 }
18713 #[doc = "Generated from 'VK_KHR_buffer_device_address'"]
18714 impl MemoryAllocateFlags {
18715     pub const DEVICE_ADDRESS_KHR: Self = Self::DEVICE_ADDRESS;
18716 }
18717 #[doc = "Generated from 'VK_KHR_buffer_device_address'"]
18718 impl MemoryAllocateFlags {
18719     pub const DEVICE_ADDRESS_CAPTURE_REPLAY_KHR: Self = Self::DEVICE_ADDRESS_CAPTURE_REPLAY;
18720 }
18721 #[doc = "Generated from 'VK_KHR_buffer_device_address'"]
18722 impl Result {
18723     pub const ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR: Self =
18724         Self::ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS;
18725 }
18726 impl ExtExtension259Fn {
name() -> &'static ::std::ffi::CStr18727     pub fn name() -> &'static ::std::ffi::CStr {
18728         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_259\0")
18729             .expect("Wrong extension string")
18730     }
18731     pub const SPEC_VERSION: u32 = 0u32;
18732 }
18733 #[derive(Clone)]
18734 pub struct ExtExtension259Fn {}
18735 unsafe impl Send for ExtExtension259Fn {}
18736 unsafe impl Sync for ExtExtension259Fn {}
18737 impl ExtExtension259Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18738     pub fn load<F>(mut _f: F) -> Self
18739     where
18740         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18741     {
18742         ExtExtension259Fn {}
18743     }
18744 }
18745 impl ExtLineRasterizationFn {
name() -> &'static ::std::ffi::CStr18746     pub fn name() -> &'static ::std::ffi::CStr {
18747         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_line_rasterization\0")
18748             .expect("Wrong extension string")
18749     }
18750     pub const SPEC_VERSION: u32 = 1u32;
18751 }
18752 #[allow(non_camel_case_types)]
18753 pub type PFN_vkCmdSetLineStippleEXT = unsafe extern "system" fn(
18754     command_buffer: CommandBuffer,
18755     line_stipple_factor: u32,
18756     line_stipple_pattern: u16,
18757 );
18758 #[derive(Clone)]
18759 pub struct ExtLineRasterizationFn {
18760     pub cmd_set_line_stipple_ext: PFN_vkCmdSetLineStippleEXT,
18761 }
18762 unsafe impl Send for ExtLineRasterizationFn {}
18763 unsafe impl Sync for ExtLineRasterizationFn {}
18764 impl ExtLineRasterizationFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18765     pub fn load<F>(mut _f: F) -> Self
18766     where
18767         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18768     {
18769         ExtLineRasterizationFn {
18770             cmd_set_line_stipple_ext: unsafe {
18771                 unsafe extern "system" fn cmd_set_line_stipple_ext(
18772                     _command_buffer: CommandBuffer,
18773                     _line_stipple_factor: u32,
18774                     _line_stipple_pattern: u16,
18775                 ) {
18776                     panic!(concat!(
18777                         "Unable to load ",
18778                         stringify!(cmd_set_line_stipple_ext)
18779                     ))
18780                 }
18781                 let cname =
18782                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLineStippleEXT\0");
18783                 let val = _f(cname);
18784                 if val.is_null() {
18785                     cmd_set_line_stipple_ext
18786                 } else {
18787                     ::std::mem::transmute(val)
18788                 }
18789             },
18790         }
18791     }
18792     #[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, )18793     pub unsafe fn cmd_set_line_stipple_ext(
18794         &self,
18795         command_buffer: CommandBuffer,
18796         line_stipple_factor: u32,
18797         line_stipple_pattern: u16,
18798     ) {
18799         (self.cmd_set_line_stipple_ext)(command_buffer, line_stipple_factor, line_stipple_pattern)
18800     }
18801 }
18802 #[doc = "Generated from 'VK_EXT_line_rasterization'"]
18803 impl StructureType {
18804     pub const PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT: Self = Self(1_000_259_000);
18805 }
18806 #[doc = "Generated from 'VK_EXT_line_rasterization'"]
18807 impl StructureType {
18808     pub const PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT: Self = Self(1_000_259_001);
18809 }
18810 #[doc = "Generated from 'VK_EXT_line_rasterization'"]
18811 impl StructureType {
18812     pub const PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT: Self = Self(1_000_259_002);
18813 }
18814 #[doc = "Generated from 'VK_EXT_line_rasterization'"]
18815 impl DynamicState {
18816     pub const LINE_STIPPLE_EXT: Self = Self(1_000_259_000);
18817 }
18818 impl ExtShaderAtomicFloatFn {
name() -> &'static ::std::ffi::CStr18819     pub fn name() -> &'static ::std::ffi::CStr {
18820         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_shader_atomic_float\0")
18821             .expect("Wrong extension string")
18822     }
18823     pub const SPEC_VERSION: u32 = 1u32;
18824 }
18825 #[derive(Clone)]
18826 pub struct ExtShaderAtomicFloatFn {}
18827 unsafe impl Send for ExtShaderAtomicFloatFn {}
18828 unsafe impl Sync for ExtShaderAtomicFloatFn {}
18829 impl ExtShaderAtomicFloatFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18830     pub fn load<F>(mut _f: F) -> Self
18831     where
18832         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18833     {
18834         ExtShaderAtomicFloatFn {}
18835     }
18836 }
18837 #[doc = "Generated from 'VK_EXT_shader_atomic_float'"]
18838 impl StructureType {
18839     pub const PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT: Self = Self(1_000_260_000);
18840 }
18841 impl ExtHostQueryResetFn {
name() -> &'static ::std::ffi::CStr18842     pub fn name() -> &'static ::std::ffi::CStr {
18843         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_host_query_reset\0")
18844             .expect("Wrong extension string")
18845     }
18846     pub const SPEC_VERSION: u32 = 1u32;
18847 }
18848 #[allow(non_camel_case_types)]
18849 pub type PFN_vkResetQueryPool = unsafe extern "system" fn(
18850     device: Device,
18851     query_pool: QueryPool,
18852     first_query: u32,
18853     query_count: u32,
18854 );
18855 #[derive(Clone)]
18856 pub struct ExtHostQueryResetFn {
18857     pub reset_query_pool_ext: PFN_vkResetQueryPool,
18858 }
18859 unsafe impl Send for ExtHostQueryResetFn {}
18860 unsafe impl Sync for ExtHostQueryResetFn {}
18861 impl ExtHostQueryResetFn {
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         ExtHostQueryResetFn {
18867             reset_query_pool_ext: unsafe {
18868                 unsafe extern "system" fn reset_query_pool_ext(
18869                     _device: Device,
18870                     _query_pool: QueryPool,
18871                     _first_query: u32,
18872                     _query_count: u32,
18873                 ) {
18874                     panic!(concat!("Unable to load ", stringify!(reset_query_pool_ext)))
18875                 }
18876                 let cname =
18877                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkResetQueryPoolEXT\0");
18878                 let val = _f(cname);
18879                 if val.is_null() {
18880                     reset_query_pool_ext
18881                 } else {
18882                     ::std::mem::transmute(val)
18883                 }
18884             },
18885         }
18886     }
18887     #[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, )18888     pub unsafe fn reset_query_pool_ext(
18889         &self,
18890         device: Device,
18891         query_pool: QueryPool,
18892         first_query: u32,
18893         query_count: u32,
18894     ) {
18895         (self.reset_query_pool_ext)(device, query_pool, first_query, query_count)
18896     }
18897 }
18898 #[doc = "Generated from 'VK_EXT_host_query_reset'"]
18899 impl StructureType {
18900     pub const PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT: Self =
18901         Self::PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES;
18902 }
18903 impl GgpExtension263Fn {
name() -> &'static ::std::ffi::CStr18904     pub fn name() -> &'static ::std::ffi::CStr {
18905         ::std::ffi::CStr::from_bytes_with_nul(b"VK_GGP_extension_263\0")
18906             .expect("Wrong extension string")
18907     }
18908     pub const SPEC_VERSION: u32 = 0u32;
18909 }
18910 #[derive(Clone)]
18911 pub struct GgpExtension263Fn {}
18912 unsafe impl Send for GgpExtension263Fn {}
18913 unsafe impl Sync for GgpExtension263Fn {}
18914 impl GgpExtension263Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18915     pub fn load<F>(mut _f: F) -> Self
18916     where
18917         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18918     {
18919         GgpExtension263Fn {}
18920     }
18921 }
18922 impl BrcmExtension264Fn {
name() -> &'static ::std::ffi::CStr18923     pub fn name() -> &'static ::std::ffi::CStr {
18924         ::std::ffi::CStr::from_bytes_with_nul(b"VK_BRCM_extension_264\0")
18925             .expect("Wrong extension string")
18926     }
18927     pub const SPEC_VERSION: u32 = 0u32;
18928 }
18929 #[derive(Clone)]
18930 pub struct BrcmExtension264Fn {}
18931 unsafe impl Send for BrcmExtension264Fn {}
18932 unsafe impl Sync for BrcmExtension264Fn {}
18933 impl BrcmExtension264Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18934     pub fn load<F>(mut _f: F) -> Self
18935     where
18936         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18937     {
18938         BrcmExtension264Fn {}
18939     }
18940 }
18941 impl BrcmExtension265Fn {
name() -> &'static ::std::ffi::CStr18942     pub fn name() -> &'static ::std::ffi::CStr {
18943         ::std::ffi::CStr::from_bytes_with_nul(b"VK_BRCM_extension_265\0")
18944             .expect("Wrong extension string")
18945     }
18946     pub const SPEC_VERSION: u32 = 0u32;
18947 }
18948 #[derive(Clone)]
18949 pub struct BrcmExtension265Fn {}
18950 unsafe impl Send for BrcmExtension265Fn {}
18951 unsafe impl Sync for BrcmExtension265Fn {}
18952 impl BrcmExtension265Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18953     pub fn load<F>(mut _f: F) -> Self
18954     where
18955         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18956     {
18957         BrcmExtension265Fn {}
18958     }
18959 }
18960 impl ExtIndexTypeUint8Fn {
name() -> &'static ::std::ffi::CStr18961     pub fn name() -> &'static ::std::ffi::CStr {
18962         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_index_type_uint8\0")
18963             .expect("Wrong extension string")
18964     }
18965     pub const SPEC_VERSION: u32 = 1u32;
18966 }
18967 #[derive(Clone)]
18968 pub struct ExtIndexTypeUint8Fn {}
18969 unsafe impl Send for ExtIndexTypeUint8Fn {}
18970 unsafe impl Sync for ExtIndexTypeUint8Fn {}
18971 impl ExtIndexTypeUint8Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18972     pub fn load<F>(mut _f: F) -> Self
18973     where
18974         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18975     {
18976         ExtIndexTypeUint8Fn {}
18977     }
18978 }
18979 #[doc = "Generated from 'VK_EXT_index_type_uint8'"]
18980 impl StructureType {
18981     pub const PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT: Self = Self(1_000_265_000);
18982 }
18983 #[doc = "Generated from 'VK_EXT_index_type_uint8'"]
18984 impl IndexType {
18985     pub const UINT8_EXT: Self = Self(1_000_265_000);
18986 }
18987 impl ExtExtension267Fn {
name() -> &'static ::std::ffi::CStr18988     pub fn name() -> &'static ::std::ffi::CStr {
18989         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_267\0")
18990             .expect("Wrong extension string")
18991     }
18992     pub const SPEC_VERSION: u32 = 0u32;
18993 }
18994 #[derive(Clone)]
18995 pub struct ExtExtension267Fn {}
18996 unsafe impl Send for ExtExtension267Fn {}
18997 unsafe impl Sync for ExtExtension267Fn {}
18998 impl ExtExtension267Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18999     pub fn load<F>(mut _f: F) -> Self
19000     where
19001         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19002     {
19003         ExtExtension267Fn {}
19004     }
19005 }
19006 impl ExtExtendedDynamicStateFn {
name() -> &'static ::std::ffi::CStr19007     pub fn name() -> &'static ::std::ffi::CStr {
19008         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extended_dynamic_state\0")
19009             .expect("Wrong extension string")
19010     }
19011     pub const SPEC_VERSION: u32 = 1u32;
19012 }
19013 #[allow(non_camel_case_types)]
19014 pub type PFN_vkCmdSetCullModeEXT =
19015     unsafe extern "system" fn(command_buffer: CommandBuffer, cull_mode: CullModeFlags);
19016 #[allow(non_camel_case_types)]
19017 pub type PFN_vkCmdSetFrontFaceEXT =
19018     unsafe extern "system" fn(command_buffer: CommandBuffer, front_face: FrontFace);
19019 #[allow(non_camel_case_types)]
19020 pub type PFN_vkCmdSetPrimitiveTopologyEXT =
19021     unsafe extern "system" fn(command_buffer: CommandBuffer, primitive_topology: PrimitiveTopology);
19022 #[allow(non_camel_case_types)]
19023 pub type PFN_vkCmdSetViewportWithCountEXT = unsafe extern "system" fn(
19024     command_buffer: CommandBuffer,
19025     viewport_count: u32,
19026     p_viewports: *const Viewport,
19027 );
19028 #[allow(non_camel_case_types)]
19029 pub type PFN_vkCmdSetScissorWithCountEXT = unsafe extern "system" fn(
19030     command_buffer: CommandBuffer,
19031     scissor_count: u32,
19032     p_scissors: *const Rect2D,
19033 );
19034 #[allow(non_camel_case_types)]
19035 pub type PFN_vkCmdBindVertexBuffers2EXT = unsafe extern "system" fn(
19036     command_buffer: CommandBuffer,
19037     first_binding: u32,
19038     binding_count: u32,
19039     p_buffers: *const Buffer,
19040     p_offsets: *const DeviceSize,
19041     p_sizes: *const DeviceSize,
19042     p_strides: *const DeviceSize,
19043 );
19044 #[allow(non_camel_case_types)]
19045 pub type PFN_vkCmdSetDepthTestEnableEXT =
19046     unsafe extern "system" fn(command_buffer: CommandBuffer, depth_test_enable: Bool32);
19047 #[allow(non_camel_case_types)]
19048 pub type PFN_vkCmdSetDepthWriteEnableEXT =
19049     unsafe extern "system" fn(command_buffer: CommandBuffer, depth_write_enable: Bool32);
19050 #[allow(non_camel_case_types)]
19051 pub type PFN_vkCmdSetDepthCompareOpEXT =
19052     unsafe extern "system" fn(command_buffer: CommandBuffer, depth_compare_op: CompareOp);
19053 #[allow(non_camel_case_types)]
19054 pub type PFN_vkCmdSetDepthBoundsTestEnableEXT =
19055     unsafe extern "system" fn(command_buffer: CommandBuffer, depth_bounds_test_enable: Bool32);
19056 #[allow(non_camel_case_types)]
19057 pub type PFN_vkCmdSetStencilTestEnableEXT =
19058     unsafe extern "system" fn(command_buffer: CommandBuffer, stencil_test_enable: Bool32);
19059 #[allow(non_camel_case_types)]
19060 pub type PFN_vkCmdSetStencilOpEXT = unsafe extern "system" fn(
19061     command_buffer: CommandBuffer,
19062     face_mask: StencilFaceFlags,
19063     fail_op: StencilOp,
19064     pass_op: StencilOp,
19065     depth_fail_op: StencilOp,
19066     compare_op: CompareOp,
19067 );
19068 #[derive(Clone)]
19069 pub struct ExtExtendedDynamicStateFn {
19070     pub cmd_set_cull_mode_ext: PFN_vkCmdSetCullModeEXT,
19071     pub cmd_set_front_face_ext: PFN_vkCmdSetFrontFaceEXT,
19072     pub cmd_set_primitive_topology_ext: PFN_vkCmdSetPrimitiveTopologyEXT,
19073     pub cmd_set_viewport_with_count_ext: PFN_vkCmdSetViewportWithCountEXT,
19074     pub cmd_set_scissor_with_count_ext: PFN_vkCmdSetScissorWithCountEXT,
19075     pub cmd_bind_vertex_buffers2_ext: PFN_vkCmdBindVertexBuffers2EXT,
19076     pub cmd_set_depth_test_enable_ext: PFN_vkCmdSetDepthTestEnableEXT,
19077     pub cmd_set_depth_write_enable_ext: PFN_vkCmdSetDepthWriteEnableEXT,
19078     pub cmd_set_depth_compare_op_ext: PFN_vkCmdSetDepthCompareOpEXT,
19079     pub cmd_set_depth_bounds_test_enable_ext: PFN_vkCmdSetDepthBoundsTestEnableEXT,
19080     pub cmd_set_stencil_test_enable_ext: PFN_vkCmdSetStencilTestEnableEXT,
19081     pub cmd_set_stencil_op_ext: PFN_vkCmdSetStencilOpEXT,
19082 }
19083 unsafe impl Send for ExtExtendedDynamicStateFn {}
19084 unsafe impl Sync for ExtExtendedDynamicStateFn {}
19085 impl ExtExtendedDynamicStateFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19086     pub fn load<F>(mut _f: F) -> Self
19087     where
19088         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19089     {
19090         ExtExtendedDynamicStateFn {
19091             cmd_set_cull_mode_ext: unsafe {
19092                 unsafe extern "system" fn cmd_set_cull_mode_ext(
19093                     _command_buffer: CommandBuffer,
19094                     _cull_mode: CullModeFlags,
19095                 ) {
19096                     panic!(concat!(
19097                         "Unable to load ",
19098                         stringify!(cmd_set_cull_mode_ext)
19099                     ))
19100                 }
19101                 let cname =
19102                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCullModeEXT\0");
19103                 let val = _f(cname);
19104                 if val.is_null() {
19105                     cmd_set_cull_mode_ext
19106                 } else {
19107                     ::std::mem::transmute(val)
19108                 }
19109             },
19110             cmd_set_front_face_ext: unsafe {
19111                 unsafe extern "system" fn cmd_set_front_face_ext(
19112                     _command_buffer: CommandBuffer,
19113                     _front_face: FrontFace,
19114                 ) {
19115                     panic!(concat!(
19116                         "Unable to load ",
19117                         stringify!(cmd_set_front_face_ext)
19118                     ))
19119                 }
19120                 let cname =
19121                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetFrontFaceEXT\0");
19122                 let val = _f(cname);
19123                 if val.is_null() {
19124                     cmd_set_front_face_ext
19125                 } else {
19126                     ::std::mem::transmute(val)
19127                 }
19128             },
19129             cmd_set_primitive_topology_ext: unsafe {
19130                 unsafe extern "system" fn cmd_set_primitive_topology_ext(
19131                     _command_buffer: CommandBuffer,
19132                     _primitive_topology: PrimitiveTopology,
19133                 ) {
19134                     panic!(concat!(
19135                         "Unable to load ",
19136                         stringify!(cmd_set_primitive_topology_ext)
19137                     ))
19138                 }
19139                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19140                     b"vkCmdSetPrimitiveTopologyEXT\0",
19141                 );
19142                 let val = _f(cname);
19143                 if val.is_null() {
19144                     cmd_set_primitive_topology_ext
19145                 } else {
19146                     ::std::mem::transmute(val)
19147                 }
19148             },
19149             cmd_set_viewport_with_count_ext: unsafe {
19150                 unsafe extern "system" fn cmd_set_viewport_with_count_ext(
19151                     _command_buffer: CommandBuffer,
19152                     _viewport_count: u32,
19153                     _p_viewports: *const Viewport,
19154                 ) {
19155                     panic!(concat!(
19156                         "Unable to load ",
19157                         stringify!(cmd_set_viewport_with_count_ext)
19158                     ))
19159                 }
19160                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19161                     b"vkCmdSetViewportWithCountEXT\0",
19162                 );
19163                 let val = _f(cname);
19164                 if val.is_null() {
19165                     cmd_set_viewport_with_count_ext
19166                 } else {
19167                     ::std::mem::transmute(val)
19168                 }
19169             },
19170             cmd_set_scissor_with_count_ext: unsafe {
19171                 unsafe extern "system" fn cmd_set_scissor_with_count_ext(
19172                     _command_buffer: CommandBuffer,
19173                     _scissor_count: u32,
19174                     _p_scissors: *const Rect2D,
19175                 ) {
19176                     panic!(concat!(
19177                         "Unable to load ",
19178                         stringify!(cmd_set_scissor_with_count_ext)
19179                     ))
19180                 }
19181                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19182                     b"vkCmdSetScissorWithCountEXT\0",
19183                 );
19184                 let val = _f(cname);
19185                 if val.is_null() {
19186                     cmd_set_scissor_with_count_ext
19187                 } else {
19188                     ::std::mem::transmute(val)
19189                 }
19190             },
19191             cmd_bind_vertex_buffers2_ext: unsafe {
19192                 unsafe extern "system" fn cmd_bind_vertex_buffers2_ext(
19193                     _command_buffer: CommandBuffer,
19194                     _first_binding: u32,
19195                     _binding_count: u32,
19196                     _p_buffers: *const Buffer,
19197                     _p_offsets: *const DeviceSize,
19198                     _p_sizes: *const DeviceSize,
19199                     _p_strides: *const DeviceSize,
19200                 ) {
19201                     panic!(concat!(
19202                         "Unable to load ",
19203                         stringify!(cmd_bind_vertex_buffers2_ext)
19204                     ))
19205                 }
19206                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19207                     b"vkCmdBindVertexBuffers2EXT\0",
19208                 );
19209                 let val = _f(cname);
19210                 if val.is_null() {
19211                     cmd_bind_vertex_buffers2_ext
19212                 } else {
19213                     ::std::mem::transmute(val)
19214                 }
19215             },
19216             cmd_set_depth_test_enable_ext: unsafe {
19217                 unsafe extern "system" fn cmd_set_depth_test_enable_ext(
19218                     _command_buffer: CommandBuffer,
19219                     _depth_test_enable: Bool32,
19220                 ) {
19221                     panic!(concat!(
19222                         "Unable to load ",
19223                         stringify!(cmd_set_depth_test_enable_ext)
19224                     ))
19225                 }
19226                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19227                     b"vkCmdSetDepthTestEnableEXT\0",
19228                 );
19229                 let val = _f(cname);
19230                 if val.is_null() {
19231                     cmd_set_depth_test_enable_ext
19232                 } else {
19233                     ::std::mem::transmute(val)
19234                 }
19235             },
19236             cmd_set_depth_write_enable_ext: unsafe {
19237                 unsafe extern "system" fn cmd_set_depth_write_enable_ext(
19238                     _command_buffer: CommandBuffer,
19239                     _depth_write_enable: Bool32,
19240                 ) {
19241                     panic!(concat!(
19242                         "Unable to load ",
19243                         stringify!(cmd_set_depth_write_enable_ext)
19244                     ))
19245                 }
19246                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19247                     b"vkCmdSetDepthWriteEnableEXT\0",
19248                 );
19249                 let val = _f(cname);
19250                 if val.is_null() {
19251                     cmd_set_depth_write_enable_ext
19252                 } else {
19253                     ::std::mem::transmute(val)
19254                 }
19255             },
19256             cmd_set_depth_compare_op_ext: unsafe {
19257                 unsafe extern "system" fn cmd_set_depth_compare_op_ext(
19258                     _command_buffer: CommandBuffer,
19259                     _depth_compare_op: CompareOp,
19260                 ) {
19261                     panic!(concat!(
19262                         "Unable to load ",
19263                         stringify!(cmd_set_depth_compare_op_ext)
19264                     ))
19265                 }
19266                 let cname =
19267                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthCompareOpEXT\0");
19268                 let val = _f(cname);
19269                 if val.is_null() {
19270                     cmd_set_depth_compare_op_ext
19271                 } else {
19272                     ::std::mem::transmute(val)
19273                 }
19274             },
19275             cmd_set_depth_bounds_test_enable_ext: unsafe {
19276                 unsafe extern "system" fn cmd_set_depth_bounds_test_enable_ext(
19277                     _command_buffer: CommandBuffer,
19278                     _depth_bounds_test_enable: Bool32,
19279                 ) {
19280                     panic!(concat!(
19281                         "Unable to load ",
19282                         stringify!(cmd_set_depth_bounds_test_enable_ext)
19283                     ))
19284                 }
19285                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19286                     b"vkCmdSetDepthBoundsTestEnableEXT\0",
19287                 );
19288                 let val = _f(cname);
19289                 if val.is_null() {
19290                     cmd_set_depth_bounds_test_enable_ext
19291                 } else {
19292                     ::std::mem::transmute(val)
19293                 }
19294             },
19295             cmd_set_stencil_test_enable_ext: unsafe {
19296                 unsafe extern "system" fn cmd_set_stencil_test_enable_ext(
19297                     _command_buffer: CommandBuffer,
19298                     _stencil_test_enable: Bool32,
19299                 ) {
19300                     panic!(concat!(
19301                         "Unable to load ",
19302                         stringify!(cmd_set_stencil_test_enable_ext)
19303                     ))
19304                 }
19305                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19306                     b"vkCmdSetStencilTestEnableEXT\0",
19307                 );
19308                 let val = _f(cname);
19309                 if val.is_null() {
19310                     cmd_set_stencil_test_enable_ext
19311                 } else {
19312                     ::std::mem::transmute(val)
19313                 }
19314             },
19315             cmd_set_stencil_op_ext: unsafe {
19316                 unsafe extern "system" fn cmd_set_stencil_op_ext(
19317                     _command_buffer: CommandBuffer,
19318                     _face_mask: StencilFaceFlags,
19319                     _fail_op: StencilOp,
19320                     _pass_op: StencilOp,
19321                     _depth_fail_op: StencilOp,
19322                     _compare_op: CompareOp,
19323                 ) {
19324                     panic!(concat!(
19325                         "Unable to load ",
19326                         stringify!(cmd_set_stencil_op_ext)
19327                     ))
19328                 }
19329                 let cname =
19330                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilOpEXT\0");
19331                 let val = _f(cname);
19332                 if val.is_null() {
19333                     cmd_set_stencil_op_ext
19334                 } else {
19335                     ::std::mem::transmute(val)
19336                 }
19337             },
19338         }
19339     }
19340     #[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, )19341     pub unsafe fn cmd_set_cull_mode_ext(
19342         &self,
19343         command_buffer: CommandBuffer,
19344         cull_mode: CullModeFlags,
19345     ) {
19346         (self.cmd_set_cull_mode_ext)(command_buffer, cull_mode)
19347     }
19348     #[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, )19349     pub unsafe fn cmd_set_front_face_ext(
19350         &self,
19351         command_buffer: CommandBuffer,
19352         front_face: FrontFace,
19353     ) {
19354         (self.cmd_set_front_face_ext)(command_buffer, front_face)
19355     }
19356     #[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, )19357     pub unsafe fn cmd_set_primitive_topology_ext(
19358         &self,
19359         command_buffer: CommandBuffer,
19360         primitive_topology: PrimitiveTopology,
19361     ) {
19362         (self.cmd_set_primitive_topology_ext)(command_buffer, primitive_topology)
19363     }
19364     #[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, )19365     pub unsafe fn cmd_set_viewport_with_count_ext(
19366         &self,
19367         command_buffer: CommandBuffer,
19368         viewport_count: u32,
19369         p_viewports: *const Viewport,
19370     ) {
19371         (self.cmd_set_viewport_with_count_ext)(command_buffer, viewport_count, p_viewports)
19372     }
19373     #[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, )19374     pub unsafe fn cmd_set_scissor_with_count_ext(
19375         &self,
19376         command_buffer: CommandBuffer,
19377         scissor_count: u32,
19378         p_scissors: *const Rect2D,
19379     ) {
19380         (self.cmd_set_scissor_with_count_ext)(command_buffer, scissor_count, p_scissors)
19381     }
19382     #[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, )19383     pub unsafe fn cmd_bind_vertex_buffers2_ext(
19384         &self,
19385         command_buffer: CommandBuffer,
19386         first_binding: u32,
19387         binding_count: u32,
19388         p_buffers: *const Buffer,
19389         p_offsets: *const DeviceSize,
19390         p_sizes: *const DeviceSize,
19391         p_strides: *const DeviceSize,
19392     ) {
19393         (self.cmd_bind_vertex_buffers2_ext)(
19394             command_buffer,
19395             first_binding,
19396             binding_count,
19397             p_buffers,
19398             p_offsets,
19399             p_sizes,
19400             p_strides,
19401         )
19402     }
19403     #[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, )19404     pub unsafe fn cmd_set_depth_test_enable_ext(
19405         &self,
19406         command_buffer: CommandBuffer,
19407         depth_test_enable: Bool32,
19408     ) {
19409         (self.cmd_set_depth_test_enable_ext)(command_buffer, depth_test_enable)
19410     }
19411     #[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, )19412     pub unsafe fn cmd_set_depth_write_enable_ext(
19413         &self,
19414         command_buffer: CommandBuffer,
19415         depth_write_enable: Bool32,
19416     ) {
19417         (self.cmd_set_depth_write_enable_ext)(command_buffer, depth_write_enable)
19418     }
19419     #[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, )19420     pub unsafe fn cmd_set_depth_compare_op_ext(
19421         &self,
19422         command_buffer: CommandBuffer,
19423         depth_compare_op: CompareOp,
19424     ) {
19425         (self.cmd_set_depth_compare_op_ext)(command_buffer, depth_compare_op)
19426     }
19427     #[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, )19428     pub unsafe fn cmd_set_depth_bounds_test_enable_ext(
19429         &self,
19430         command_buffer: CommandBuffer,
19431         depth_bounds_test_enable: Bool32,
19432     ) {
19433         (self.cmd_set_depth_bounds_test_enable_ext)(command_buffer, depth_bounds_test_enable)
19434     }
19435     #[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, )19436     pub unsafe fn cmd_set_stencil_test_enable_ext(
19437         &self,
19438         command_buffer: CommandBuffer,
19439         stencil_test_enable: Bool32,
19440     ) {
19441         (self.cmd_set_stencil_test_enable_ext)(command_buffer, stencil_test_enable)
19442     }
19443     #[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, )19444     pub unsafe fn cmd_set_stencil_op_ext(
19445         &self,
19446         command_buffer: CommandBuffer,
19447         face_mask: StencilFaceFlags,
19448         fail_op: StencilOp,
19449         pass_op: StencilOp,
19450         depth_fail_op: StencilOp,
19451         compare_op: CompareOp,
19452     ) {
19453         (self.cmd_set_stencil_op_ext)(
19454             command_buffer,
19455             face_mask,
19456             fail_op,
19457             pass_op,
19458             depth_fail_op,
19459             compare_op,
19460         )
19461     }
19462 }
19463 #[doc = "Generated from 'VK_EXT_extended_dynamic_state'"]
19464 impl StructureType {
19465     pub const PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: Self = Self(1_000_267_000);
19466 }
19467 #[doc = "Generated from 'VK_EXT_extended_dynamic_state'"]
19468 impl DynamicState {
19469     pub const CULL_MODE_EXT: Self = Self(1_000_267_000);
19470 }
19471 #[doc = "Generated from 'VK_EXT_extended_dynamic_state'"]
19472 impl DynamicState {
19473     pub const FRONT_FACE_EXT: Self = Self(1_000_267_001);
19474 }
19475 #[doc = "Generated from 'VK_EXT_extended_dynamic_state'"]
19476 impl DynamicState {
19477     pub const PRIMITIVE_TOPOLOGY_EXT: Self = Self(1_000_267_002);
19478 }
19479 #[doc = "Generated from 'VK_EXT_extended_dynamic_state'"]
19480 impl DynamicState {
19481     pub const VIEWPORT_WITH_COUNT_EXT: Self = Self(1_000_267_003);
19482 }
19483 #[doc = "Generated from 'VK_EXT_extended_dynamic_state'"]
19484 impl DynamicState {
19485     pub const SCISSOR_WITH_COUNT_EXT: Self = Self(1_000_267_004);
19486 }
19487 #[doc = "Generated from 'VK_EXT_extended_dynamic_state'"]
19488 impl DynamicState {
19489     pub const VERTEX_INPUT_BINDING_STRIDE_EXT: Self = Self(1_000_267_005);
19490 }
19491 #[doc = "Generated from 'VK_EXT_extended_dynamic_state'"]
19492 impl DynamicState {
19493     pub const DEPTH_TEST_ENABLE_EXT: Self = Self(1_000_267_006);
19494 }
19495 #[doc = "Generated from 'VK_EXT_extended_dynamic_state'"]
19496 impl DynamicState {
19497     pub const DEPTH_WRITE_ENABLE_EXT: Self = Self(1_000_267_007);
19498 }
19499 #[doc = "Generated from 'VK_EXT_extended_dynamic_state'"]
19500 impl DynamicState {
19501     pub const DEPTH_COMPARE_OP_EXT: Self = Self(1_000_267_008);
19502 }
19503 #[doc = "Generated from 'VK_EXT_extended_dynamic_state'"]
19504 impl DynamicState {
19505     pub const DEPTH_BOUNDS_TEST_ENABLE_EXT: Self = Self(1_000_267_009);
19506 }
19507 #[doc = "Generated from 'VK_EXT_extended_dynamic_state'"]
19508 impl DynamicState {
19509     pub const STENCIL_TEST_ENABLE_EXT: Self = Self(1_000_267_010);
19510 }
19511 #[doc = "Generated from 'VK_EXT_extended_dynamic_state'"]
19512 impl DynamicState {
19513     pub const STENCIL_OP_EXT: Self = Self(1_000_267_011);
19514 }
19515 impl KhrDeferredHostOperationsFn {
name() -> &'static ::std::ffi::CStr19516     pub fn name() -> &'static ::std::ffi::CStr {
19517         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_deferred_host_operations\0")
19518             .expect("Wrong extension string")
19519     }
19520     pub const SPEC_VERSION: u32 = 4u32;
19521 }
19522 #[allow(non_camel_case_types)]
19523 pub type PFN_vkCreateDeferredOperationKHR = unsafe extern "system" fn(
19524     device: Device,
19525     p_allocator: *const AllocationCallbacks,
19526     p_deferred_operation: *mut DeferredOperationKHR,
19527 ) -> Result;
19528 #[allow(non_camel_case_types)]
19529 pub type PFN_vkDestroyDeferredOperationKHR = unsafe extern "system" fn(
19530     device: Device,
19531     operation: DeferredOperationKHR,
19532     p_allocator: *const AllocationCallbacks,
19533 );
19534 #[allow(non_camel_case_types)]
19535 pub type PFN_vkGetDeferredOperationMaxConcurrencyKHR =
19536     unsafe extern "system" fn(device: Device, operation: DeferredOperationKHR) -> u32;
19537 #[allow(non_camel_case_types)]
19538 pub type PFN_vkGetDeferredOperationResultKHR =
19539     unsafe extern "system" fn(device: Device, operation: DeferredOperationKHR) -> Result;
19540 #[allow(non_camel_case_types)]
19541 pub type PFN_vkDeferredOperationJoinKHR =
19542     unsafe extern "system" fn(device: Device, operation: DeferredOperationKHR) -> Result;
19543 #[derive(Clone)]
19544 pub struct KhrDeferredHostOperationsFn {
19545     pub create_deferred_operation_khr: PFN_vkCreateDeferredOperationKHR,
19546     pub destroy_deferred_operation_khr: PFN_vkDestroyDeferredOperationKHR,
19547     pub get_deferred_operation_max_concurrency_khr: PFN_vkGetDeferredOperationMaxConcurrencyKHR,
19548     pub get_deferred_operation_result_khr: PFN_vkGetDeferredOperationResultKHR,
19549     pub deferred_operation_join_khr: PFN_vkDeferredOperationJoinKHR,
19550 }
19551 unsafe impl Send for KhrDeferredHostOperationsFn {}
19552 unsafe impl Sync for KhrDeferredHostOperationsFn {}
19553 impl KhrDeferredHostOperationsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19554     pub fn load<F>(mut _f: F) -> Self
19555     where
19556         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19557     {
19558         KhrDeferredHostOperationsFn {
19559             create_deferred_operation_khr: unsafe {
19560                 unsafe extern "system" fn create_deferred_operation_khr(
19561                     _device: Device,
19562                     _p_allocator: *const AllocationCallbacks,
19563                     _p_deferred_operation: *mut DeferredOperationKHR,
19564                 ) -> Result {
19565                     panic!(concat!(
19566                         "Unable to load ",
19567                         stringify!(create_deferred_operation_khr)
19568                     ))
19569                 }
19570                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19571                     b"vkCreateDeferredOperationKHR\0",
19572                 );
19573                 let val = _f(cname);
19574                 if val.is_null() {
19575                     create_deferred_operation_khr
19576                 } else {
19577                     ::std::mem::transmute(val)
19578                 }
19579             },
19580             destroy_deferred_operation_khr: unsafe {
19581                 unsafe extern "system" fn destroy_deferred_operation_khr(
19582                     _device: Device,
19583                     _operation: DeferredOperationKHR,
19584                     _p_allocator: *const AllocationCallbacks,
19585                 ) {
19586                     panic!(concat!(
19587                         "Unable to load ",
19588                         stringify!(destroy_deferred_operation_khr)
19589                     ))
19590                 }
19591                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19592                     b"vkDestroyDeferredOperationKHR\0",
19593                 );
19594                 let val = _f(cname);
19595                 if val.is_null() {
19596                     destroy_deferred_operation_khr
19597                 } else {
19598                     ::std::mem::transmute(val)
19599                 }
19600             },
19601             get_deferred_operation_max_concurrency_khr: unsafe {
19602                 unsafe extern "system" fn get_deferred_operation_max_concurrency_khr(
19603                     _device: Device,
19604                     _operation: DeferredOperationKHR,
19605                 ) -> u32 {
19606                     panic!(concat!(
19607                         "Unable to load ",
19608                         stringify!(get_deferred_operation_max_concurrency_khr)
19609                     ))
19610                 }
19611                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19612                     b"vkGetDeferredOperationMaxConcurrencyKHR\0",
19613                 );
19614                 let val = _f(cname);
19615                 if val.is_null() {
19616                     get_deferred_operation_max_concurrency_khr
19617                 } else {
19618                     ::std::mem::transmute(val)
19619                 }
19620             },
19621             get_deferred_operation_result_khr: unsafe {
19622                 unsafe extern "system" fn get_deferred_operation_result_khr(
19623                     _device: Device,
19624                     _operation: DeferredOperationKHR,
19625                 ) -> Result {
19626                     panic!(concat!(
19627                         "Unable to load ",
19628                         stringify!(get_deferred_operation_result_khr)
19629                     ))
19630                 }
19631                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19632                     b"vkGetDeferredOperationResultKHR\0",
19633                 );
19634                 let val = _f(cname);
19635                 if val.is_null() {
19636                     get_deferred_operation_result_khr
19637                 } else {
19638                     ::std::mem::transmute(val)
19639                 }
19640             },
19641             deferred_operation_join_khr: unsafe {
19642                 unsafe extern "system" fn deferred_operation_join_khr(
19643                     _device: Device,
19644                     _operation: DeferredOperationKHR,
19645                 ) -> Result {
19646                     panic!(concat!(
19647                         "Unable to load ",
19648                         stringify!(deferred_operation_join_khr)
19649                     ))
19650                 }
19651                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19652                     b"vkDeferredOperationJoinKHR\0",
19653                 );
19654                 let val = _f(cname);
19655                 if val.is_null() {
19656                     deferred_operation_join_khr
19657                 } else {
19658                     ::std::mem::transmute(val)
19659                 }
19660             },
19661         }
19662     }
19663     #[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, ) -> Result19664     pub unsafe fn create_deferred_operation_khr(
19665         &self,
19666         device: Device,
19667         p_allocator: *const AllocationCallbacks,
19668         p_deferred_operation: *mut DeferredOperationKHR,
19669     ) -> Result {
19670         (self.create_deferred_operation_khr)(device, p_allocator, p_deferred_operation)
19671     }
19672     #[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, )19673     pub unsafe fn destroy_deferred_operation_khr(
19674         &self,
19675         device: Device,
19676         operation: DeferredOperationKHR,
19677         p_allocator: *const AllocationCallbacks,
19678     ) {
19679         (self.destroy_deferred_operation_khr)(device, operation, p_allocator)
19680     }
19681     #[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, ) -> u3219682     pub unsafe fn get_deferred_operation_max_concurrency_khr(
19683         &self,
19684         device: Device,
19685         operation: DeferredOperationKHR,
19686     ) -> u32 {
19687         (self.get_deferred_operation_max_concurrency_khr)(device, operation)
19688     }
19689     #[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, ) -> Result19690     pub unsafe fn get_deferred_operation_result_khr(
19691         &self,
19692         device: Device,
19693         operation: DeferredOperationKHR,
19694     ) -> Result {
19695         (self.get_deferred_operation_result_khr)(device, operation)
19696     }
19697     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDeferredOperationJoinKHR.html>"]
deferred_operation_join_khr( &self, device: Device, operation: DeferredOperationKHR, ) -> Result19698     pub unsafe fn deferred_operation_join_khr(
19699         &self,
19700         device: Device,
19701         operation: DeferredOperationKHR,
19702     ) -> Result {
19703         (self.deferred_operation_join_khr)(device, operation)
19704     }
19705 }
19706 #[doc = "Generated from 'VK_KHR_deferred_host_operations'"]
19707 impl ObjectType {
19708     pub const DEFERRED_OPERATION_KHR: Self = Self(1_000_268_000);
19709 }
19710 #[doc = "Generated from 'VK_KHR_deferred_host_operations'"]
19711 impl Result {
19712     pub const THREAD_IDLE_KHR: Self = Self(1_000_268_000);
19713 }
19714 #[doc = "Generated from 'VK_KHR_deferred_host_operations'"]
19715 impl Result {
19716     pub const THREAD_DONE_KHR: Self = Self(1_000_268_001);
19717 }
19718 #[doc = "Generated from 'VK_KHR_deferred_host_operations'"]
19719 impl Result {
19720     pub const OPERATION_DEFERRED_KHR: Self = Self(1_000_268_002);
19721 }
19722 #[doc = "Generated from 'VK_KHR_deferred_host_operations'"]
19723 impl Result {
19724     pub const OPERATION_NOT_DEFERRED_KHR: Self = Self(1_000_268_003);
19725 }
19726 impl KhrPipelineExecutablePropertiesFn {
name() -> &'static ::std::ffi::CStr19727     pub fn name() -> &'static ::std::ffi::CStr {
19728         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_pipeline_executable_properties\0")
19729             .expect("Wrong extension string")
19730     }
19731     pub const SPEC_VERSION: u32 = 1u32;
19732 }
19733 #[allow(non_camel_case_types)]
19734 pub type PFN_vkGetPipelineExecutablePropertiesKHR = unsafe extern "system" fn(
19735     device: Device,
19736     p_pipeline_info: *const PipelineInfoKHR,
19737     p_executable_count: *mut u32,
19738     p_properties: *mut PipelineExecutablePropertiesKHR,
19739 ) -> Result;
19740 #[allow(non_camel_case_types)]
19741 pub type PFN_vkGetPipelineExecutableStatisticsKHR = unsafe extern "system" fn(
19742     device: Device,
19743     p_executable_info: *const PipelineExecutableInfoKHR,
19744     p_statistic_count: *mut u32,
19745     p_statistics: *mut PipelineExecutableStatisticKHR,
19746 ) -> Result;
19747 #[allow(non_camel_case_types)]
19748 pub type PFN_vkGetPipelineExecutableInternalRepresentationsKHR =
19749     unsafe extern "system" fn(
19750         device: Device,
19751         p_executable_info: *const PipelineExecutableInfoKHR,
19752         p_internal_representation_count: *mut u32,
19753         p_internal_representations: *mut PipelineExecutableInternalRepresentationKHR,
19754     ) -> Result;
19755 #[derive(Clone)]
19756 pub struct KhrPipelineExecutablePropertiesFn {
19757     pub get_pipeline_executable_properties_khr: PFN_vkGetPipelineExecutablePropertiesKHR,
19758     pub get_pipeline_executable_statistics_khr: PFN_vkGetPipelineExecutableStatisticsKHR,
19759     pub get_pipeline_executable_internal_representations_khr:
19760         PFN_vkGetPipelineExecutableInternalRepresentationsKHR,
19761 }
19762 unsafe impl Send for KhrPipelineExecutablePropertiesFn {}
19763 unsafe impl Sync for KhrPipelineExecutablePropertiesFn {}
19764 impl KhrPipelineExecutablePropertiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19765     pub fn load<F>(mut _f: F) -> Self
19766     where
19767         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19768     {
19769         KhrPipelineExecutablePropertiesFn {
19770             get_pipeline_executable_properties_khr: unsafe {
19771                 unsafe extern "system" fn get_pipeline_executable_properties_khr(
19772                     _device: Device,
19773                     _p_pipeline_info: *const PipelineInfoKHR,
19774                     _p_executable_count: *mut u32,
19775                     _p_properties: *mut PipelineExecutablePropertiesKHR,
19776                 ) -> Result {
19777                     panic!(concat!(
19778                         "Unable to load ",
19779                         stringify!(get_pipeline_executable_properties_khr)
19780                     ))
19781                 }
19782                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19783                     b"vkGetPipelineExecutablePropertiesKHR\0",
19784                 );
19785                 let val = _f(cname);
19786                 if val.is_null() {
19787                     get_pipeline_executable_properties_khr
19788                 } else {
19789                     ::std::mem::transmute(val)
19790                 }
19791             },
19792             get_pipeline_executable_statistics_khr: unsafe {
19793                 unsafe extern "system" fn get_pipeline_executable_statistics_khr(
19794                     _device: Device,
19795                     _p_executable_info: *const PipelineExecutableInfoKHR,
19796                     _p_statistic_count: *mut u32,
19797                     _p_statistics: *mut PipelineExecutableStatisticKHR,
19798                 ) -> Result {
19799                     panic!(concat!(
19800                         "Unable to load ",
19801                         stringify!(get_pipeline_executable_statistics_khr)
19802                     ))
19803                 }
19804                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19805                     b"vkGetPipelineExecutableStatisticsKHR\0",
19806                 );
19807                 let val = _f(cname);
19808                 if val.is_null() {
19809                     get_pipeline_executable_statistics_khr
19810                 } else {
19811                     ::std::mem::transmute(val)
19812                 }
19813             },
19814             get_pipeline_executable_internal_representations_khr: unsafe {
19815                 unsafe extern "system" fn get_pipeline_executable_internal_representations_khr(
19816                     _device: Device,
19817                     _p_executable_info: *const PipelineExecutableInfoKHR,
19818                     _p_internal_representation_count: *mut u32,
19819                     _p_internal_representations: *mut PipelineExecutableInternalRepresentationKHR,
19820                 ) -> Result {
19821                     panic!(concat!(
19822                         "Unable to load ",
19823                         stringify!(get_pipeline_executable_internal_representations_khr)
19824                     ))
19825                 }
19826                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19827                     b"vkGetPipelineExecutableInternalRepresentationsKHR\0",
19828                 );
19829                 let val = _f(cname);
19830                 if val.is_null() {
19831                     get_pipeline_executable_internal_representations_khr
19832                 } else {
19833                     ::std::mem::transmute(val)
19834                 }
19835             },
19836         }
19837     }
19838     #[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, ) -> Result19839     pub unsafe fn get_pipeline_executable_properties_khr(
19840         &self,
19841         device: Device,
19842         p_pipeline_info: *const PipelineInfoKHR,
19843         p_executable_count: *mut u32,
19844         p_properties: *mut PipelineExecutablePropertiesKHR,
19845     ) -> Result {
19846         (self.get_pipeline_executable_properties_khr)(
19847             device,
19848             p_pipeline_info,
19849             p_executable_count,
19850             p_properties,
19851         )
19852     }
19853     #[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, ) -> Result19854     pub unsafe fn get_pipeline_executable_statistics_khr(
19855         &self,
19856         device: Device,
19857         p_executable_info: *const PipelineExecutableInfoKHR,
19858         p_statistic_count: *mut u32,
19859         p_statistics: *mut PipelineExecutableStatisticKHR,
19860     ) -> Result {
19861         (self.get_pipeline_executable_statistics_khr)(
19862             device,
19863             p_executable_info,
19864             p_statistic_count,
19865             p_statistics,
19866         )
19867     }
19868     #[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, ) -> Result19869     pub unsafe fn get_pipeline_executable_internal_representations_khr(
19870         &self,
19871         device: Device,
19872         p_executable_info: *const PipelineExecutableInfoKHR,
19873         p_internal_representation_count: *mut u32,
19874         p_internal_representations: *mut PipelineExecutableInternalRepresentationKHR,
19875     ) -> Result {
19876         (self.get_pipeline_executable_internal_representations_khr)(
19877             device,
19878             p_executable_info,
19879             p_internal_representation_count,
19880             p_internal_representations,
19881         )
19882     }
19883 }
19884 #[doc = "Generated from 'VK_KHR_pipeline_executable_properties'"]
19885 impl StructureType {
19886     pub const PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: Self =
19887         Self(1_000_269_000);
19888 }
19889 #[doc = "Generated from 'VK_KHR_pipeline_executable_properties'"]
19890 impl StructureType {
19891     pub const PIPELINE_INFO_KHR: Self = Self(1_000_269_001);
19892 }
19893 #[doc = "Generated from 'VK_KHR_pipeline_executable_properties'"]
19894 impl StructureType {
19895     pub const PIPELINE_EXECUTABLE_PROPERTIES_KHR: Self = Self(1_000_269_002);
19896 }
19897 #[doc = "Generated from 'VK_KHR_pipeline_executable_properties'"]
19898 impl StructureType {
19899     pub const PIPELINE_EXECUTABLE_INFO_KHR: Self = Self(1_000_269_003);
19900 }
19901 #[doc = "Generated from 'VK_KHR_pipeline_executable_properties'"]
19902 impl StructureType {
19903     pub const PIPELINE_EXECUTABLE_STATISTIC_KHR: Self = Self(1_000_269_004);
19904 }
19905 #[doc = "Generated from 'VK_KHR_pipeline_executable_properties'"]
19906 impl StructureType {
19907     pub const PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR: Self = Self(1_000_269_005);
19908 }
19909 #[doc = "Generated from 'VK_KHR_pipeline_executable_properties'"]
19910 impl PipelineCreateFlags {
19911     pub const CAPTURE_STATISTICS_KHR: Self = Self(0b100_0000);
19912 }
19913 #[doc = "Generated from 'VK_KHR_pipeline_executable_properties'"]
19914 impl PipelineCreateFlags {
19915     pub const CAPTURE_INTERNAL_REPRESENTATIONS_KHR: Self = Self(0b1000_0000);
19916 }
19917 impl IntelExtension271Fn {
name() -> &'static ::std::ffi::CStr19918     pub fn name() -> &'static ::std::ffi::CStr {
19919         ::std::ffi::CStr::from_bytes_with_nul(b"VK_INTEL_extension_271\0")
19920             .expect("Wrong extension string")
19921     }
19922     pub const SPEC_VERSION: u32 = 0u32;
19923 }
19924 #[derive(Clone)]
19925 pub struct IntelExtension271Fn {}
19926 unsafe impl Send for IntelExtension271Fn {}
19927 unsafe impl Sync for IntelExtension271Fn {}
19928 impl IntelExtension271Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19929     pub fn load<F>(mut _f: F) -> Self
19930     where
19931         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19932     {
19933         IntelExtension271Fn {}
19934     }
19935 }
19936 impl IntelExtension272Fn {
name() -> &'static ::std::ffi::CStr19937     pub fn name() -> &'static ::std::ffi::CStr {
19938         ::std::ffi::CStr::from_bytes_with_nul(b"VK_INTEL_extension_272\0")
19939             .expect("Wrong extension string")
19940     }
19941     pub const SPEC_VERSION: u32 = 0u32;
19942 }
19943 #[derive(Clone)]
19944 pub struct IntelExtension272Fn {}
19945 unsafe impl Send for IntelExtension272Fn {}
19946 unsafe impl Sync for IntelExtension272Fn {}
19947 impl IntelExtension272Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19948     pub fn load<F>(mut _f: F) -> Self
19949     where
19950         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19951     {
19952         IntelExtension272Fn {}
19953     }
19954 }
19955 impl IntelExtension273Fn {
name() -> &'static ::std::ffi::CStr19956     pub fn name() -> &'static ::std::ffi::CStr {
19957         ::std::ffi::CStr::from_bytes_with_nul(b"VK_INTEL_extension_273\0")
19958             .expect("Wrong extension string")
19959     }
19960     pub const SPEC_VERSION: u32 = 0u32;
19961 }
19962 #[derive(Clone)]
19963 pub struct IntelExtension273Fn {}
19964 unsafe impl Send for IntelExtension273Fn {}
19965 unsafe impl Sync for IntelExtension273Fn {}
19966 impl IntelExtension273Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19967     pub fn load<F>(mut _f: F) -> Self
19968     where
19969         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19970     {
19971         IntelExtension273Fn {}
19972     }
19973 }
19974 impl ExtShaderAtomicFloat2Fn {
name() -> &'static ::std::ffi::CStr19975     pub fn name() -> &'static ::std::ffi::CStr {
19976         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_shader_atomic_float2\0")
19977             .expect("Wrong extension string")
19978     }
19979     pub const SPEC_VERSION: u32 = 1u32;
19980 }
19981 #[derive(Clone)]
19982 pub struct ExtShaderAtomicFloat2Fn {}
19983 unsafe impl Send for ExtShaderAtomicFloat2Fn {}
19984 unsafe impl Sync for ExtShaderAtomicFloat2Fn {}
19985 impl ExtShaderAtomicFloat2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19986     pub fn load<F>(mut _f: F) -> Self
19987     where
19988         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19989     {
19990         ExtShaderAtomicFloat2Fn {}
19991     }
19992 }
19993 #[doc = "Generated from 'VK_EXT_shader_atomic_float2'"]
19994 impl StructureType {
19995     pub const PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT: Self = Self(1_000_273_000);
19996 }
19997 impl KhrExtension275Fn {
name() -> &'static ::std::ffi::CStr19998     pub fn name() -> &'static ::std::ffi::CStr {
19999         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_275\0")
20000             .expect("Wrong extension string")
20001     }
20002     pub const SPEC_VERSION: u32 = 0u32;
20003 }
20004 #[derive(Clone)]
20005 pub struct KhrExtension275Fn {}
20006 unsafe impl Send for KhrExtension275Fn {}
20007 unsafe impl Sync for KhrExtension275Fn {}
20008 impl KhrExtension275Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20009     pub fn load<F>(mut _f: F) -> Self
20010     where
20011         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20012     {
20013         KhrExtension275Fn {}
20014     }
20015 }
20016 impl KhrExtension276Fn {
name() -> &'static ::std::ffi::CStr20017     pub fn name() -> &'static ::std::ffi::CStr {
20018         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_276\0")
20019             .expect("Wrong extension string")
20020     }
20021     pub const SPEC_VERSION: u32 = 0u32;
20022 }
20023 #[derive(Clone)]
20024 pub struct KhrExtension276Fn {}
20025 unsafe impl Send for KhrExtension276Fn {}
20026 unsafe impl Sync for KhrExtension276Fn {}
20027 impl KhrExtension276Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20028     pub fn load<F>(mut _f: F) -> Self
20029     where
20030         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20031     {
20032         KhrExtension276Fn {}
20033     }
20034 }
20035 impl ExtShaderDemoteToHelperInvocationFn {
name() -> &'static ::std::ffi::CStr20036     pub fn name() -> &'static ::std::ffi::CStr {
20037         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_shader_demote_to_helper_invocation\0")
20038             .expect("Wrong extension string")
20039     }
20040     pub const SPEC_VERSION: u32 = 1u32;
20041 }
20042 #[derive(Clone)]
20043 pub struct ExtShaderDemoteToHelperInvocationFn {}
20044 unsafe impl Send for ExtShaderDemoteToHelperInvocationFn {}
20045 unsafe impl Sync for ExtShaderDemoteToHelperInvocationFn {}
20046 impl ExtShaderDemoteToHelperInvocationFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20047     pub fn load<F>(mut _f: F) -> Self
20048     where
20049         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20050     {
20051         ExtShaderDemoteToHelperInvocationFn {}
20052     }
20053 }
20054 #[doc = "Generated from 'VK_EXT_shader_demote_to_helper_invocation'"]
20055 impl StructureType {
20056     pub const PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT: Self =
20057         Self(1_000_276_000);
20058 }
20059 impl NvDeviceGeneratedCommandsFn {
name() -> &'static ::std::ffi::CStr20060     pub fn name() -> &'static ::std::ffi::CStr {
20061         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_device_generated_commands\0")
20062             .expect("Wrong extension string")
20063     }
20064     pub const SPEC_VERSION: u32 = 3u32;
20065 }
20066 #[allow(non_camel_case_types)]
20067 pub type PFN_vkGetGeneratedCommandsMemoryRequirementsNV = unsafe extern "system" fn(
20068     device: Device,
20069     p_info: *const GeneratedCommandsMemoryRequirementsInfoNV,
20070     p_memory_requirements: *mut MemoryRequirements2,
20071 );
20072 #[allow(non_camel_case_types)]
20073 pub type PFN_vkCmdPreprocessGeneratedCommandsNV = unsafe extern "system" fn(
20074     command_buffer: CommandBuffer,
20075     p_generated_commands_info: *const GeneratedCommandsInfoNV,
20076 );
20077 #[allow(non_camel_case_types)]
20078 pub type PFN_vkCmdExecuteGeneratedCommandsNV = unsafe extern "system" fn(
20079     command_buffer: CommandBuffer,
20080     is_preprocessed: Bool32,
20081     p_generated_commands_info: *const GeneratedCommandsInfoNV,
20082 );
20083 #[allow(non_camel_case_types)]
20084 pub type PFN_vkCmdBindPipelineShaderGroupNV = unsafe extern "system" fn(
20085     command_buffer: CommandBuffer,
20086     pipeline_bind_point: PipelineBindPoint,
20087     pipeline: Pipeline,
20088     group_index: u32,
20089 );
20090 #[allow(non_camel_case_types)]
20091 pub type PFN_vkCreateIndirectCommandsLayoutNV = unsafe extern "system" fn(
20092     device: Device,
20093     p_create_info: *const IndirectCommandsLayoutCreateInfoNV,
20094     p_allocator: *const AllocationCallbacks,
20095     p_indirect_commands_layout: *mut IndirectCommandsLayoutNV,
20096 ) -> Result;
20097 #[allow(non_camel_case_types)]
20098 pub type PFN_vkDestroyIndirectCommandsLayoutNV = unsafe extern "system" fn(
20099     device: Device,
20100     indirect_commands_layout: IndirectCommandsLayoutNV,
20101     p_allocator: *const AllocationCallbacks,
20102 );
20103 #[derive(Clone)]
20104 pub struct NvDeviceGeneratedCommandsFn {
20105     pub get_generated_commands_memory_requirements_nv:
20106         PFN_vkGetGeneratedCommandsMemoryRequirementsNV,
20107     pub cmd_preprocess_generated_commands_nv: PFN_vkCmdPreprocessGeneratedCommandsNV,
20108     pub cmd_execute_generated_commands_nv: PFN_vkCmdExecuteGeneratedCommandsNV,
20109     pub cmd_bind_pipeline_shader_group_nv: PFN_vkCmdBindPipelineShaderGroupNV,
20110     pub create_indirect_commands_layout_nv: PFN_vkCreateIndirectCommandsLayoutNV,
20111     pub destroy_indirect_commands_layout_nv: PFN_vkDestroyIndirectCommandsLayoutNV,
20112 }
20113 unsafe impl Send for NvDeviceGeneratedCommandsFn {}
20114 unsafe impl Sync for NvDeviceGeneratedCommandsFn {}
20115 impl NvDeviceGeneratedCommandsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20116     pub fn load<F>(mut _f: F) -> Self
20117     where
20118         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20119     {
20120         NvDeviceGeneratedCommandsFn {
20121             get_generated_commands_memory_requirements_nv: unsafe {
20122                 unsafe extern "system" fn get_generated_commands_memory_requirements_nv(
20123                     _device: Device,
20124                     _p_info: *const GeneratedCommandsMemoryRequirementsInfoNV,
20125                     _p_memory_requirements: *mut MemoryRequirements2,
20126                 ) {
20127                     panic!(concat!(
20128                         "Unable to load ",
20129                         stringify!(get_generated_commands_memory_requirements_nv)
20130                     ))
20131                 }
20132                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20133                     b"vkGetGeneratedCommandsMemoryRequirementsNV\0",
20134                 );
20135                 let val = _f(cname);
20136                 if val.is_null() {
20137                     get_generated_commands_memory_requirements_nv
20138                 } else {
20139                     ::std::mem::transmute(val)
20140                 }
20141             },
20142             cmd_preprocess_generated_commands_nv: unsafe {
20143                 unsafe extern "system" fn cmd_preprocess_generated_commands_nv(
20144                     _command_buffer: CommandBuffer,
20145                     _p_generated_commands_info: *const GeneratedCommandsInfoNV,
20146                 ) {
20147                     panic!(concat!(
20148                         "Unable to load ",
20149                         stringify!(cmd_preprocess_generated_commands_nv)
20150                     ))
20151                 }
20152                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20153                     b"vkCmdPreprocessGeneratedCommandsNV\0",
20154                 );
20155                 let val = _f(cname);
20156                 if val.is_null() {
20157                     cmd_preprocess_generated_commands_nv
20158                 } else {
20159                     ::std::mem::transmute(val)
20160                 }
20161             },
20162             cmd_execute_generated_commands_nv: unsafe {
20163                 unsafe extern "system" fn cmd_execute_generated_commands_nv(
20164                     _command_buffer: CommandBuffer,
20165                     _is_preprocessed: Bool32,
20166                     _p_generated_commands_info: *const GeneratedCommandsInfoNV,
20167                 ) {
20168                     panic!(concat!(
20169                         "Unable to load ",
20170                         stringify!(cmd_execute_generated_commands_nv)
20171                     ))
20172                 }
20173                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20174                     b"vkCmdExecuteGeneratedCommandsNV\0",
20175                 );
20176                 let val = _f(cname);
20177                 if val.is_null() {
20178                     cmd_execute_generated_commands_nv
20179                 } else {
20180                     ::std::mem::transmute(val)
20181                 }
20182             },
20183             cmd_bind_pipeline_shader_group_nv: unsafe {
20184                 unsafe extern "system" fn cmd_bind_pipeline_shader_group_nv(
20185                     _command_buffer: CommandBuffer,
20186                     _pipeline_bind_point: PipelineBindPoint,
20187                     _pipeline: Pipeline,
20188                     _group_index: u32,
20189                 ) {
20190                     panic!(concat!(
20191                         "Unable to load ",
20192                         stringify!(cmd_bind_pipeline_shader_group_nv)
20193                     ))
20194                 }
20195                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20196                     b"vkCmdBindPipelineShaderGroupNV\0",
20197                 );
20198                 let val = _f(cname);
20199                 if val.is_null() {
20200                     cmd_bind_pipeline_shader_group_nv
20201                 } else {
20202                     ::std::mem::transmute(val)
20203                 }
20204             },
20205             create_indirect_commands_layout_nv: unsafe {
20206                 unsafe extern "system" fn create_indirect_commands_layout_nv(
20207                     _device: Device,
20208                     _p_create_info: *const IndirectCommandsLayoutCreateInfoNV,
20209                     _p_allocator: *const AllocationCallbacks,
20210                     _p_indirect_commands_layout: *mut IndirectCommandsLayoutNV,
20211                 ) -> Result {
20212                     panic!(concat!(
20213                         "Unable to load ",
20214                         stringify!(create_indirect_commands_layout_nv)
20215                     ))
20216                 }
20217                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20218                     b"vkCreateIndirectCommandsLayoutNV\0",
20219                 );
20220                 let val = _f(cname);
20221                 if val.is_null() {
20222                     create_indirect_commands_layout_nv
20223                 } else {
20224                     ::std::mem::transmute(val)
20225                 }
20226             },
20227             destroy_indirect_commands_layout_nv: unsafe {
20228                 unsafe extern "system" fn destroy_indirect_commands_layout_nv(
20229                     _device: Device,
20230                     _indirect_commands_layout: IndirectCommandsLayoutNV,
20231                     _p_allocator: *const AllocationCallbacks,
20232                 ) {
20233                     panic!(concat!(
20234                         "Unable to load ",
20235                         stringify!(destroy_indirect_commands_layout_nv)
20236                     ))
20237                 }
20238                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20239                     b"vkDestroyIndirectCommandsLayoutNV\0",
20240                 );
20241                 let val = _f(cname);
20242                 if val.is_null() {
20243                     destroy_indirect_commands_layout_nv
20244                 } else {
20245                     ::std::mem::transmute(val)
20246                 }
20247             },
20248         }
20249     }
20250     #[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, )20251     pub unsafe fn get_generated_commands_memory_requirements_nv(
20252         &self,
20253         device: Device,
20254         p_info: *const GeneratedCommandsMemoryRequirementsInfoNV,
20255         p_memory_requirements: *mut MemoryRequirements2,
20256     ) {
20257         (self.get_generated_commands_memory_requirements_nv)(device, p_info, p_memory_requirements)
20258     }
20259     #[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, )20260     pub unsafe fn cmd_preprocess_generated_commands_nv(
20261         &self,
20262         command_buffer: CommandBuffer,
20263         p_generated_commands_info: *const GeneratedCommandsInfoNV,
20264     ) {
20265         (self.cmd_preprocess_generated_commands_nv)(command_buffer, p_generated_commands_info)
20266     }
20267     #[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, )20268     pub unsafe fn cmd_execute_generated_commands_nv(
20269         &self,
20270         command_buffer: CommandBuffer,
20271         is_preprocessed: Bool32,
20272         p_generated_commands_info: *const GeneratedCommandsInfoNV,
20273     ) {
20274         (self.cmd_execute_generated_commands_nv)(
20275             command_buffer,
20276             is_preprocessed,
20277             p_generated_commands_info,
20278         )
20279     }
20280     #[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, )20281     pub unsafe fn cmd_bind_pipeline_shader_group_nv(
20282         &self,
20283         command_buffer: CommandBuffer,
20284         pipeline_bind_point: PipelineBindPoint,
20285         pipeline: Pipeline,
20286         group_index: u32,
20287     ) {
20288         (self.cmd_bind_pipeline_shader_group_nv)(
20289             command_buffer,
20290             pipeline_bind_point,
20291             pipeline,
20292             group_index,
20293         )
20294     }
20295     #[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, ) -> Result20296     pub unsafe fn create_indirect_commands_layout_nv(
20297         &self,
20298         device: Device,
20299         p_create_info: *const IndirectCommandsLayoutCreateInfoNV,
20300         p_allocator: *const AllocationCallbacks,
20301         p_indirect_commands_layout: *mut IndirectCommandsLayoutNV,
20302     ) -> Result {
20303         (self.create_indirect_commands_layout_nv)(
20304             device,
20305             p_create_info,
20306             p_allocator,
20307             p_indirect_commands_layout,
20308         )
20309     }
20310     #[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, )20311     pub unsafe fn destroy_indirect_commands_layout_nv(
20312         &self,
20313         device: Device,
20314         indirect_commands_layout: IndirectCommandsLayoutNV,
20315         p_allocator: *const AllocationCallbacks,
20316     ) {
20317         (self.destroy_indirect_commands_layout_nv)(device, indirect_commands_layout, p_allocator)
20318     }
20319 }
20320 #[doc = "Generated from 'VK_NV_device_generated_commands'"]
20321 impl StructureType {
20322     pub const PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV: Self = Self(1_000_277_000);
20323 }
20324 #[doc = "Generated from 'VK_NV_device_generated_commands'"]
20325 impl StructureType {
20326     pub const GRAPHICS_SHADER_GROUP_CREATE_INFO_NV: Self = Self(1_000_277_001);
20327 }
20328 #[doc = "Generated from 'VK_NV_device_generated_commands'"]
20329 impl StructureType {
20330     pub const GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV: Self = Self(1_000_277_002);
20331 }
20332 #[doc = "Generated from 'VK_NV_device_generated_commands'"]
20333 impl StructureType {
20334     pub const INDIRECT_COMMANDS_LAYOUT_TOKEN_NV: Self = Self(1_000_277_003);
20335 }
20336 #[doc = "Generated from 'VK_NV_device_generated_commands'"]
20337 impl StructureType {
20338     pub const INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV: Self = Self(1_000_277_004);
20339 }
20340 #[doc = "Generated from 'VK_NV_device_generated_commands'"]
20341 impl StructureType {
20342     pub const GENERATED_COMMANDS_INFO_NV: Self = Self(1_000_277_005);
20343 }
20344 #[doc = "Generated from 'VK_NV_device_generated_commands'"]
20345 impl StructureType {
20346     pub const GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV: Self = Self(1_000_277_006);
20347 }
20348 #[doc = "Generated from 'VK_NV_device_generated_commands'"]
20349 impl StructureType {
20350     pub const PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV: Self = Self(1_000_277_007);
20351 }
20352 #[doc = "Generated from 'VK_NV_device_generated_commands'"]
20353 impl PipelineCreateFlags {
20354     pub const INDIRECT_BINDABLE_NV: Self = Self(0b100_0000_0000_0000_0000);
20355 }
20356 #[doc = "Generated from 'VK_NV_device_generated_commands'"]
20357 impl PipelineStageFlags {
20358     pub const COMMAND_PREPROCESS_NV: Self = Self(0b10_0000_0000_0000_0000);
20359 }
20360 #[doc = "Generated from 'VK_NV_device_generated_commands'"]
20361 impl AccessFlags {
20362     pub const COMMAND_PREPROCESS_READ_NV: Self = Self(0b10_0000_0000_0000_0000);
20363 }
20364 #[doc = "Generated from 'VK_NV_device_generated_commands'"]
20365 impl AccessFlags {
20366     pub const COMMAND_PREPROCESS_WRITE_NV: Self = Self(0b100_0000_0000_0000_0000);
20367 }
20368 #[doc = "Generated from 'VK_NV_device_generated_commands'"]
20369 impl ObjectType {
20370     pub const INDIRECT_COMMANDS_LAYOUT_NV: Self = Self(1_000_277_000);
20371 }
20372 impl NvInheritedViewportScissorFn {
name() -> &'static ::std::ffi::CStr20373     pub fn name() -> &'static ::std::ffi::CStr {
20374         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_inherited_viewport_scissor\0")
20375             .expect("Wrong extension string")
20376     }
20377     pub const SPEC_VERSION: u32 = 1u32;
20378 }
20379 #[derive(Clone)]
20380 pub struct NvInheritedViewportScissorFn {}
20381 unsafe impl Send for NvInheritedViewportScissorFn {}
20382 unsafe impl Sync for NvInheritedViewportScissorFn {}
20383 impl NvInheritedViewportScissorFn {
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         NvInheritedViewportScissorFn {}
20389     }
20390 }
20391 #[doc = "Generated from 'VK_NV_inherited_viewport_scissor'"]
20392 impl StructureType {
20393     pub const PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV: Self = Self(1_000_278_000);
20394 }
20395 #[doc = "Generated from 'VK_NV_inherited_viewport_scissor'"]
20396 impl StructureType {
20397     pub const COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV: Self = Self(1_000_278_001);
20398 }
20399 impl KhrExtension280Fn {
name() -> &'static ::std::ffi::CStr20400     pub fn name() -> &'static ::std::ffi::CStr {
20401         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_280\0")
20402             .expect("Wrong extension string")
20403     }
20404     pub const SPEC_VERSION: u32 = 0u32;
20405 }
20406 #[derive(Clone)]
20407 pub struct KhrExtension280Fn {}
20408 unsafe impl Send for KhrExtension280Fn {}
20409 unsafe impl Sync for KhrExtension280Fn {}
20410 impl KhrExtension280Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20411     pub fn load<F>(mut _f: F) -> Self
20412     where
20413         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20414     {
20415         KhrExtension280Fn {}
20416     }
20417 }
20418 impl KhrShaderIntegerDotProductFn {
name() -> &'static ::std::ffi::CStr20419     pub fn name() -> &'static ::std::ffi::CStr {
20420         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_shader_integer_dot_product\0")
20421             .expect("Wrong extension string")
20422     }
20423     pub const SPEC_VERSION: u32 = 1u32;
20424 }
20425 #[derive(Clone)]
20426 pub struct KhrShaderIntegerDotProductFn {}
20427 unsafe impl Send for KhrShaderIntegerDotProductFn {}
20428 unsafe impl Sync for KhrShaderIntegerDotProductFn {}
20429 impl KhrShaderIntegerDotProductFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20430     pub fn load<F>(mut _f: F) -> Self
20431     where
20432         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20433     {
20434         KhrShaderIntegerDotProductFn {}
20435     }
20436 }
20437 #[doc = "Generated from 'VK_KHR_shader_integer_dot_product'"]
20438 impl StructureType {
20439     pub const PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR: Self = Self(1_000_280_000);
20440 }
20441 #[doc = "Generated from 'VK_KHR_shader_integer_dot_product'"]
20442 impl StructureType {
20443     pub const PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR: Self = Self(1_000_280_001);
20444 }
20445 impl ExtTexelBufferAlignmentFn {
name() -> &'static ::std::ffi::CStr20446     pub fn name() -> &'static ::std::ffi::CStr {
20447         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_texel_buffer_alignment\0")
20448             .expect("Wrong extension string")
20449     }
20450     pub const SPEC_VERSION: u32 = 1u32;
20451 }
20452 #[derive(Clone)]
20453 pub struct ExtTexelBufferAlignmentFn {}
20454 unsafe impl Send for ExtTexelBufferAlignmentFn {}
20455 unsafe impl Sync for ExtTexelBufferAlignmentFn {}
20456 impl ExtTexelBufferAlignmentFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20457     pub fn load<F>(mut _f: F) -> Self
20458     where
20459         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20460     {
20461         ExtTexelBufferAlignmentFn {}
20462     }
20463 }
20464 #[doc = "Generated from 'VK_EXT_texel_buffer_alignment'"]
20465 impl StructureType {
20466     pub const PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: Self = Self(1_000_281_000);
20467 }
20468 #[doc = "Generated from 'VK_EXT_texel_buffer_alignment'"]
20469 impl StructureType {
20470     pub const PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT: Self = Self(1_000_281_001);
20471 }
20472 impl QcomRenderPassTransformFn {
name() -> &'static ::std::ffi::CStr20473     pub fn name() -> &'static ::std::ffi::CStr {
20474         ::std::ffi::CStr::from_bytes_with_nul(b"VK_QCOM_render_pass_transform\0")
20475             .expect("Wrong extension string")
20476     }
20477     pub const SPEC_VERSION: u32 = 2u32;
20478 }
20479 #[derive(Clone)]
20480 pub struct QcomRenderPassTransformFn {}
20481 unsafe impl Send for QcomRenderPassTransformFn {}
20482 unsafe impl Sync for QcomRenderPassTransformFn {}
20483 impl QcomRenderPassTransformFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20484     pub fn load<F>(mut _f: F) -> Self
20485     where
20486         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20487     {
20488         QcomRenderPassTransformFn {}
20489     }
20490 }
20491 #[doc = "Generated from 'VK_QCOM_render_pass_transform'"]
20492 impl StructureType {
20493     pub const COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM: Self =
20494         Self(1_000_282_000);
20495 }
20496 #[doc = "Generated from 'VK_QCOM_render_pass_transform'"]
20497 impl StructureType {
20498     pub const RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM: Self = Self(1_000_282_001);
20499 }
20500 #[doc = "Generated from 'VK_QCOM_render_pass_transform'"]
20501 impl RenderPassCreateFlags {
20502     pub const TRANSFORM_QCOM: Self = Self(0b10);
20503 }
20504 impl ExtExtension284Fn {
name() -> &'static ::std::ffi::CStr20505     pub fn name() -> &'static ::std::ffi::CStr {
20506         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_284\0")
20507             .expect("Wrong extension string")
20508     }
20509     pub const SPEC_VERSION: u32 = 0u32;
20510 }
20511 #[derive(Clone)]
20512 pub struct ExtExtension284Fn {}
20513 unsafe impl Send for ExtExtension284Fn {}
20514 unsafe impl Sync for ExtExtension284Fn {}
20515 impl ExtExtension284Fn {
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         ExtExtension284Fn {}
20521     }
20522 }
20523 impl ExtDeviceMemoryReportFn {
name() -> &'static ::std::ffi::CStr20524     pub fn name() -> &'static ::std::ffi::CStr {
20525         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_device_memory_report\0")
20526             .expect("Wrong extension string")
20527     }
20528     pub const SPEC_VERSION: u32 = 2u32;
20529 }
20530 #[derive(Clone)]
20531 pub struct ExtDeviceMemoryReportFn {}
20532 unsafe impl Send for ExtDeviceMemoryReportFn {}
20533 unsafe impl Sync for ExtDeviceMemoryReportFn {}
20534 impl ExtDeviceMemoryReportFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20535     pub fn load<F>(mut _f: F) -> Self
20536     where
20537         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20538     {
20539         ExtDeviceMemoryReportFn {}
20540     }
20541 }
20542 #[doc = "Generated from 'VK_EXT_device_memory_report'"]
20543 impl StructureType {
20544     pub const PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: Self = Self(1_000_284_000);
20545 }
20546 #[doc = "Generated from 'VK_EXT_device_memory_report'"]
20547 impl StructureType {
20548     pub const DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: Self = Self(1_000_284_001);
20549 }
20550 #[doc = "Generated from 'VK_EXT_device_memory_report'"]
20551 impl StructureType {
20552     pub const DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT: Self = Self(1_000_284_002);
20553 }
20554 impl ExtAcquireDrmDisplayFn {
name() -> &'static ::std::ffi::CStr20555     pub fn name() -> &'static ::std::ffi::CStr {
20556         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_acquire_drm_display\0")
20557             .expect("Wrong extension string")
20558     }
20559     pub const SPEC_VERSION: u32 = 1u32;
20560 }
20561 #[allow(non_camel_case_types)]
20562 pub type PFN_vkAcquireDrmDisplayEXT = unsafe extern "system" fn(
20563     physical_device: PhysicalDevice,
20564     drm_fd: i32,
20565     display: DisplayKHR,
20566 ) -> Result;
20567 #[allow(non_camel_case_types)]
20568 pub type PFN_vkGetDrmDisplayEXT = unsafe extern "system" fn(
20569     physical_device: PhysicalDevice,
20570     drm_fd: i32,
20571     connector_id: u32,
20572     display: *mut DisplayKHR,
20573 ) -> Result;
20574 #[derive(Clone)]
20575 pub struct ExtAcquireDrmDisplayFn {
20576     pub acquire_drm_display_ext: PFN_vkAcquireDrmDisplayEXT,
20577     pub get_drm_display_ext: PFN_vkGetDrmDisplayEXT,
20578 }
20579 unsafe impl Send for ExtAcquireDrmDisplayFn {}
20580 unsafe impl Sync for ExtAcquireDrmDisplayFn {}
20581 impl ExtAcquireDrmDisplayFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20582     pub fn load<F>(mut _f: F) -> Self
20583     where
20584         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20585     {
20586         ExtAcquireDrmDisplayFn {
20587             acquire_drm_display_ext: unsafe {
20588                 unsafe extern "system" fn acquire_drm_display_ext(
20589                     _physical_device: PhysicalDevice,
20590                     _drm_fd: i32,
20591                     _display: DisplayKHR,
20592                 ) -> Result {
20593                     panic!(concat!(
20594                         "Unable to load ",
20595                         stringify!(acquire_drm_display_ext)
20596                     ))
20597                 }
20598                 let cname =
20599                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireDrmDisplayEXT\0");
20600                 let val = _f(cname);
20601                 if val.is_null() {
20602                     acquire_drm_display_ext
20603                 } else {
20604                     ::std::mem::transmute(val)
20605                 }
20606             },
20607             get_drm_display_ext: unsafe {
20608                 unsafe extern "system" fn get_drm_display_ext(
20609                     _physical_device: PhysicalDevice,
20610                     _drm_fd: i32,
20611                     _connector_id: u32,
20612                     _display: *mut DisplayKHR,
20613                 ) -> Result {
20614                     panic!(concat!("Unable to load ", stringify!(get_drm_display_ext)))
20615                 }
20616                 let cname =
20617                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetDrmDisplayEXT\0");
20618                 let val = _f(cname);
20619                 if val.is_null() {
20620                     get_drm_display_ext
20621                 } else {
20622                     ::std::mem::transmute(val)
20623                 }
20624             },
20625         }
20626     }
20627     #[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, ) -> Result20628     pub unsafe fn acquire_drm_display_ext(
20629         &self,
20630         physical_device: PhysicalDevice,
20631         drm_fd: i32,
20632         display: DisplayKHR,
20633     ) -> Result {
20634         (self.acquire_drm_display_ext)(physical_device, drm_fd, display)
20635     }
20636     #[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, ) -> Result20637     pub unsafe fn get_drm_display_ext(
20638         &self,
20639         physical_device: PhysicalDevice,
20640         drm_fd: i32,
20641         connector_id: u32,
20642         display: *mut DisplayKHR,
20643     ) -> Result {
20644         (self.get_drm_display_ext)(physical_device, drm_fd, connector_id, display)
20645     }
20646 }
20647 impl ExtRobustness2Fn {
name() -> &'static ::std::ffi::CStr20648     pub fn name() -> &'static ::std::ffi::CStr {
20649         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_robustness2\0")
20650             .expect("Wrong extension string")
20651     }
20652     pub const SPEC_VERSION: u32 = 1u32;
20653 }
20654 #[derive(Clone)]
20655 pub struct ExtRobustness2Fn {}
20656 unsafe impl Send for ExtRobustness2Fn {}
20657 unsafe impl Sync for ExtRobustness2Fn {}
20658 impl ExtRobustness2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20659     pub fn load<F>(mut _f: F) -> Self
20660     where
20661         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20662     {
20663         ExtRobustness2Fn {}
20664     }
20665 }
20666 #[doc = "Generated from 'VK_EXT_robustness2'"]
20667 impl StructureType {
20668     pub const PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: Self = Self(1_000_286_000);
20669 }
20670 #[doc = "Generated from 'VK_EXT_robustness2'"]
20671 impl StructureType {
20672     pub const PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: Self = Self(1_000_286_001);
20673 }
20674 impl ExtCustomBorderColorFn {
name() -> &'static ::std::ffi::CStr20675     pub fn name() -> &'static ::std::ffi::CStr {
20676         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_custom_border_color\0")
20677             .expect("Wrong extension string")
20678     }
20679     pub const SPEC_VERSION: u32 = 12u32;
20680 }
20681 #[derive(Clone)]
20682 pub struct ExtCustomBorderColorFn {}
20683 unsafe impl Send for ExtCustomBorderColorFn {}
20684 unsafe impl Sync for ExtCustomBorderColorFn {}
20685 impl ExtCustomBorderColorFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20686     pub fn load<F>(mut _f: F) -> Self
20687     where
20688         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20689     {
20690         ExtCustomBorderColorFn {}
20691     }
20692 }
20693 #[doc = "Generated from 'VK_EXT_custom_border_color'"]
20694 impl StructureType {
20695     pub const SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: Self = Self(1_000_287_000);
20696 }
20697 #[doc = "Generated from 'VK_EXT_custom_border_color'"]
20698 impl StructureType {
20699     pub const PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: Self = Self(1_000_287_001);
20700 }
20701 #[doc = "Generated from 'VK_EXT_custom_border_color'"]
20702 impl StructureType {
20703     pub const PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: Self = Self(1_000_287_002);
20704 }
20705 #[doc = "Generated from 'VK_EXT_custom_border_color'"]
20706 impl BorderColor {
20707     pub const FLOAT_CUSTOM_EXT: Self = Self(1_000_287_003);
20708 }
20709 #[doc = "Generated from 'VK_EXT_custom_border_color'"]
20710 impl BorderColor {
20711     pub const INT_CUSTOM_EXT: Self = Self(1_000_287_004);
20712 }
20713 impl ExtExtension289Fn {
name() -> &'static ::std::ffi::CStr20714     pub fn name() -> &'static ::std::ffi::CStr {
20715         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_289\0")
20716             .expect("Wrong extension string")
20717     }
20718     pub const SPEC_VERSION: u32 = 0u32;
20719 }
20720 #[derive(Clone)]
20721 pub struct ExtExtension289Fn {}
20722 unsafe impl Send for ExtExtension289Fn {}
20723 unsafe impl Sync for ExtExtension289Fn {}
20724 impl ExtExtension289Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20725     pub fn load<F>(mut _f: F) -> Self
20726     where
20727         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20728     {
20729         ExtExtension289Fn {}
20730     }
20731 }
20732 #[doc = "Generated from 'VK_EXT_extension_289'"]
20733 impl Format {
20734     pub const ASTC_3X3X3_UNORM_BLOCK_EXT: Self = Self(1_000_288_000);
20735 }
20736 #[doc = "Generated from 'VK_EXT_extension_289'"]
20737 impl Format {
20738     pub const ASTC_3X3X3_SRGB_BLOCK_EXT: Self = Self(1_000_288_001);
20739 }
20740 #[doc = "Generated from 'VK_EXT_extension_289'"]
20741 impl Format {
20742     pub const ASTC_3X3X3_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_002);
20743 }
20744 #[doc = "Generated from 'VK_EXT_extension_289'"]
20745 impl Format {
20746     pub const ASTC_4X3X3_UNORM_BLOCK_EXT: Self = Self(1_000_288_003);
20747 }
20748 #[doc = "Generated from 'VK_EXT_extension_289'"]
20749 impl Format {
20750     pub const ASTC_4X3X3_SRGB_BLOCK_EXT: Self = Self(1_000_288_004);
20751 }
20752 #[doc = "Generated from 'VK_EXT_extension_289'"]
20753 impl Format {
20754     pub const ASTC_4X3X3_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_005);
20755 }
20756 #[doc = "Generated from 'VK_EXT_extension_289'"]
20757 impl Format {
20758     pub const ASTC_4X4X3_UNORM_BLOCK_EXT: Self = Self(1_000_288_006);
20759 }
20760 #[doc = "Generated from 'VK_EXT_extension_289'"]
20761 impl Format {
20762     pub const ASTC_4X4X3_SRGB_BLOCK_EXT: Self = Self(1_000_288_007);
20763 }
20764 #[doc = "Generated from 'VK_EXT_extension_289'"]
20765 impl Format {
20766     pub const ASTC_4X4X3_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_008);
20767 }
20768 #[doc = "Generated from 'VK_EXT_extension_289'"]
20769 impl Format {
20770     pub const ASTC_4X4X4_UNORM_BLOCK_EXT: Self = Self(1_000_288_009);
20771 }
20772 #[doc = "Generated from 'VK_EXT_extension_289'"]
20773 impl Format {
20774     pub const ASTC_4X4X4_SRGB_BLOCK_EXT: Self = Self(1_000_288_010);
20775 }
20776 #[doc = "Generated from 'VK_EXT_extension_289'"]
20777 impl Format {
20778     pub const ASTC_4X4X4_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_011);
20779 }
20780 #[doc = "Generated from 'VK_EXT_extension_289'"]
20781 impl Format {
20782     pub const ASTC_5X4X4_UNORM_BLOCK_EXT: Self = Self(1_000_288_012);
20783 }
20784 #[doc = "Generated from 'VK_EXT_extension_289'"]
20785 impl Format {
20786     pub const ASTC_5X4X4_SRGB_BLOCK_EXT: Self = Self(1_000_288_013);
20787 }
20788 #[doc = "Generated from 'VK_EXT_extension_289'"]
20789 impl Format {
20790     pub const ASTC_5X4X4_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_014);
20791 }
20792 #[doc = "Generated from 'VK_EXT_extension_289'"]
20793 impl Format {
20794     pub const ASTC_5X5X4_UNORM_BLOCK_EXT: Self = Self(1_000_288_015);
20795 }
20796 #[doc = "Generated from 'VK_EXT_extension_289'"]
20797 impl Format {
20798     pub const ASTC_5X5X4_SRGB_BLOCK_EXT: Self = Self(1_000_288_016);
20799 }
20800 #[doc = "Generated from 'VK_EXT_extension_289'"]
20801 impl Format {
20802     pub const ASTC_5X5X4_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_017);
20803 }
20804 #[doc = "Generated from 'VK_EXT_extension_289'"]
20805 impl Format {
20806     pub const ASTC_5X5X5_UNORM_BLOCK_EXT: Self = Self(1_000_288_018);
20807 }
20808 #[doc = "Generated from 'VK_EXT_extension_289'"]
20809 impl Format {
20810     pub const ASTC_5X5X5_SRGB_BLOCK_EXT: Self = Self(1_000_288_019);
20811 }
20812 #[doc = "Generated from 'VK_EXT_extension_289'"]
20813 impl Format {
20814     pub const ASTC_5X5X5_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_020);
20815 }
20816 #[doc = "Generated from 'VK_EXT_extension_289'"]
20817 impl Format {
20818     pub const ASTC_6X5X5_UNORM_BLOCK_EXT: Self = Self(1_000_288_021);
20819 }
20820 #[doc = "Generated from 'VK_EXT_extension_289'"]
20821 impl Format {
20822     pub const ASTC_6X5X5_SRGB_BLOCK_EXT: Self = Self(1_000_288_022);
20823 }
20824 #[doc = "Generated from 'VK_EXT_extension_289'"]
20825 impl Format {
20826     pub const ASTC_6X5X5_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_023);
20827 }
20828 #[doc = "Generated from 'VK_EXT_extension_289'"]
20829 impl Format {
20830     pub const ASTC_6X6X5_UNORM_BLOCK_EXT: Self = Self(1_000_288_024);
20831 }
20832 #[doc = "Generated from 'VK_EXT_extension_289'"]
20833 impl Format {
20834     pub const ASTC_6X6X5_SRGB_BLOCK_EXT: Self = Self(1_000_288_025);
20835 }
20836 #[doc = "Generated from 'VK_EXT_extension_289'"]
20837 impl Format {
20838     pub const ASTC_6X6X5_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_026);
20839 }
20840 #[doc = "Generated from 'VK_EXT_extension_289'"]
20841 impl Format {
20842     pub const ASTC_6X6X6_UNORM_BLOCK_EXT: Self = Self(1_000_288_027);
20843 }
20844 #[doc = "Generated from 'VK_EXT_extension_289'"]
20845 impl Format {
20846     pub const ASTC_6X6X6_SRGB_BLOCK_EXT: Self = Self(1_000_288_028);
20847 }
20848 #[doc = "Generated from 'VK_EXT_extension_289'"]
20849 impl Format {
20850     pub const ASTC_6X6X6_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_029);
20851 }
20852 impl GoogleUserTypeFn {
name() -> &'static ::std::ffi::CStr20853     pub fn name() -> &'static ::std::ffi::CStr {
20854         ::std::ffi::CStr::from_bytes_with_nul(b"VK_GOOGLE_user_type\0")
20855             .expect("Wrong extension string")
20856     }
20857     pub const SPEC_VERSION: u32 = 1u32;
20858 }
20859 #[derive(Clone)]
20860 pub struct GoogleUserTypeFn {}
20861 unsafe impl Send for GoogleUserTypeFn {}
20862 unsafe impl Sync for GoogleUserTypeFn {}
20863 impl GoogleUserTypeFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20864     pub fn load<F>(mut _f: F) -> Self
20865     where
20866         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20867     {
20868         GoogleUserTypeFn {}
20869     }
20870 }
20871 impl KhrPipelineLibraryFn {
name() -> &'static ::std::ffi::CStr20872     pub fn name() -> &'static ::std::ffi::CStr {
20873         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_pipeline_library\0")
20874             .expect("Wrong extension string")
20875     }
20876     pub const SPEC_VERSION: u32 = 1u32;
20877 }
20878 #[derive(Clone)]
20879 pub struct KhrPipelineLibraryFn {}
20880 unsafe impl Send for KhrPipelineLibraryFn {}
20881 unsafe impl Sync for KhrPipelineLibraryFn {}
20882 impl KhrPipelineLibraryFn {
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         KhrPipelineLibraryFn {}
20888     }
20889 }
20890 #[doc = "Generated from 'VK_KHR_pipeline_library'"]
20891 impl PipelineCreateFlags {
20892     pub const LIBRARY_KHR: Self = Self(0b1000_0000_0000);
20893 }
20894 #[doc = "Generated from 'VK_KHR_pipeline_library'"]
20895 impl StructureType {
20896     pub const PIPELINE_LIBRARY_CREATE_INFO_KHR: Self = Self(1_000_290_000);
20897 }
20898 impl NvExtension292Fn {
name() -> &'static ::std::ffi::CStr20899     pub fn name() -> &'static ::std::ffi::CStr {
20900         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_extension_292\0")
20901             .expect("Wrong extension string")
20902     }
20903     pub const SPEC_VERSION: u32 = 0u32;
20904 }
20905 #[derive(Clone)]
20906 pub struct NvExtension292Fn {}
20907 unsafe impl Send for NvExtension292Fn {}
20908 unsafe impl Sync for NvExtension292Fn {}
20909 impl NvExtension292Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20910     pub fn load<F>(mut _f: F) -> Self
20911     where
20912         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20913     {
20914         NvExtension292Fn {}
20915     }
20916 }
20917 impl NvExtension293Fn {
name() -> &'static ::std::ffi::CStr20918     pub fn name() -> &'static ::std::ffi::CStr {
20919         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_extension_293\0")
20920             .expect("Wrong extension string")
20921     }
20922     pub const SPEC_VERSION: u32 = 0u32;
20923 }
20924 #[derive(Clone)]
20925 pub struct NvExtension293Fn {}
20926 unsafe impl Send for NvExtension293Fn {}
20927 unsafe impl Sync for NvExtension293Fn {}
20928 impl NvExtension293Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20929     pub fn load<F>(mut _f: F) -> Self
20930     where
20931         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20932     {
20933         NvExtension293Fn {}
20934     }
20935 }
20936 impl KhrShaderNonSemanticInfoFn {
name() -> &'static ::std::ffi::CStr20937     pub fn name() -> &'static ::std::ffi::CStr {
20938         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_shader_non_semantic_info\0")
20939             .expect("Wrong extension string")
20940     }
20941     pub const SPEC_VERSION: u32 = 1u32;
20942 }
20943 #[derive(Clone)]
20944 pub struct KhrShaderNonSemanticInfoFn {}
20945 unsafe impl Send for KhrShaderNonSemanticInfoFn {}
20946 unsafe impl Sync for KhrShaderNonSemanticInfoFn {}
20947 impl KhrShaderNonSemanticInfoFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20948     pub fn load<F>(mut _f: F) -> Self
20949     where
20950         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20951     {
20952         KhrShaderNonSemanticInfoFn {}
20953     }
20954 }
20955 impl KhrPresentIdFn {
name() -> &'static ::std::ffi::CStr20956     pub fn name() -> &'static ::std::ffi::CStr {
20957         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_present_id\0")
20958             .expect("Wrong extension string")
20959     }
20960     pub const SPEC_VERSION: u32 = 1u32;
20961 }
20962 #[derive(Clone)]
20963 pub struct KhrPresentIdFn {}
20964 unsafe impl Send for KhrPresentIdFn {}
20965 unsafe impl Sync for KhrPresentIdFn {}
20966 impl KhrPresentIdFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20967     pub fn load<F>(mut _f: F) -> Self
20968     where
20969         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20970     {
20971         KhrPresentIdFn {}
20972     }
20973 }
20974 #[doc = "Generated from 'VK_KHR_present_id'"]
20975 impl StructureType {
20976     pub const PRESENT_ID_KHR: Self = Self(1_000_294_000);
20977 }
20978 #[doc = "Generated from 'VK_KHR_present_id'"]
20979 impl StructureType {
20980     pub const PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR: Self = Self(1_000_294_001);
20981 }
20982 impl ExtPrivateDataFn {
name() -> &'static ::std::ffi::CStr20983     pub fn name() -> &'static ::std::ffi::CStr {
20984         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_private_data\0")
20985             .expect("Wrong extension string")
20986     }
20987     pub const SPEC_VERSION: u32 = 1u32;
20988 }
20989 #[allow(non_camel_case_types)]
20990 pub type PFN_vkCreatePrivateDataSlotEXT = unsafe extern "system" fn(
20991     device: Device,
20992     p_create_info: *const PrivateDataSlotCreateInfoEXT,
20993     p_allocator: *const AllocationCallbacks,
20994     p_private_data_slot: *mut PrivateDataSlotEXT,
20995 ) -> Result;
20996 #[allow(non_camel_case_types)]
20997 pub type PFN_vkDestroyPrivateDataSlotEXT = unsafe extern "system" fn(
20998     device: Device,
20999     private_data_slot: PrivateDataSlotEXT,
21000     p_allocator: *const AllocationCallbacks,
21001 );
21002 #[allow(non_camel_case_types)]
21003 pub type PFN_vkSetPrivateDataEXT = unsafe extern "system" fn(
21004     device: Device,
21005     object_type: ObjectType,
21006     object_handle: u64,
21007     private_data_slot: PrivateDataSlotEXT,
21008     data: u64,
21009 ) -> Result;
21010 #[allow(non_camel_case_types)]
21011 pub type PFN_vkGetPrivateDataEXT = unsafe extern "system" fn(
21012     device: Device,
21013     object_type: ObjectType,
21014     object_handle: u64,
21015     private_data_slot: PrivateDataSlotEXT,
21016     p_data: *mut u64,
21017 );
21018 #[derive(Clone)]
21019 pub struct ExtPrivateDataFn {
21020     pub create_private_data_slot_ext: PFN_vkCreatePrivateDataSlotEXT,
21021     pub destroy_private_data_slot_ext: PFN_vkDestroyPrivateDataSlotEXT,
21022     pub set_private_data_ext: PFN_vkSetPrivateDataEXT,
21023     pub get_private_data_ext: PFN_vkGetPrivateDataEXT,
21024 }
21025 unsafe impl Send for ExtPrivateDataFn {}
21026 unsafe impl Sync for ExtPrivateDataFn {}
21027 impl ExtPrivateDataFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21028     pub fn load<F>(mut _f: F) -> Self
21029     where
21030         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21031     {
21032         ExtPrivateDataFn {
21033             create_private_data_slot_ext: unsafe {
21034                 unsafe extern "system" fn create_private_data_slot_ext(
21035                     _device: Device,
21036                     _p_create_info: *const PrivateDataSlotCreateInfoEXT,
21037                     _p_allocator: *const AllocationCallbacks,
21038                     _p_private_data_slot: *mut PrivateDataSlotEXT,
21039                 ) -> Result {
21040                     panic!(concat!(
21041                         "Unable to load ",
21042                         stringify!(create_private_data_slot_ext)
21043                     ))
21044                 }
21045                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
21046                     b"vkCreatePrivateDataSlotEXT\0",
21047                 );
21048                 let val = _f(cname);
21049                 if val.is_null() {
21050                     create_private_data_slot_ext
21051                 } else {
21052                     ::std::mem::transmute(val)
21053                 }
21054             },
21055             destroy_private_data_slot_ext: unsafe {
21056                 unsafe extern "system" fn destroy_private_data_slot_ext(
21057                     _device: Device,
21058                     _private_data_slot: PrivateDataSlotEXT,
21059                     _p_allocator: *const AllocationCallbacks,
21060                 ) {
21061                     panic!(concat!(
21062                         "Unable to load ",
21063                         stringify!(destroy_private_data_slot_ext)
21064                     ))
21065                 }
21066                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
21067                     b"vkDestroyPrivateDataSlotEXT\0",
21068                 );
21069                 let val = _f(cname);
21070                 if val.is_null() {
21071                     destroy_private_data_slot_ext
21072                 } else {
21073                     ::std::mem::transmute(val)
21074                 }
21075             },
21076             set_private_data_ext: unsafe {
21077                 unsafe extern "system" fn set_private_data_ext(
21078                     _device: Device,
21079                     _object_type: ObjectType,
21080                     _object_handle: u64,
21081                     _private_data_slot: PrivateDataSlotEXT,
21082                     _data: u64,
21083                 ) -> Result {
21084                     panic!(concat!("Unable to load ", stringify!(set_private_data_ext)))
21085                 }
21086                 let cname =
21087                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkSetPrivateDataEXT\0");
21088                 let val = _f(cname);
21089                 if val.is_null() {
21090                     set_private_data_ext
21091                 } else {
21092                     ::std::mem::transmute(val)
21093                 }
21094             },
21095             get_private_data_ext: unsafe {
21096                 unsafe extern "system" fn get_private_data_ext(
21097                     _device: Device,
21098                     _object_type: ObjectType,
21099                     _object_handle: u64,
21100                     _private_data_slot: PrivateDataSlotEXT,
21101                     _p_data: *mut u64,
21102                 ) {
21103                     panic!(concat!("Unable to load ", stringify!(get_private_data_ext)))
21104                 }
21105                 let cname =
21106                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetPrivateDataEXT\0");
21107                 let val = _f(cname);
21108                 if val.is_null() {
21109                     get_private_data_ext
21110                 } else {
21111                     ::std::mem::transmute(val)
21112                 }
21113             },
21114         }
21115     }
21116     #[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, ) -> Result21117     pub unsafe fn create_private_data_slot_ext(
21118         &self,
21119         device: Device,
21120         p_create_info: *const PrivateDataSlotCreateInfoEXT,
21121         p_allocator: *const AllocationCallbacks,
21122         p_private_data_slot: *mut PrivateDataSlotEXT,
21123     ) -> Result {
21124         (self.create_private_data_slot_ext)(device, p_create_info, p_allocator, p_private_data_slot)
21125     }
21126     #[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, )21127     pub unsafe fn destroy_private_data_slot_ext(
21128         &self,
21129         device: Device,
21130         private_data_slot: PrivateDataSlotEXT,
21131         p_allocator: *const AllocationCallbacks,
21132     ) {
21133         (self.destroy_private_data_slot_ext)(device, private_data_slot, p_allocator)
21134     }
21135     #[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, ) -> Result21136     pub unsafe fn set_private_data_ext(
21137         &self,
21138         device: Device,
21139         object_type: ObjectType,
21140         object_handle: u64,
21141         private_data_slot: PrivateDataSlotEXT,
21142         data: u64,
21143     ) -> Result {
21144         (self.set_private_data_ext)(device, object_type, object_handle, private_data_slot, data)
21145     }
21146     #[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, )21147     pub unsafe fn get_private_data_ext(
21148         &self,
21149         device: Device,
21150         object_type: ObjectType,
21151         object_handle: u64,
21152         private_data_slot: PrivateDataSlotEXT,
21153         p_data: *mut u64,
21154     ) {
21155         (self.get_private_data_ext)(
21156             device,
21157             object_type,
21158             object_handle,
21159             private_data_slot,
21160             p_data,
21161         )
21162     }
21163 }
21164 #[doc = "Generated from 'VK_EXT_private_data'"]
21165 impl StructureType {
21166     pub const PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT: Self = Self(1_000_295_000);
21167 }
21168 #[doc = "Generated from 'VK_EXT_private_data'"]
21169 impl StructureType {
21170     pub const DEVICE_PRIVATE_DATA_CREATE_INFO_EXT: Self = Self(1_000_295_001);
21171 }
21172 #[doc = "Generated from 'VK_EXT_private_data'"]
21173 impl StructureType {
21174     pub const PRIVATE_DATA_SLOT_CREATE_INFO_EXT: Self = Self(1_000_295_002);
21175 }
21176 #[doc = "Generated from 'VK_EXT_private_data'"]
21177 impl ObjectType {
21178     pub const PRIVATE_DATA_SLOT_EXT: Self = Self(1_000_295_000);
21179 }
21180 impl KhrExtension297Fn {
name() -> &'static ::std::ffi::CStr21181     pub fn name() -> &'static ::std::ffi::CStr {
21182         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_297\0")
21183             .expect("Wrong extension string")
21184     }
21185     pub const SPEC_VERSION: u32 = 0u32;
21186 }
21187 #[derive(Clone)]
21188 pub struct KhrExtension297Fn {}
21189 unsafe impl Send for KhrExtension297Fn {}
21190 unsafe impl Sync for KhrExtension297Fn {}
21191 impl KhrExtension297Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21192     pub fn load<F>(mut _f: F) -> Self
21193     where
21194         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21195     {
21196         KhrExtension297Fn {}
21197     }
21198 }
21199 #[doc = "Generated from 'VK_KHR_extension_297'"]
21200 impl PipelineShaderStageCreateFlags {
21201     pub const RESERVED_3_KHR: Self = Self(0b1000);
21202 }
21203 impl ExtPipelineCreationCacheControlFn {
name() -> &'static ::std::ffi::CStr21204     pub fn name() -> &'static ::std::ffi::CStr {
21205         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_pipeline_creation_cache_control\0")
21206             .expect("Wrong extension string")
21207     }
21208     pub const SPEC_VERSION: u32 = 3u32;
21209 }
21210 #[derive(Clone)]
21211 pub struct ExtPipelineCreationCacheControlFn {}
21212 unsafe impl Send for ExtPipelineCreationCacheControlFn {}
21213 unsafe impl Sync for ExtPipelineCreationCacheControlFn {}
21214 impl ExtPipelineCreationCacheControlFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21215     pub fn load<F>(mut _f: F) -> Self
21216     where
21217         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21218     {
21219         ExtPipelineCreationCacheControlFn {}
21220     }
21221 }
21222 #[doc = "Generated from 'VK_EXT_pipeline_creation_cache_control'"]
21223 impl StructureType {
21224     pub const PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT: Self =
21225         Self(1_000_297_000);
21226 }
21227 #[doc = "Generated from 'VK_EXT_pipeline_creation_cache_control'"]
21228 impl PipelineCreateFlags {
21229     pub const FAIL_ON_PIPELINE_COMPILE_REQUIRED_EXT: Self = Self(0b1_0000_0000);
21230 }
21231 #[doc = "Generated from 'VK_EXT_pipeline_creation_cache_control'"]
21232 impl PipelineCreateFlags {
21233     pub const EARLY_RETURN_ON_FAILURE_EXT: Self = Self(0b10_0000_0000);
21234 }
21235 #[doc = "Generated from 'VK_EXT_pipeline_creation_cache_control'"]
21236 impl Result {
21237     pub const PIPELINE_COMPILE_REQUIRED_EXT: Self = Self(1_000_297_000);
21238 }
21239 #[doc = "Generated from 'VK_EXT_pipeline_creation_cache_control'"]
21240 impl Result {
21241     pub const ERROR_PIPELINE_COMPILE_REQUIRED_EXT: Self = Self::PIPELINE_COMPILE_REQUIRED_EXT;
21242 }
21243 #[doc = "Generated from 'VK_EXT_pipeline_creation_cache_control'"]
21244 impl PipelineCacheCreateFlags {
21245     pub const EXTERNALLY_SYNCHRONIZED_EXT: Self = Self(0b1);
21246 }
21247 impl KhrExtension299Fn {
name() -> &'static ::std::ffi::CStr21248     pub fn name() -> &'static ::std::ffi::CStr {
21249         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_299\0")
21250             .expect("Wrong extension string")
21251     }
21252     pub const SPEC_VERSION: u32 = 0u32;
21253 }
21254 #[derive(Clone)]
21255 pub struct KhrExtension299Fn {}
21256 unsafe impl Send for KhrExtension299Fn {}
21257 unsafe impl Sync for KhrExtension299Fn {}
21258 impl KhrExtension299Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21259     pub fn load<F>(mut _f: F) -> Self
21260     where
21261         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21262     {
21263         KhrExtension299Fn {}
21264     }
21265 }
21266 #[doc = "Generated from 'VK_KHR_extension_299'"]
21267 impl MemoryHeapFlags {
21268     pub const RESERVED_2_KHR: Self = Self(0b100);
21269 }
21270 #[doc = "Generated from 'VK_KHR_extension_299'"]
21271 impl PipelineCacheCreateFlags {
21272     pub const RESERVED_1_KHR: Self = Self::RESERVED_1_EXT;
21273 }
21274 #[doc = "Generated from 'VK_KHR_extension_299'"]
21275 impl PipelineCacheCreateFlags {
21276     pub const RESERVED_2_KHR: Self = Self(0b100);
21277 }
21278 impl KhrVideoEncodeQueueFn {
name() -> &'static ::std::ffi::CStr21279     pub fn name() -> &'static ::std::ffi::CStr {
21280         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_video_encode_queue\0")
21281             .expect("Wrong extension string")
21282     }
21283     pub const SPEC_VERSION: u32 = 2u32;
21284 }
21285 #[allow(non_camel_case_types)]
21286 pub type PFN_vkCmdEncodeVideoKHR = unsafe extern "system" fn(
21287     command_buffer: CommandBuffer,
21288     p_encode_info: *const VideoEncodeInfoKHR,
21289 );
21290 #[derive(Clone)]
21291 pub struct KhrVideoEncodeQueueFn {
21292     pub cmd_encode_video_khr: PFN_vkCmdEncodeVideoKHR,
21293 }
21294 unsafe impl Send for KhrVideoEncodeQueueFn {}
21295 unsafe impl Sync for KhrVideoEncodeQueueFn {}
21296 impl KhrVideoEncodeQueueFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21297     pub fn load<F>(mut _f: F) -> Self
21298     where
21299         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21300     {
21301         KhrVideoEncodeQueueFn {
21302             cmd_encode_video_khr: unsafe {
21303                 unsafe extern "system" fn cmd_encode_video_khr(
21304                     _command_buffer: CommandBuffer,
21305                     _p_encode_info: *const VideoEncodeInfoKHR,
21306                 ) {
21307                     panic!(concat!("Unable to load ", stringify!(cmd_encode_video_khr)))
21308                 }
21309                 let cname =
21310                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdEncodeVideoKHR\0");
21311                 let val = _f(cname);
21312                 if val.is_null() {
21313                     cmd_encode_video_khr
21314                 } else {
21315                     ::std::mem::transmute(val)
21316                 }
21317             },
21318         }
21319     }
21320     #[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, )21321     pub unsafe fn cmd_encode_video_khr(
21322         &self,
21323         command_buffer: CommandBuffer,
21324         p_encode_info: *const VideoEncodeInfoKHR,
21325     ) {
21326         (self.cmd_encode_video_khr)(command_buffer, p_encode_info)
21327     }
21328 }
21329 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
21330 impl PipelineStageFlags2KHR {
21331     pub const VIDEO_ENCODE: Self = Self(0b1000_0000_0000_0000_0000_0000_0000);
21332 }
21333 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
21334 impl AccessFlags2KHR {
21335     pub const VIDEO_ENCODE_READ: Self = Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000_0000);
21336 }
21337 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
21338 impl AccessFlags2KHR {
21339     pub const VIDEO_ENCODE_WRITE: Self = Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000_0000);
21340 }
21341 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
21342 impl StructureType {
21343     pub const VIDEO_ENCODE_INFO_KHR: Self = Self(1_000_299_000);
21344 }
21345 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
21346 impl StructureType {
21347     pub const VIDEO_ENCODE_RATE_CONTROL_INFO_KHR: Self = Self(1_000_299_001);
21348 }
21349 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
21350 impl QueueFlags {
21351     pub const VIDEO_ENCODE_KHR: Self = Self(0b100_0000);
21352 }
21353 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
21354 impl BufferUsageFlags {
21355     pub const VIDEO_ENCODE_DST_KHR: Self = Self(0b1000_0000_0000_0000);
21356 }
21357 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
21358 impl BufferUsageFlags {
21359     pub const VIDEO_ENCODE_SRC_KHR: Self = Self(0b1_0000_0000_0000_0000);
21360 }
21361 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
21362 impl ImageUsageFlags {
21363     pub const VIDEO_ENCODE_DST_KHR: Self = Self(0b10_0000_0000_0000);
21364 }
21365 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
21366 impl ImageUsageFlags {
21367     pub const VIDEO_ENCODE_SRC_KHR: Self = Self(0b100_0000_0000_0000);
21368 }
21369 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
21370 impl ImageUsageFlags {
21371     pub const VIDEO_ENCODE_DPB_KHR: Self = Self(0b1000_0000_0000_0000);
21372 }
21373 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
21374 impl FormatFeatureFlags {
21375     pub const VIDEO_ENCODE_INPUT_KHR: Self = Self(0b1000_0000_0000_0000_0000_0000_0000);
21376 }
21377 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
21378 impl FormatFeatureFlags {
21379     pub const VIDEO_ENCODE_DPB_KHR: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000);
21380 }
21381 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
21382 impl ImageLayout {
21383     pub const VIDEO_ENCODE_DST_KHR: Self = Self(1_000_299_000);
21384 }
21385 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
21386 impl ImageLayout {
21387     pub const VIDEO_ENCODE_SRC_KHR: Self = Self(1_000_299_001);
21388 }
21389 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
21390 impl ImageLayout {
21391     pub const VIDEO_ENCODE_DPB_KHR: Self = Self(1_000_299_002);
21392 }
21393 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
21394 impl QueryType {
21395     pub const VIDEO_ENCODESTREAM_BUFFER_RANGE_KHR: Self = Self(1_000_299_000);
21396 }
21397 impl NvDeviceDiagnosticsConfigFn {
name() -> &'static ::std::ffi::CStr21398     pub fn name() -> &'static ::std::ffi::CStr {
21399         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_device_diagnostics_config\0")
21400             .expect("Wrong extension string")
21401     }
21402     pub const SPEC_VERSION: u32 = 1u32;
21403 }
21404 #[derive(Clone)]
21405 pub struct NvDeviceDiagnosticsConfigFn {}
21406 unsafe impl Send for NvDeviceDiagnosticsConfigFn {}
21407 unsafe impl Sync for NvDeviceDiagnosticsConfigFn {}
21408 impl NvDeviceDiagnosticsConfigFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21409     pub fn load<F>(mut _f: F) -> Self
21410     where
21411         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21412     {
21413         NvDeviceDiagnosticsConfigFn {}
21414     }
21415 }
21416 #[doc = "Generated from 'VK_NV_device_diagnostics_config'"]
21417 impl StructureType {
21418     pub const PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV: Self = Self(1_000_300_000);
21419 }
21420 #[doc = "Generated from 'VK_NV_device_diagnostics_config'"]
21421 impl StructureType {
21422     pub const DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV: Self = Self(1_000_300_001);
21423 }
21424 impl QcomRenderPassStoreOpsFn {
name() -> &'static ::std::ffi::CStr21425     pub fn name() -> &'static ::std::ffi::CStr {
21426         ::std::ffi::CStr::from_bytes_with_nul(b"VK_QCOM_render_pass_store_ops\0")
21427             .expect("Wrong extension string")
21428     }
21429     pub const SPEC_VERSION: u32 = 2u32;
21430 }
21431 #[derive(Clone)]
21432 pub struct QcomRenderPassStoreOpsFn {}
21433 unsafe impl Send for QcomRenderPassStoreOpsFn {}
21434 unsafe impl Sync for QcomRenderPassStoreOpsFn {}
21435 impl QcomRenderPassStoreOpsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21436     pub fn load<F>(mut _f: F) -> Self
21437     where
21438         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21439     {
21440         QcomRenderPassStoreOpsFn {}
21441     }
21442 }
21443 #[doc = "Generated from 'VK_QCOM_render_pass_store_ops'"]
21444 impl AttachmentStoreOp {
21445     pub const NONE_QCOM: Self = Self::NONE_EXT;
21446 }
21447 impl QcomExtension303Fn {
name() -> &'static ::std::ffi::CStr21448     pub fn name() -> &'static ::std::ffi::CStr {
21449         ::std::ffi::CStr::from_bytes_with_nul(b"VK_QCOM_extension_303\0")
21450             .expect("Wrong extension string")
21451     }
21452     pub const SPEC_VERSION: u32 = 0u32;
21453 }
21454 #[derive(Clone)]
21455 pub struct QcomExtension303Fn {}
21456 unsafe impl Send for QcomExtension303Fn {}
21457 unsafe impl Sync for QcomExtension303Fn {}
21458 impl QcomExtension303Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21459     pub fn load<F>(mut _f: F) -> Self
21460     where
21461         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21462     {
21463         QcomExtension303Fn {}
21464     }
21465 }
21466 impl QcomExtension304Fn {
name() -> &'static ::std::ffi::CStr21467     pub fn name() -> &'static ::std::ffi::CStr {
21468         ::std::ffi::CStr::from_bytes_with_nul(b"VK_QCOM_extension_304\0")
21469             .expect("Wrong extension string")
21470     }
21471     pub const SPEC_VERSION: u32 = 0u32;
21472 }
21473 #[derive(Clone)]
21474 pub struct QcomExtension304Fn {}
21475 unsafe impl Send for QcomExtension304Fn {}
21476 unsafe impl Sync for QcomExtension304Fn {}
21477 impl QcomExtension304Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21478     pub fn load<F>(mut _f: F) -> Self
21479     where
21480         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21481     {
21482         QcomExtension304Fn {}
21483     }
21484 }
21485 impl QcomExtension305Fn {
name() -> &'static ::std::ffi::CStr21486     pub fn name() -> &'static ::std::ffi::CStr {
21487         ::std::ffi::CStr::from_bytes_with_nul(b"VK_QCOM_extension_305\0")
21488             .expect("Wrong extension string")
21489     }
21490     pub const SPEC_VERSION: u32 = 0u32;
21491 }
21492 #[derive(Clone)]
21493 pub struct QcomExtension305Fn {}
21494 unsafe impl Send for QcomExtension305Fn {}
21495 unsafe impl Sync for QcomExtension305Fn {}
21496 impl QcomExtension305Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21497     pub fn load<F>(mut _f: F) -> Self
21498     where
21499         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21500     {
21501         QcomExtension305Fn {}
21502     }
21503 }
21504 impl QcomExtension306Fn {
name() -> &'static ::std::ffi::CStr21505     pub fn name() -> &'static ::std::ffi::CStr {
21506         ::std::ffi::CStr::from_bytes_with_nul(b"VK_QCOM_extension_306\0")
21507             .expect("Wrong extension string")
21508     }
21509     pub const SPEC_VERSION: u32 = 0u32;
21510 }
21511 #[derive(Clone)]
21512 pub struct QcomExtension306Fn {}
21513 unsafe impl Send for QcomExtension306Fn {}
21514 unsafe impl Sync for QcomExtension306Fn {}
21515 impl QcomExtension306Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21516     pub fn load<F>(mut _f: F) -> Self
21517     where
21518         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21519     {
21520         QcomExtension306Fn {}
21521     }
21522 }
21523 impl QcomExtension307Fn {
name() -> &'static ::std::ffi::CStr21524     pub fn name() -> &'static ::std::ffi::CStr {
21525         ::std::ffi::CStr::from_bytes_with_nul(b"VK_QCOM_extension_307\0")
21526             .expect("Wrong extension string")
21527     }
21528     pub const SPEC_VERSION: u32 = 0u32;
21529 }
21530 #[derive(Clone)]
21531 pub struct QcomExtension307Fn {}
21532 unsafe impl Send for QcomExtension307Fn {}
21533 unsafe impl Sync for QcomExtension307Fn {}
21534 impl QcomExtension307Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21535     pub fn load<F>(mut _f: F) -> Self
21536     where
21537         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21538     {
21539         QcomExtension307Fn {}
21540     }
21541 }
21542 impl NvExtension308Fn {
name() -> &'static ::std::ffi::CStr21543     pub fn name() -> &'static ::std::ffi::CStr {
21544         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_extension_308\0")
21545             .expect("Wrong extension string")
21546     }
21547     pub const SPEC_VERSION: u32 = 0u32;
21548 }
21549 #[derive(Clone)]
21550 pub struct NvExtension308Fn {}
21551 unsafe impl Send for NvExtension308Fn {}
21552 unsafe impl Sync for NvExtension308Fn {}
21553 impl NvExtension308Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21554     pub fn load<F>(mut _f: F) -> Self
21555     where
21556         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21557     {
21558         NvExtension308Fn {}
21559     }
21560 }
21561 impl KhrExtension309Fn {
name() -> &'static ::std::ffi::CStr21562     pub fn name() -> &'static ::std::ffi::CStr {
21563         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_309\0")
21564             .expect("Wrong extension string")
21565     }
21566     pub const SPEC_VERSION: u32 = 0u32;
21567 }
21568 #[derive(Clone)]
21569 pub struct KhrExtension309Fn {}
21570 unsafe impl Send for KhrExtension309Fn {}
21571 unsafe impl Sync for KhrExtension309Fn {}
21572 impl KhrExtension309Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21573     pub fn load<F>(mut _f: F) -> Self
21574     where
21575         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21576     {
21577         KhrExtension309Fn {}
21578     }
21579 }
21580 impl QcomExtension310Fn {
name() -> &'static ::std::ffi::CStr21581     pub fn name() -> &'static ::std::ffi::CStr {
21582         ::std::ffi::CStr::from_bytes_with_nul(b"VK_QCOM_extension_310\0")
21583             .expect("Wrong extension string")
21584     }
21585     pub const SPEC_VERSION: u32 = 0u32;
21586 }
21587 #[derive(Clone)]
21588 pub struct QcomExtension310Fn {}
21589 unsafe impl Send for QcomExtension310Fn {}
21590 unsafe impl Sync for QcomExtension310Fn {}
21591 impl QcomExtension310Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21592     pub fn load<F>(mut _f: F) -> Self
21593     where
21594         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21595     {
21596         QcomExtension310Fn {}
21597     }
21598 }
21599 #[doc = "Generated from 'VK_QCOM_extension_310'"]
21600 impl StructureType {
21601     pub const RESERVED_QCOM: Self = Self(1_000_309_000);
21602 }
21603 impl NvExtension311Fn {
name() -> &'static ::std::ffi::CStr21604     pub fn name() -> &'static ::std::ffi::CStr {
21605         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_extension_311\0")
21606             .expect("Wrong extension string")
21607     }
21608     pub const SPEC_VERSION: u32 = 0u32;
21609 }
21610 #[derive(Clone)]
21611 pub struct NvExtension311Fn {}
21612 unsafe impl Send for NvExtension311Fn {}
21613 unsafe impl Sync for NvExtension311Fn {}
21614 impl NvExtension311Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21615     pub fn load<F>(mut _f: F) -> Self
21616     where
21617         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21618     {
21619         NvExtension311Fn {}
21620     }
21621 }
21622 impl ExtExtension312Fn {
name() -> &'static ::std::ffi::CStr21623     pub fn name() -> &'static ::std::ffi::CStr {
21624         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_312\0")
21625             .expect("Wrong extension string")
21626     }
21627     pub const SPEC_VERSION: u32 = 0u32;
21628 }
21629 #[derive(Clone)]
21630 pub struct ExtExtension312Fn {}
21631 unsafe impl Send for ExtExtension312Fn {}
21632 unsafe impl Sync for ExtExtension312Fn {}
21633 impl ExtExtension312Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21634     pub fn load<F>(mut _f: F) -> Self
21635     where
21636         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21637     {
21638         ExtExtension312Fn {}
21639     }
21640 }
21641 impl ExtExtension313Fn {
name() -> &'static ::std::ffi::CStr21642     pub fn name() -> &'static ::std::ffi::CStr {
21643         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_313\0")
21644             .expect("Wrong extension string")
21645     }
21646     pub const SPEC_VERSION: u32 = 0u32;
21647 }
21648 #[derive(Clone)]
21649 pub struct ExtExtension313Fn {}
21650 unsafe impl Send for ExtExtension313Fn {}
21651 unsafe impl Sync for ExtExtension313Fn {}
21652 impl ExtExtension313Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21653     pub fn load<F>(mut _f: F) -> Self
21654     where
21655         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21656     {
21657         ExtExtension313Fn {}
21658     }
21659 }
21660 impl AmdExtension314Fn {
name() -> &'static ::std::ffi::CStr21661     pub fn name() -> &'static ::std::ffi::CStr {
21662         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_314\0")
21663             .expect("Wrong extension string")
21664     }
21665     pub const SPEC_VERSION: u32 = 0u32;
21666 }
21667 #[derive(Clone)]
21668 pub struct AmdExtension314Fn {}
21669 unsafe impl Send for AmdExtension314Fn {}
21670 unsafe impl Sync for AmdExtension314Fn {}
21671 impl AmdExtension314Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21672     pub fn load<F>(mut _f: F) -> Self
21673     where
21674         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21675     {
21676         AmdExtension314Fn {}
21677     }
21678 }
21679 impl KhrSynchronization2Fn {
name() -> &'static ::std::ffi::CStr21680     pub fn name() -> &'static ::std::ffi::CStr {
21681         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_synchronization2\0")
21682             .expect("Wrong extension string")
21683     }
21684     pub const SPEC_VERSION: u32 = 1u32;
21685 }
21686 #[allow(non_camel_case_types)]
21687 pub type PFN_vkCmdSetEvent2KHR = unsafe extern "system" fn(
21688     command_buffer: CommandBuffer,
21689     event: Event,
21690     p_dependency_info: *const DependencyInfoKHR,
21691 );
21692 #[allow(non_camel_case_types)]
21693 pub type PFN_vkCmdResetEvent2KHR = unsafe extern "system" fn(
21694     command_buffer: CommandBuffer,
21695     event: Event,
21696     stage_mask: PipelineStageFlags2KHR,
21697 );
21698 #[allow(non_camel_case_types)]
21699 pub type PFN_vkCmdWaitEvents2KHR = unsafe extern "system" fn(
21700     command_buffer: CommandBuffer,
21701     event_count: u32,
21702     p_events: *const Event,
21703     p_dependency_infos: *const DependencyInfoKHR,
21704 );
21705 #[allow(non_camel_case_types)]
21706 pub type PFN_vkCmdPipelineBarrier2KHR = unsafe extern "system" fn(
21707     command_buffer: CommandBuffer,
21708     p_dependency_info: *const DependencyInfoKHR,
21709 );
21710 #[allow(non_camel_case_types)]
21711 pub type PFN_vkCmdWriteTimestamp2KHR = unsafe extern "system" fn(
21712     command_buffer: CommandBuffer,
21713     stage: PipelineStageFlags2KHR,
21714     query_pool: QueryPool,
21715     query: u32,
21716 );
21717 #[allow(non_camel_case_types)]
21718 pub type PFN_vkQueueSubmit2KHR = unsafe extern "system" fn(
21719     queue: Queue,
21720     submit_count: u32,
21721     p_submits: *const SubmitInfo2KHR,
21722     fence: Fence,
21723 ) -> Result;
21724 #[allow(non_camel_case_types)]
21725 pub type PFN_vkCmdWriteBufferMarker2AMD = unsafe extern "system" fn(
21726     command_buffer: CommandBuffer,
21727     stage: PipelineStageFlags2KHR,
21728     dst_buffer: Buffer,
21729     dst_offset: DeviceSize,
21730     marker: u32,
21731 );
21732 #[allow(non_camel_case_types)]
21733 pub type PFN_vkGetQueueCheckpointData2NV = unsafe extern "system" fn(
21734     queue: Queue,
21735     p_checkpoint_data_count: *mut u32,
21736     p_checkpoint_data: *mut CheckpointData2NV,
21737 );
21738 #[derive(Clone)]
21739 pub struct KhrSynchronization2Fn {
21740     pub cmd_set_event2_khr: PFN_vkCmdSetEvent2KHR,
21741     pub cmd_reset_event2_khr: PFN_vkCmdResetEvent2KHR,
21742     pub cmd_wait_events2_khr: PFN_vkCmdWaitEvents2KHR,
21743     pub cmd_pipeline_barrier2_khr: PFN_vkCmdPipelineBarrier2KHR,
21744     pub cmd_write_timestamp2_khr: PFN_vkCmdWriteTimestamp2KHR,
21745     pub queue_submit2_khr: PFN_vkQueueSubmit2KHR,
21746     pub cmd_write_buffer_marker2_amd: PFN_vkCmdWriteBufferMarker2AMD,
21747     pub get_queue_checkpoint_data2_nv: PFN_vkGetQueueCheckpointData2NV,
21748 }
21749 unsafe impl Send for KhrSynchronization2Fn {}
21750 unsafe impl Sync for KhrSynchronization2Fn {}
21751 impl KhrSynchronization2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21752     pub fn load<F>(mut _f: F) -> Self
21753     where
21754         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21755     {
21756         KhrSynchronization2Fn {
21757             cmd_set_event2_khr: unsafe {
21758                 unsafe extern "system" fn cmd_set_event2_khr(
21759                     _command_buffer: CommandBuffer,
21760                     _event: Event,
21761                     _p_dependency_info: *const DependencyInfoKHR,
21762                 ) {
21763                     panic!(concat!("Unable to load ", stringify!(cmd_set_event2_khr)))
21764                 }
21765                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetEvent2KHR\0");
21766                 let val = _f(cname);
21767                 if val.is_null() {
21768                     cmd_set_event2_khr
21769                 } else {
21770                     ::std::mem::transmute(val)
21771                 }
21772             },
21773             cmd_reset_event2_khr: unsafe {
21774                 unsafe extern "system" fn cmd_reset_event2_khr(
21775                     _command_buffer: CommandBuffer,
21776                     _event: Event,
21777                     _stage_mask: PipelineStageFlags2KHR,
21778                 ) {
21779                     panic!(concat!("Unable to load ", stringify!(cmd_reset_event2_khr)))
21780                 }
21781                 let cname =
21782                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdResetEvent2KHR\0");
21783                 let val = _f(cname);
21784                 if val.is_null() {
21785                     cmd_reset_event2_khr
21786                 } else {
21787                     ::std::mem::transmute(val)
21788                 }
21789             },
21790             cmd_wait_events2_khr: unsafe {
21791                 unsafe extern "system" fn cmd_wait_events2_khr(
21792                     _command_buffer: CommandBuffer,
21793                     _event_count: u32,
21794                     _p_events: *const Event,
21795                     _p_dependency_infos: *const DependencyInfoKHR,
21796                 ) {
21797                     panic!(concat!("Unable to load ", stringify!(cmd_wait_events2_khr)))
21798                 }
21799                 let cname =
21800                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdWaitEvents2KHR\0");
21801                 let val = _f(cname);
21802                 if val.is_null() {
21803                     cmd_wait_events2_khr
21804                 } else {
21805                     ::std::mem::transmute(val)
21806                 }
21807             },
21808             cmd_pipeline_barrier2_khr: unsafe {
21809                 unsafe extern "system" fn cmd_pipeline_barrier2_khr(
21810                     _command_buffer: CommandBuffer,
21811                     _p_dependency_info: *const DependencyInfoKHR,
21812                 ) {
21813                     panic!(concat!(
21814                         "Unable to load ",
21815                         stringify!(cmd_pipeline_barrier2_khr)
21816                     ))
21817                 }
21818                 let cname =
21819                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdPipelineBarrier2KHR\0");
21820                 let val = _f(cname);
21821                 if val.is_null() {
21822                     cmd_pipeline_barrier2_khr
21823                 } else {
21824                     ::std::mem::transmute(val)
21825                 }
21826             },
21827             cmd_write_timestamp2_khr: unsafe {
21828                 unsafe extern "system" fn cmd_write_timestamp2_khr(
21829                     _command_buffer: CommandBuffer,
21830                     _stage: PipelineStageFlags2KHR,
21831                     _query_pool: QueryPool,
21832                     _query: u32,
21833                 ) {
21834                     panic!(concat!(
21835                         "Unable to load ",
21836                         stringify!(cmd_write_timestamp2_khr)
21837                     ))
21838                 }
21839                 let cname =
21840                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdWriteTimestamp2KHR\0");
21841                 let val = _f(cname);
21842                 if val.is_null() {
21843                     cmd_write_timestamp2_khr
21844                 } else {
21845                     ::std::mem::transmute(val)
21846                 }
21847             },
21848             queue_submit2_khr: unsafe {
21849                 unsafe extern "system" fn queue_submit2_khr(
21850                     _queue: Queue,
21851                     _submit_count: u32,
21852                     _p_submits: *const SubmitInfo2KHR,
21853                     _fence: Fence,
21854                 ) -> Result {
21855                     panic!(concat!("Unable to load ", stringify!(queue_submit2_khr)))
21856                 }
21857                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkQueueSubmit2KHR\0");
21858                 let val = _f(cname);
21859                 if val.is_null() {
21860                     queue_submit2_khr
21861                 } else {
21862                     ::std::mem::transmute(val)
21863                 }
21864             },
21865             cmd_write_buffer_marker2_amd: unsafe {
21866                 unsafe extern "system" fn cmd_write_buffer_marker2_amd(
21867                     _command_buffer: CommandBuffer,
21868                     _stage: PipelineStageFlags2KHR,
21869                     _dst_buffer: Buffer,
21870                     _dst_offset: DeviceSize,
21871                     _marker: u32,
21872                 ) {
21873                     panic!(concat!(
21874                         "Unable to load ",
21875                         stringify!(cmd_write_buffer_marker2_amd)
21876                     ))
21877                 }
21878                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
21879                     b"vkCmdWriteBufferMarker2AMD\0",
21880                 );
21881                 let val = _f(cname);
21882                 if val.is_null() {
21883                     cmd_write_buffer_marker2_amd
21884                 } else {
21885                     ::std::mem::transmute(val)
21886                 }
21887             },
21888             get_queue_checkpoint_data2_nv: unsafe {
21889                 unsafe extern "system" fn get_queue_checkpoint_data2_nv(
21890                     _queue: Queue,
21891                     _p_checkpoint_data_count: *mut u32,
21892                     _p_checkpoint_data: *mut CheckpointData2NV,
21893                 ) {
21894                     panic!(concat!(
21895                         "Unable to load ",
21896                         stringify!(get_queue_checkpoint_data2_nv)
21897                     ))
21898                 }
21899                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
21900                     b"vkGetQueueCheckpointData2NV\0",
21901                 );
21902                 let val = _f(cname);
21903                 if val.is_null() {
21904                     get_queue_checkpoint_data2_nv
21905                 } else {
21906                     ::std::mem::transmute(val)
21907                 }
21908             },
21909         }
21910     }
21911     #[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, )21912     pub unsafe fn cmd_set_event2_khr(
21913         &self,
21914         command_buffer: CommandBuffer,
21915         event: Event,
21916         p_dependency_info: *const DependencyInfoKHR,
21917     ) {
21918         (self.cmd_set_event2_khr)(command_buffer, event, p_dependency_info)
21919     }
21920     #[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, )21921     pub unsafe fn cmd_reset_event2_khr(
21922         &self,
21923         command_buffer: CommandBuffer,
21924         event: Event,
21925         stage_mask: PipelineStageFlags2KHR,
21926     ) {
21927         (self.cmd_reset_event2_khr)(command_buffer, event, stage_mask)
21928     }
21929     #[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, )21930     pub unsafe fn cmd_wait_events2_khr(
21931         &self,
21932         command_buffer: CommandBuffer,
21933         event_count: u32,
21934         p_events: *const Event,
21935         p_dependency_infos: *const DependencyInfoKHR,
21936     ) {
21937         (self.cmd_wait_events2_khr)(command_buffer, event_count, p_events, p_dependency_infos)
21938     }
21939     #[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, )21940     pub unsafe fn cmd_pipeline_barrier2_khr(
21941         &self,
21942         command_buffer: CommandBuffer,
21943         p_dependency_info: *const DependencyInfoKHR,
21944     ) {
21945         (self.cmd_pipeline_barrier2_khr)(command_buffer, p_dependency_info)
21946     }
21947     #[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, )21948     pub unsafe fn cmd_write_timestamp2_khr(
21949         &self,
21950         command_buffer: CommandBuffer,
21951         stage: PipelineStageFlags2KHR,
21952         query_pool: QueryPool,
21953         query: u32,
21954     ) {
21955         (self.cmd_write_timestamp2_khr)(command_buffer, stage, query_pool, query)
21956     }
21957     #[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, ) -> Result21958     pub unsafe fn queue_submit2_khr(
21959         &self,
21960         queue: Queue,
21961         submit_count: u32,
21962         p_submits: *const SubmitInfo2KHR,
21963         fence: Fence,
21964     ) -> Result {
21965         (self.queue_submit2_khr)(queue, submit_count, p_submits, fence)
21966     }
21967     #[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, )21968     pub unsafe fn cmd_write_buffer_marker2_amd(
21969         &self,
21970         command_buffer: CommandBuffer,
21971         stage: PipelineStageFlags2KHR,
21972         dst_buffer: Buffer,
21973         dst_offset: DeviceSize,
21974         marker: u32,
21975     ) {
21976         (self.cmd_write_buffer_marker2_amd)(command_buffer, stage, dst_buffer, dst_offset, marker)
21977     }
21978     #[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, )21979     pub unsafe fn get_queue_checkpoint_data2_nv(
21980         &self,
21981         queue: Queue,
21982         p_checkpoint_data_count: *mut u32,
21983         p_checkpoint_data: *mut CheckpointData2NV,
21984     ) {
21985         (self.get_queue_checkpoint_data2_nv)(queue, p_checkpoint_data_count, p_checkpoint_data)
21986     }
21987 }
21988 #[doc = "Generated from 'VK_KHR_synchronization2'"]
21989 impl StructureType {
21990     pub const MEMORY_BARRIER_2_KHR: Self = Self(1_000_314_000);
21991 }
21992 #[doc = "Generated from 'VK_KHR_synchronization2'"]
21993 impl StructureType {
21994     pub const BUFFER_MEMORY_BARRIER_2_KHR: Self = Self(1_000_314_001);
21995 }
21996 #[doc = "Generated from 'VK_KHR_synchronization2'"]
21997 impl StructureType {
21998     pub const IMAGE_MEMORY_BARRIER_2_KHR: Self = Self(1_000_314_002);
21999 }
22000 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22001 impl StructureType {
22002     pub const DEPENDENCY_INFO_KHR: Self = Self(1_000_314_003);
22003 }
22004 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22005 impl StructureType {
22006     pub const SUBMIT_INFO_2_KHR: Self = Self(1_000_314_004);
22007 }
22008 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22009 impl StructureType {
22010     pub const SEMAPHORE_SUBMIT_INFO_KHR: Self = Self(1_000_314_005);
22011 }
22012 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22013 impl StructureType {
22014     pub const COMMAND_BUFFER_SUBMIT_INFO_KHR: Self = Self(1_000_314_006);
22015 }
22016 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22017 impl StructureType {
22018     pub const PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR: Self = Self(1_000_314_007);
22019 }
22020 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22021 impl EventCreateFlags {
22022     pub const DEVICE_ONLY_KHR: Self = Self(0b1);
22023 }
22024 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22025 impl ImageLayout {
22026     pub const READ_ONLY_OPTIMAL_KHR: Self = Self(1_000_314_000);
22027 }
22028 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22029 impl ImageLayout {
22030     pub const ATTACHMENT_OPTIMAL_KHR: Self = Self(1_000_314_001);
22031 }
22032 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22033 impl PipelineStageFlags {
22034     pub const NONE_KHR: Self = Self(0);
22035 }
22036 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22037 impl AccessFlags {
22038     pub const NONE_KHR: Self = Self(0);
22039 }
22040 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22041 impl PipelineStageFlags2KHR {
22042     pub const TRANSFORM_FEEDBACK_EXT: Self = Self(0b1_0000_0000_0000_0000_0000_0000);
22043 }
22044 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22045 impl AccessFlags2KHR {
22046     pub const TRANSFORM_FEEDBACK_WRITE_EXT: Self = Self(0b10_0000_0000_0000_0000_0000_0000);
22047 }
22048 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22049 impl AccessFlags2KHR {
22050     pub const TRANSFORM_FEEDBACK_COUNTER_READ_EXT: Self = Self(0b100_0000_0000_0000_0000_0000_0000);
22051 }
22052 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22053 impl AccessFlags2KHR {
22054     pub const TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT: Self =
22055         Self(0b1000_0000_0000_0000_0000_0000_0000);
22056 }
22057 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22058 impl PipelineStageFlags2KHR {
22059     pub const CONDITIONAL_RENDERING_EXT: Self = Self(0b100_0000_0000_0000_0000);
22060 }
22061 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22062 impl AccessFlags2KHR {
22063     pub const CONDITIONAL_RENDERING_READ_EXT: Self = Self(0b1_0000_0000_0000_0000_0000);
22064 }
22065 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22066 impl PipelineStageFlags2KHR {
22067     pub const COMMAND_PREPROCESS_NV: Self = Self(0b10_0000_0000_0000_0000);
22068 }
22069 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22070 impl AccessFlags2KHR {
22071     pub const COMMAND_PREPROCESS_READ_NV: Self = Self(0b10_0000_0000_0000_0000);
22072 }
22073 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22074 impl AccessFlags2KHR {
22075     pub const COMMAND_PREPROCESS_WRITE_NV: Self = Self(0b100_0000_0000_0000_0000);
22076 }
22077 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22078 impl PipelineStageFlags2KHR {
22079     pub const FRAGMENT_SHADING_RATE_ATTACHMENT: Self = Self(0b100_0000_0000_0000_0000_0000);
22080 }
22081 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22082 impl AccessFlags2KHR {
22083     pub const FRAGMENT_SHADING_RATE_ATTACHMENT_READ: Self = Self(0b1000_0000_0000_0000_0000_0000);
22084 }
22085 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22086 impl PipelineStageFlags2KHR {
22087     pub const SHADING_RATE_IMAGE_NV: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT;
22088 }
22089 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22090 impl AccessFlags2KHR {
22091     pub const SHADING_RATE_IMAGE_READ_NV: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT_READ;
22092 }
22093 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22094 impl PipelineStageFlags2KHR {
22095     pub const ACCELERATION_STRUCTURE_BUILD: Self = Self(0b10_0000_0000_0000_0000_0000_0000);
22096 }
22097 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22098 impl AccessFlags2KHR {
22099     pub const ACCELERATION_STRUCTURE_READ: Self = Self(0b10_0000_0000_0000_0000_0000);
22100 }
22101 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22102 impl AccessFlags2KHR {
22103     pub const ACCELERATION_STRUCTURE_WRITE: Self = Self(0b100_0000_0000_0000_0000_0000);
22104 }
22105 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22106 impl PipelineStageFlags2KHR {
22107     pub const RAY_TRACING_SHADER: Self = Self(0b10_0000_0000_0000_0000_0000);
22108 }
22109 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22110 impl PipelineStageFlags2KHR {
22111     pub const RAY_TRACING_SHADER_NV: Self = Self::RAY_TRACING_SHADER;
22112 }
22113 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22114 impl PipelineStageFlags2KHR {
22115     pub const ACCELERATION_STRUCTURE_BUILD_NV: Self = Self::ACCELERATION_STRUCTURE_BUILD;
22116 }
22117 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22118 impl AccessFlags2KHR {
22119     pub const ACCELERATION_STRUCTURE_READ_NV: Self = Self::ACCELERATION_STRUCTURE_READ;
22120 }
22121 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22122 impl AccessFlags2KHR {
22123     pub const ACCELERATION_STRUCTURE_WRITE_NV: Self = Self::ACCELERATION_STRUCTURE_WRITE;
22124 }
22125 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22126 impl PipelineStageFlags2KHR {
22127     pub const FRAGMENT_DENSITY_PROCESS_EXT: Self = Self(0b1000_0000_0000_0000_0000_0000);
22128 }
22129 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22130 impl AccessFlags2KHR {
22131     pub const FRAGMENT_DENSITY_MAP_READ_EXT: Self = Self(0b1_0000_0000_0000_0000_0000_0000);
22132 }
22133 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22134 impl AccessFlags2KHR {
22135     pub const COLOR_ATTACHMENT_READ_NONCOHERENT_EXT: Self = Self(0b1000_0000_0000_0000_0000);
22136 }
22137 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22138 impl PipelineStageFlags2KHR {
22139     pub const TASK_SHADER_NV: Self = Self(0b1000_0000_0000_0000_0000);
22140 }
22141 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22142 impl PipelineStageFlags2KHR {
22143     pub const MESH_SHADER_NV: Self = Self(0b1_0000_0000_0000_0000_0000);
22144 }
22145 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22146 impl StructureType {
22147     pub const QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: Self = Self(1_000_314_008);
22148 }
22149 #[doc = "Generated from 'VK_KHR_synchronization2'"]
22150 impl StructureType {
22151     pub const CHECKPOINT_DATA_2_NV: Self = Self(1_000_314_009);
22152 }
22153 impl AmdExtension316Fn {
name() -> &'static ::std::ffi::CStr22154     pub fn name() -> &'static ::std::ffi::CStr {
22155         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_316\0")
22156             .expect("Wrong extension string")
22157     }
22158     pub const SPEC_VERSION: u32 = 0u32;
22159 }
22160 #[derive(Clone)]
22161 pub struct AmdExtension316Fn {}
22162 unsafe impl Send for AmdExtension316Fn {}
22163 unsafe impl Sync for AmdExtension316Fn {}
22164 impl AmdExtension316Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22165     pub fn load<F>(mut _f: F) -> Self
22166     where
22167         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22168     {
22169         AmdExtension316Fn {}
22170     }
22171 }
22172 impl AmdExtension317Fn {
name() -> &'static ::std::ffi::CStr22173     pub fn name() -> &'static ::std::ffi::CStr {
22174         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_317\0")
22175             .expect("Wrong extension string")
22176     }
22177     pub const SPEC_VERSION: u32 = 0u32;
22178 }
22179 #[derive(Clone)]
22180 pub struct AmdExtension317Fn {}
22181 unsafe impl Send for AmdExtension317Fn {}
22182 unsafe impl Sync for AmdExtension317Fn {}
22183 impl AmdExtension317Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22184     pub fn load<F>(mut _f: F) -> Self
22185     where
22186         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22187     {
22188         AmdExtension317Fn {}
22189     }
22190 }
22191 impl AmdExtension318Fn {
name() -> &'static ::std::ffi::CStr22192     pub fn name() -> &'static ::std::ffi::CStr {
22193         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_318\0")
22194             .expect("Wrong extension string")
22195     }
22196     pub const SPEC_VERSION: u32 = 0u32;
22197 }
22198 #[derive(Clone)]
22199 pub struct AmdExtension318Fn {}
22200 unsafe impl Send for AmdExtension318Fn {}
22201 unsafe impl Sync for AmdExtension318Fn {}
22202 impl AmdExtension318Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22203     pub fn load<F>(mut _f: F) -> Self
22204     where
22205         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22206     {
22207         AmdExtension318Fn {}
22208     }
22209 }
22210 impl AmdExtension319Fn {
name() -> &'static ::std::ffi::CStr22211     pub fn name() -> &'static ::std::ffi::CStr {
22212         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_319\0")
22213             .expect("Wrong extension string")
22214     }
22215     pub const SPEC_VERSION: u32 = 0u32;
22216 }
22217 #[derive(Clone)]
22218 pub struct AmdExtension319Fn {}
22219 unsafe impl Send for AmdExtension319Fn {}
22220 unsafe impl Sync for AmdExtension319Fn {}
22221 impl AmdExtension319Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22222     pub fn load<F>(mut _f: F) -> Self
22223     where
22224         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22225     {
22226         AmdExtension319Fn {}
22227     }
22228 }
22229 #[doc = "Generated from 'VK_AMD_extension_319'"]
22230 impl DescriptorSetLayoutCreateFlags {
22231     pub const RESERVED_3_AMD: Self = Self(0b1000);
22232 }
22233 #[doc = "Generated from 'VK_AMD_extension_319'"]
22234 impl PipelineLayoutCreateFlags {
22235     pub const RESERVED_0_AMD: Self = Self(0b1);
22236 }
22237 impl AmdExtension320Fn {
name() -> &'static ::std::ffi::CStr22238     pub fn name() -> &'static ::std::ffi::CStr {
22239         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_320\0")
22240             .expect("Wrong extension string")
22241     }
22242     pub const SPEC_VERSION: u32 = 0u32;
22243 }
22244 #[derive(Clone)]
22245 pub struct AmdExtension320Fn {}
22246 unsafe impl Send for AmdExtension320Fn {}
22247 unsafe impl Sync for AmdExtension320Fn {}
22248 impl AmdExtension320Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22249     pub fn load<F>(mut _f: F) -> Self
22250     where
22251         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22252     {
22253         AmdExtension320Fn {}
22254     }
22255 }
22256 impl AmdExtension321Fn {
name() -> &'static ::std::ffi::CStr22257     pub fn name() -> &'static ::std::ffi::CStr {
22258         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_321\0")
22259             .expect("Wrong extension string")
22260     }
22261     pub const SPEC_VERSION: u32 = 0u32;
22262 }
22263 #[derive(Clone)]
22264 pub struct AmdExtension321Fn {}
22265 unsafe impl Send for AmdExtension321Fn {}
22266 unsafe impl Sync for AmdExtension321Fn {}
22267 impl AmdExtension321Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22268     pub fn load<F>(mut _f: F) -> Self
22269     where
22270         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22271     {
22272         AmdExtension321Fn {}
22273     }
22274 }
22275 #[doc = "Generated from 'VK_AMD_extension_321'"]
22276 impl PipelineCreateFlags {
22277     pub const RESERVED_23_AMD: Self = Self(0b1000_0000_0000_0000_0000_0000);
22278 }
22279 #[doc = "Generated from 'VK_AMD_extension_321'"]
22280 impl PipelineCreateFlags {
22281     pub const RESERVED_10_AMD: Self = Self(0b100_0000_0000);
22282 }
22283 impl AmdExtension322Fn {
name() -> &'static ::std::ffi::CStr22284     pub fn name() -> &'static ::std::ffi::CStr {
22285         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_322\0")
22286             .expect("Wrong extension string")
22287     }
22288     pub const SPEC_VERSION: u32 = 0u32;
22289 }
22290 #[derive(Clone)]
22291 pub struct AmdExtension322Fn {}
22292 unsafe impl Send for AmdExtension322Fn {}
22293 unsafe impl Sync for AmdExtension322Fn {}
22294 impl AmdExtension322Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22295     pub fn load<F>(mut _f: F) -> Self
22296     where
22297         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22298     {
22299         AmdExtension322Fn {}
22300     }
22301 }
22302 impl AmdExtension323Fn {
name() -> &'static ::std::ffi::CStr22303     pub fn name() -> &'static ::std::ffi::CStr {
22304         ::std::ffi::CStr::from_bytes_with_nul(b"VK_AMD_extension_323\0")
22305             .expect("Wrong extension string")
22306     }
22307     pub const SPEC_VERSION: u32 = 0u32;
22308 }
22309 #[derive(Clone)]
22310 pub struct AmdExtension323Fn {}
22311 unsafe impl Send for AmdExtension323Fn {}
22312 unsafe impl Sync for AmdExtension323Fn {}
22313 impl AmdExtension323Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22314     pub fn load<F>(mut _f: F) -> Self
22315     where
22316         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22317     {
22318         AmdExtension323Fn {}
22319     }
22320 }
22321 impl KhrShaderSubgroupUniformControlFlowFn {
name() -> &'static ::std::ffi::CStr22322     pub fn name() -> &'static ::std::ffi::CStr {
22323         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_shader_subgroup_uniform_control_flow\0")
22324             .expect("Wrong extension string")
22325     }
22326     pub const SPEC_VERSION: u32 = 1u32;
22327 }
22328 #[derive(Clone)]
22329 pub struct KhrShaderSubgroupUniformControlFlowFn {}
22330 unsafe impl Send for KhrShaderSubgroupUniformControlFlowFn {}
22331 unsafe impl Sync for KhrShaderSubgroupUniformControlFlowFn {}
22332 impl KhrShaderSubgroupUniformControlFlowFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22333     pub fn load<F>(mut _f: F) -> Self
22334     where
22335         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22336     {
22337         KhrShaderSubgroupUniformControlFlowFn {}
22338     }
22339 }
22340 #[doc = "Generated from 'VK_KHR_shader_subgroup_uniform_control_flow'"]
22341 impl StructureType {
22342     pub const PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR: Self =
22343         Self(1_000_323_000);
22344 }
22345 impl KhrExtension325Fn {
name() -> &'static ::std::ffi::CStr22346     pub fn name() -> &'static ::std::ffi::CStr {
22347         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_325\0")
22348             .expect("Wrong extension string")
22349     }
22350     pub const SPEC_VERSION: u32 = 0u32;
22351 }
22352 #[derive(Clone)]
22353 pub struct KhrExtension325Fn {}
22354 unsafe impl Send for KhrExtension325Fn {}
22355 unsafe impl Sync for KhrExtension325Fn {}
22356 impl KhrExtension325Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22357     pub fn load<F>(mut _f: F) -> Self
22358     where
22359         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22360     {
22361         KhrExtension325Fn {}
22362     }
22363 }
22364 impl KhrZeroInitializeWorkgroupMemoryFn {
name() -> &'static ::std::ffi::CStr22365     pub fn name() -> &'static ::std::ffi::CStr {
22366         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_zero_initialize_workgroup_memory\0")
22367             .expect("Wrong extension string")
22368     }
22369     pub const SPEC_VERSION: u32 = 1u32;
22370 }
22371 #[derive(Clone)]
22372 pub struct KhrZeroInitializeWorkgroupMemoryFn {}
22373 unsafe impl Send for KhrZeroInitializeWorkgroupMemoryFn {}
22374 unsafe impl Sync for KhrZeroInitializeWorkgroupMemoryFn {}
22375 impl KhrZeroInitializeWorkgroupMemoryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22376     pub fn load<F>(mut _f: F) -> Self
22377     where
22378         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22379     {
22380         KhrZeroInitializeWorkgroupMemoryFn {}
22381     }
22382 }
22383 #[doc = "Generated from 'VK_KHR_zero_initialize_workgroup_memory'"]
22384 impl StructureType {
22385     pub const PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR: Self =
22386         Self(1_000_325_000);
22387 }
22388 impl NvFragmentShadingRateEnumsFn {
name() -> &'static ::std::ffi::CStr22389     pub fn name() -> &'static ::std::ffi::CStr {
22390         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_fragment_shading_rate_enums\0")
22391             .expect("Wrong extension string")
22392     }
22393     pub const SPEC_VERSION: u32 = 1u32;
22394 }
22395 #[allow(non_camel_case_types)]
22396 pub type PFN_vkCmdSetFragmentShadingRateEnumNV = unsafe extern "system" fn(
22397     command_buffer: CommandBuffer,
22398     shading_rate: FragmentShadingRateNV,
22399     combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2],
22400 );
22401 #[derive(Clone)]
22402 pub struct NvFragmentShadingRateEnumsFn {
22403     pub cmd_set_fragment_shading_rate_enum_nv: PFN_vkCmdSetFragmentShadingRateEnumNV,
22404 }
22405 unsafe impl Send for NvFragmentShadingRateEnumsFn {}
22406 unsafe impl Sync for NvFragmentShadingRateEnumsFn {}
22407 impl NvFragmentShadingRateEnumsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22408     pub fn load<F>(mut _f: F) -> Self
22409     where
22410         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22411     {
22412         NvFragmentShadingRateEnumsFn {
22413             cmd_set_fragment_shading_rate_enum_nv: unsafe {
22414                 unsafe extern "system" fn cmd_set_fragment_shading_rate_enum_nv(
22415                     _command_buffer: CommandBuffer,
22416                     _shading_rate: FragmentShadingRateNV,
22417                     _combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2],
22418                 ) {
22419                     panic!(concat!(
22420                         "Unable to load ",
22421                         stringify!(cmd_set_fragment_shading_rate_enum_nv)
22422                     ))
22423                 }
22424                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22425                     b"vkCmdSetFragmentShadingRateEnumNV\0",
22426                 );
22427                 let val = _f(cname);
22428                 if val.is_null() {
22429                     cmd_set_fragment_shading_rate_enum_nv
22430                 } else {
22431                     ::std::mem::transmute(val)
22432                 }
22433             },
22434         }
22435     }
22436     #[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], )22437     pub unsafe fn cmd_set_fragment_shading_rate_enum_nv(
22438         &self,
22439         command_buffer: CommandBuffer,
22440         shading_rate: FragmentShadingRateNV,
22441         combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2],
22442     ) {
22443         (self.cmd_set_fragment_shading_rate_enum_nv)(command_buffer, shading_rate, combiner_ops)
22444     }
22445 }
22446 #[doc = "Generated from 'VK_NV_fragment_shading_rate_enums'"]
22447 impl StructureType {
22448     pub const PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV: Self = Self(1_000_326_000);
22449 }
22450 #[doc = "Generated from 'VK_NV_fragment_shading_rate_enums'"]
22451 impl StructureType {
22452     pub const PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV: Self = Self(1_000_326_001);
22453 }
22454 #[doc = "Generated from 'VK_NV_fragment_shading_rate_enums'"]
22455 impl StructureType {
22456     pub const PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV: Self = Self(1_000_326_002);
22457 }
22458 impl NvRayTracingMotionBlurFn {
name() -> &'static ::std::ffi::CStr22459     pub fn name() -> &'static ::std::ffi::CStr {
22460         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_ray_tracing_motion_blur\0")
22461             .expect("Wrong extension string")
22462     }
22463     pub const SPEC_VERSION: u32 = 1u32;
22464 }
22465 #[derive(Clone)]
22466 pub struct NvRayTracingMotionBlurFn {}
22467 unsafe impl Send for NvRayTracingMotionBlurFn {}
22468 unsafe impl Sync for NvRayTracingMotionBlurFn {}
22469 impl NvRayTracingMotionBlurFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22470     pub fn load<F>(mut _f: F) -> Self
22471     where
22472         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22473     {
22474         NvRayTracingMotionBlurFn {}
22475     }
22476 }
22477 #[doc = "Generated from 'VK_NV_ray_tracing_motion_blur'"]
22478 impl StructureType {
22479     pub const ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV: Self = Self(1_000_327_000);
22480 }
22481 #[doc = "Generated from 'VK_NV_ray_tracing_motion_blur'"]
22482 impl StructureType {
22483     pub const PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV: Self = Self(1_000_327_001);
22484 }
22485 #[doc = "Generated from 'VK_NV_ray_tracing_motion_blur'"]
22486 impl StructureType {
22487     pub const ACCELERATION_STRUCTURE_MOTION_INFO_NV: Self = Self(1_000_327_002);
22488 }
22489 #[doc = "Generated from 'VK_NV_ray_tracing_motion_blur'"]
22490 impl BuildAccelerationStructureFlagsKHR {
22491     pub const MOTION_NV: Self = Self(0b10_0000);
22492 }
22493 #[doc = "Generated from 'VK_NV_ray_tracing_motion_blur'"]
22494 impl AccelerationStructureCreateFlagsKHR {
22495     pub const MOTION_NV: Self = Self(0b100);
22496 }
22497 #[doc = "Generated from 'VK_NV_ray_tracing_motion_blur'"]
22498 impl PipelineCreateFlags {
22499     pub const RAY_TRACING_ALLOW_MOTION_NV: Self = Self(0b1_0000_0000_0000_0000_0000);
22500 }
22501 impl NvExtension329Fn {
name() -> &'static ::std::ffi::CStr22502     pub fn name() -> &'static ::std::ffi::CStr {
22503         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_extension_329\0")
22504             .expect("Wrong extension string")
22505     }
22506     pub const SPEC_VERSION: u32 = 0u32;
22507 }
22508 #[derive(Clone)]
22509 pub struct NvExtension329Fn {}
22510 unsafe impl Send for NvExtension329Fn {}
22511 unsafe impl Sync for NvExtension329Fn {}
22512 impl NvExtension329Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22513     pub fn load<F>(mut _f: F) -> Self
22514     where
22515         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22516     {
22517         NvExtension329Fn {}
22518     }
22519 }
22520 impl NvExtension330Fn {
name() -> &'static ::std::ffi::CStr22521     pub fn name() -> &'static ::std::ffi::CStr {
22522         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_extension_330\0")
22523             .expect("Wrong extension string")
22524     }
22525     pub const SPEC_VERSION: u32 = 0u32;
22526 }
22527 #[derive(Clone)]
22528 pub struct NvExtension330Fn {}
22529 unsafe impl Send for NvExtension330Fn {}
22530 unsafe impl Sync for NvExtension330Fn {}
22531 impl NvExtension330Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22532     pub fn load<F>(mut _f: F) -> Self
22533     where
22534         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22535     {
22536         NvExtension330Fn {}
22537     }
22538 }
22539 impl ExtYcbcr2plane444FormatsFn {
name() -> &'static ::std::ffi::CStr22540     pub fn name() -> &'static ::std::ffi::CStr {
22541         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_ycbcr_2plane_444_formats\0")
22542             .expect("Wrong extension string")
22543     }
22544     pub const SPEC_VERSION: u32 = 1u32;
22545 }
22546 #[derive(Clone)]
22547 pub struct ExtYcbcr2plane444FormatsFn {}
22548 unsafe impl Send for ExtYcbcr2plane444FormatsFn {}
22549 unsafe impl Sync for ExtYcbcr2plane444FormatsFn {}
22550 impl ExtYcbcr2plane444FormatsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22551     pub fn load<F>(mut _f: F) -> Self
22552     where
22553         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22554     {
22555         ExtYcbcr2plane444FormatsFn {}
22556     }
22557 }
22558 #[doc = "Generated from 'VK_EXT_ycbcr_2plane_444_formats'"]
22559 impl StructureType {
22560     pub const PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: Self = Self(1_000_330_000);
22561 }
22562 #[doc = "Generated from 'VK_EXT_ycbcr_2plane_444_formats'"]
22563 impl Format {
22564     pub const G8_B8R8_2PLANE_444_UNORM_EXT: Self = Self(1_000_330_000);
22565 }
22566 #[doc = "Generated from 'VK_EXT_ycbcr_2plane_444_formats'"]
22567 impl Format {
22568     pub const G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT: Self = Self(1_000_330_001);
22569 }
22570 #[doc = "Generated from 'VK_EXT_ycbcr_2plane_444_formats'"]
22571 impl Format {
22572     pub const G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT: Self = Self(1_000_330_002);
22573 }
22574 #[doc = "Generated from 'VK_EXT_ycbcr_2plane_444_formats'"]
22575 impl Format {
22576     pub const G16_B16R16_2PLANE_444_UNORM_EXT: Self = Self(1_000_330_003);
22577 }
22578 impl NvExtension332Fn {
name() -> &'static ::std::ffi::CStr22579     pub fn name() -> &'static ::std::ffi::CStr {
22580         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_extension_332\0")
22581             .expect("Wrong extension string")
22582     }
22583     pub const SPEC_VERSION: u32 = 0u32;
22584 }
22585 #[derive(Clone)]
22586 pub struct NvExtension332Fn {}
22587 unsafe impl Send for NvExtension332Fn {}
22588 unsafe impl Sync for NvExtension332Fn {}
22589 impl NvExtension332Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22590     pub fn load<F>(mut _f: F) -> Self
22591     where
22592         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22593     {
22594         NvExtension332Fn {}
22595     }
22596 }
22597 impl ExtFragmentDensityMap2Fn {
name() -> &'static ::std::ffi::CStr22598     pub fn name() -> &'static ::std::ffi::CStr {
22599         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_fragment_density_map2\0")
22600             .expect("Wrong extension string")
22601     }
22602     pub const SPEC_VERSION: u32 = 1u32;
22603 }
22604 #[derive(Clone)]
22605 pub struct ExtFragmentDensityMap2Fn {}
22606 unsafe impl Send for ExtFragmentDensityMap2Fn {}
22607 unsafe impl Sync for ExtFragmentDensityMap2Fn {}
22608 impl ExtFragmentDensityMap2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22609     pub fn load<F>(mut _f: F) -> Self
22610     where
22611         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22612     {
22613         ExtFragmentDensityMap2Fn {}
22614     }
22615 }
22616 #[doc = "Generated from 'VK_EXT_fragment_density_map2'"]
22617 impl StructureType {
22618     pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT: Self = Self(1_000_332_000);
22619 }
22620 #[doc = "Generated from 'VK_EXT_fragment_density_map2'"]
22621 impl StructureType {
22622     pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT: Self = Self(1_000_332_001);
22623 }
22624 #[doc = "Generated from 'VK_EXT_fragment_density_map2'"]
22625 impl ImageViewCreateFlags {
22626     pub const FRAGMENT_DENSITY_MAP_DEFERRED_EXT: Self = Self(0b10);
22627 }
22628 impl QcomRotatedCopyCommandsFn {
name() -> &'static ::std::ffi::CStr22629     pub fn name() -> &'static ::std::ffi::CStr {
22630         ::std::ffi::CStr::from_bytes_with_nul(b"VK_QCOM_rotated_copy_commands\0")
22631             .expect("Wrong extension string")
22632     }
22633     pub const SPEC_VERSION: u32 = 1u32;
22634 }
22635 #[derive(Clone)]
22636 pub struct QcomRotatedCopyCommandsFn {}
22637 unsafe impl Send for QcomRotatedCopyCommandsFn {}
22638 unsafe impl Sync for QcomRotatedCopyCommandsFn {}
22639 impl QcomRotatedCopyCommandsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22640     pub fn load<F>(mut _f: F) -> Self
22641     where
22642         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22643     {
22644         QcomRotatedCopyCommandsFn {}
22645     }
22646 }
22647 #[doc = "Generated from 'VK_QCOM_rotated_copy_commands'"]
22648 impl StructureType {
22649     pub const COPY_COMMAND_TRANSFORM_INFO_QCOM: Self = Self(1_000_333_000);
22650 }
22651 impl KhrExtension335Fn {
name() -> &'static ::std::ffi::CStr22652     pub fn name() -> &'static ::std::ffi::CStr {
22653         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_335\0")
22654             .expect("Wrong extension string")
22655     }
22656     pub const SPEC_VERSION: u32 = 0u32;
22657 }
22658 #[derive(Clone)]
22659 pub struct KhrExtension335Fn {}
22660 unsafe impl Send for KhrExtension335Fn {}
22661 unsafe impl Sync for KhrExtension335Fn {}
22662 impl KhrExtension335Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22663     pub fn load<F>(mut _f: F) -> Self
22664     where
22665         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22666     {
22667         KhrExtension335Fn {}
22668     }
22669 }
22670 impl ExtImageRobustnessFn {
name() -> &'static ::std::ffi::CStr22671     pub fn name() -> &'static ::std::ffi::CStr {
22672         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_image_robustness\0")
22673             .expect("Wrong extension string")
22674     }
22675     pub const SPEC_VERSION: u32 = 1u32;
22676 }
22677 #[derive(Clone)]
22678 pub struct ExtImageRobustnessFn {}
22679 unsafe impl Send for ExtImageRobustnessFn {}
22680 unsafe impl Sync for ExtImageRobustnessFn {}
22681 impl ExtImageRobustnessFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22682     pub fn load<F>(mut _f: F) -> Self
22683     where
22684         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22685     {
22686         ExtImageRobustnessFn {}
22687     }
22688 }
22689 #[doc = "Generated from 'VK_EXT_image_robustness'"]
22690 impl StructureType {
22691     pub const PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT: Self = Self(1_000_335_000);
22692 }
22693 impl KhrWorkgroupMemoryExplicitLayoutFn {
name() -> &'static ::std::ffi::CStr22694     pub fn name() -> &'static ::std::ffi::CStr {
22695         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_workgroup_memory_explicit_layout\0")
22696             .expect("Wrong extension string")
22697     }
22698     pub const SPEC_VERSION: u32 = 1u32;
22699 }
22700 #[derive(Clone)]
22701 pub struct KhrWorkgroupMemoryExplicitLayoutFn {}
22702 unsafe impl Send for KhrWorkgroupMemoryExplicitLayoutFn {}
22703 unsafe impl Sync for KhrWorkgroupMemoryExplicitLayoutFn {}
22704 impl KhrWorkgroupMemoryExplicitLayoutFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22705     pub fn load<F>(mut _f: F) -> Self
22706     where
22707         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22708     {
22709         KhrWorkgroupMemoryExplicitLayoutFn {}
22710     }
22711 }
22712 #[doc = "Generated from 'VK_KHR_workgroup_memory_explicit_layout'"]
22713 impl StructureType {
22714     pub const PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR: Self =
22715         Self(1_000_336_000);
22716 }
22717 impl KhrCopyCommands2Fn {
name() -> &'static ::std::ffi::CStr22718     pub fn name() -> &'static ::std::ffi::CStr {
22719         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_copy_commands2\0")
22720             .expect("Wrong extension string")
22721     }
22722     pub const SPEC_VERSION: u32 = 1u32;
22723 }
22724 #[allow(non_camel_case_types)]
22725 pub type PFN_vkCmdCopyBuffer2KHR = unsafe extern "system" fn(
22726     command_buffer: CommandBuffer,
22727     p_copy_buffer_info: *const CopyBufferInfo2KHR,
22728 );
22729 #[allow(non_camel_case_types)]
22730 pub type PFN_vkCmdCopyImage2KHR = unsafe extern "system" fn(
22731     command_buffer: CommandBuffer,
22732     p_copy_image_info: *const CopyImageInfo2KHR,
22733 );
22734 #[allow(non_camel_case_types)]
22735 pub type PFN_vkCmdCopyBufferToImage2KHR = unsafe extern "system" fn(
22736     command_buffer: CommandBuffer,
22737     p_copy_buffer_to_image_info: *const CopyBufferToImageInfo2KHR,
22738 );
22739 #[allow(non_camel_case_types)]
22740 pub type PFN_vkCmdCopyImageToBuffer2KHR = unsafe extern "system" fn(
22741     command_buffer: CommandBuffer,
22742     p_copy_image_to_buffer_info: *const CopyImageToBufferInfo2KHR,
22743 );
22744 #[allow(non_camel_case_types)]
22745 pub type PFN_vkCmdBlitImage2KHR = unsafe extern "system" fn(
22746     command_buffer: CommandBuffer,
22747     p_blit_image_info: *const BlitImageInfo2KHR,
22748 );
22749 #[allow(non_camel_case_types)]
22750 pub type PFN_vkCmdResolveImage2KHR = unsafe extern "system" fn(
22751     command_buffer: CommandBuffer,
22752     p_resolve_image_info: *const ResolveImageInfo2KHR,
22753 );
22754 #[derive(Clone)]
22755 pub struct KhrCopyCommands2Fn {
22756     pub cmd_copy_buffer2_khr: PFN_vkCmdCopyBuffer2KHR,
22757     pub cmd_copy_image2_khr: PFN_vkCmdCopyImage2KHR,
22758     pub cmd_copy_buffer_to_image2_khr: PFN_vkCmdCopyBufferToImage2KHR,
22759     pub cmd_copy_image_to_buffer2_khr: PFN_vkCmdCopyImageToBuffer2KHR,
22760     pub cmd_blit_image2_khr: PFN_vkCmdBlitImage2KHR,
22761     pub cmd_resolve_image2_khr: PFN_vkCmdResolveImage2KHR,
22762 }
22763 unsafe impl Send for KhrCopyCommands2Fn {}
22764 unsafe impl Sync for KhrCopyCommands2Fn {}
22765 impl KhrCopyCommands2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22766     pub fn load<F>(mut _f: F) -> Self
22767     where
22768         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22769     {
22770         KhrCopyCommands2Fn {
22771             cmd_copy_buffer2_khr: unsafe {
22772                 unsafe extern "system" fn cmd_copy_buffer2_khr(
22773                     _command_buffer: CommandBuffer,
22774                     _p_copy_buffer_info: *const CopyBufferInfo2KHR,
22775                 ) {
22776                     panic!(concat!("Unable to load ", stringify!(cmd_copy_buffer2_khr)))
22777                 }
22778                 let cname =
22779                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyBuffer2KHR\0");
22780                 let val = _f(cname);
22781                 if val.is_null() {
22782                     cmd_copy_buffer2_khr
22783                 } else {
22784                     ::std::mem::transmute(val)
22785                 }
22786             },
22787             cmd_copy_image2_khr: unsafe {
22788                 unsafe extern "system" fn cmd_copy_image2_khr(
22789                     _command_buffer: CommandBuffer,
22790                     _p_copy_image_info: *const CopyImageInfo2KHR,
22791                 ) {
22792                     panic!(concat!("Unable to load ", stringify!(cmd_copy_image2_khr)))
22793                 }
22794                 let cname =
22795                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyImage2KHR\0");
22796                 let val = _f(cname);
22797                 if val.is_null() {
22798                     cmd_copy_image2_khr
22799                 } else {
22800                     ::std::mem::transmute(val)
22801                 }
22802             },
22803             cmd_copy_buffer_to_image2_khr: unsafe {
22804                 unsafe extern "system" fn cmd_copy_buffer_to_image2_khr(
22805                     _command_buffer: CommandBuffer,
22806                     _p_copy_buffer_to_image_info: *const CopyBufferToImageInfo2KHR,
22807                 ) {
22808                     panic!(concat!(
22809                         "Unable to load ",
22810                         stringify!(cmd_copy_buffer_to_image2_khr)
22811                     ))
22812                 }
22813                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22814                     b"vkCmdCopyBufferToImage2KHR\0",
22815                 );
22816                 let val = _f(cname);
22817                 if val.is_null() {
22818                     cmd_copy_buffer_to_image2_khr
22819                 } else {
22820                     ::std::mem::transmute(val)
22821                 }
22822             },
22823             cmd_copy_image_to_buffer2_khr: unsafe {
22824                 unsafe extern "system" fn cmd_copy_image_to_buffer2_khr(
22825                     _command_buffer: CommandBuffer,
22826                     _p_copy_image_to_buffer_info: *const CopyImageToBufferInfo2KHR,
22827                 ) {
22828                     panic!(concat!(
22829                         "Unable to load ",
22830                         stringify!(cmd_copy_image_to_buffer2_khr)
22831                     ))
22832                 }
22833                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22834                     b"vkCmdCopyImageToBuffer2KHR\0",
22835                 );
22836                 let val = _f(cname);
22837                 if val.is_null() {
22838                     cmd_copy_image_to_buffer2_khr
22839                 } else {
22840                     ::std::mem::transmute(val)
22841                 }
22842             },
22843             cmd_blit_image2_khr: unsafe {
22844                 unsafe extern "system" fn cmd_blit_image2_khr(
22845                     _command_buffer: CommandBuffer,
22846                     _p_blit_image_info: *const BlitImageInfo2KHR,
22847                 ) {
22848                     panic!(concat!("Unable to load ", stringify!(cmd_blit_image2_khr)))
22849                 }
22850                 let cname =
22851                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdBlitImage2KHR\0");
22852                 let val = _f(cname);
22853                 if val.is_null() {
22854                     cmd_blit_image2_khr
22855                 } else {
22856                     ::std::mem::transmute(val)
22857                 }
22858             },
22859             cmd_resolve_image2_khr: unsafe {
22860                 unsafe extern "system" fn cmd_resolve_image2_khr(
22861                     _command_buffer: CommandBuffer,
22862                     _p_resolve_image_info: *const ResolveImageInfo2KHR,
22863                 ) {
22864                     panic!(concat!(
22865                         "Unable to load ",
22866                         stringify!(cmd_resolve_image2_khr)
22867                     ))
22868                 }
22869                 let cname =
22870                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdResolveImage2KHR\0");
22871                 let val = _f(cname);
22872                 if val.is_null() {
22873                     cmd_resolve_image2_khr
22874                 } else {
22875                     ::std::mem::transmute(val)
22876                 }
22877             },
22878         }
22879     }
22880     #[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, )22881     pub unsafe fn cmd_copy_buffer2_khr(
22882         &self,
22883         command_buffer: CommandBuffer,
22884         p_copy_buffer_info: *const CopyBufferInfo2KHR,
22885     ) {
22886         (self.cmd_copy_buffer2_khr)(command_buffer, p_copy_buffer_info)
22887     }
22888     #[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, )22889     pub unsafe fn cmd_copy_image2_khr(
22890         &self,
22891         command_buffer: CommandBuffer,
22892         p_copy_image_info: *const CopyImageInfo2KHR,
22893     ) {
22894         (self.cmd_copy_image2_khr)(command_buffer, p_copy_image_info)
22895     }
22896     #[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, )22897     pub unsafe fn cmd_copy_buffer_to_image2_khr(
22898         &self,
22899         command_buffer: CommandBuffer,
22900         p_copy_buffer_to_image_info: *const CopyBufferToImageInfo2KHR,
22901     ) {
22902         (self.cmd_copy_buffer_to_image2_khr)(command_buffer, p_copy_buffer_to_image_info)
22903     }
22904     #[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, )22905     pub unsafe fn cmd_copy_image_to_buffer2_khr(
22906         &self,
22907         command_buffer: CommandBuffer,
22908         p_copy_image_to_buffer_info: *const CopyImageToBufferInfo2KHR,
22909     ) {
22910         (self.cmd_copy_image_to_buffer2_khr)(command_buffer, p_copy_image_to_buffer_info)
22911     }
22912     #[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, )22913     pub unsafe fn cmd_blit_image2_khr(
22914         &self,
22915         command_buffer: CommandBuffer,
22916         p_blit_image_info: *const BlitImageInfo2KHR,
22917     ) {
22918         (self.cmd_blit_image2_khr)(command_buffer, p_blit_image_info)
22919     }
22920     #[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, )22921     pub unsafe fn cmd_resolve_image2_khr(
22922         &self,
22923         command_buffer: CommandBuffer,
22924         p_resolve_image_info: *const ResolveImageInfo2KHR,
22925     ) {
22926         (self.cmd_resolve_image2_khr)(command_buffer, p_resolve_image_info)
22927     }
22928 }
22929 #[doc = "Generated from 'VK_KHR_copy_commands2'"]
22930 impl StructureType {
22931     pub const COPY_BUFFER_INFO_2_KHR: Self = Self(1_000_337_000);
22932 }
22933 #[doc = "Generated from 'VK_KHR_copy_commands2'"]
22934 impl StructureType {
22935     pub const COPY_IMAGE_INFO_2_KHR: Self = Self(1_000_337_001);
22936 }
22937 #[doc = "Generated from 'VK_KHR_copy_commands2'"]
22938 impl StructureType {
22939     pub const COPY_BUFFER_TO_IMAGE_INFO_2_KHR: Self = Self(1_000_337_002);
22940 }
22941 #[doc = "Generated from 'VK_KHR_copy_commands2'"]
22942 impl StructureType {
22943     pub const COPY_IMAGE_TO_BUFFER_INFO_2_KHR: Self = Self(1_000_337_003);
22944 }
22945 #[doc = "Generated from 'VK_KHR_copy_commands2'"]
22946 impl StructureType {
22947     pub const BLIT_IMAGE_INFO_2_KHR: Self = Self(1_000_337_004);
22948 }
22949 #[doc = "Generated from 'VK_KHR_copy_commands2'"]
22950 impl StructureType {
22951     pub const RESOLVE_IMAGE_INFO_2_KHR: Self = Self(1_000_337_005);
22952 }
22953 #[doc = "Generated from 'VK_KHR_copy_commands2'"]
22954 impl StructureType {
22955     pub const BUFFER_COPY_2_KHR: Self = Self(1_000_337_006);
22956 }
22957 #[doc = "Generated from 'VK_KHR_copy_commands2'"]
22958 impl StructureType {
22959     pub const IMAGE_COPY_2_KHR: Self = Self(1_000_337_007);
22960 }
22961 #[doc = "Generated from 'VK_KHR_copy_commands2'"]
22962 impl StructureType {
22963     pub const IMAGE_BLIT_2_KHR: Self = Self(1_000_337_008);
22964 }
22965 #[doc = "Generated from 'VK_KHR_copy_commands2'"]
22966 impl StructureType {
22967     pub const BUFFER_IMAGE_COPY_2_KHR: Self = Self(1_000_337_009);
22968 }
22969 #[doc = "Generated from 'VK_KHR_copy_commands2'"]
22970 impl StructureType {
22971     pub const IMAGE_RESOLVE_2_KHR: Self = Self(1_000_337_010);
22972 }
22973 impl ArmExtension339Fn {
name() -> &'static ::std::ffi::CStr22974     pub fn name() -> &'static ::std::ffi::CStr {
22975         ::std::ffi::CStr::from_bytes_with_nul(b"VK_ARM_extension_339\0")
22976             .expect("Wrong extension string")
22977     }
22978     pub const SPEC_VERSION: u32 = 0u32;
22979 }
22980 #[derive(Clone)]
22981 pub struct ArmExtension339Fn {}
22982 unsafe impl Send for ArmExtension339Fn {}
22983 unsafe impl Sync for ArmExtension339Fn {}
22984 impl ArmExtension339Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22985     pub fn load<F>(mut _f: F) -> Self
22986     where
22987         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22988     {
22989         ArmExtension339Fn {}
22990     }
22991 }
22992 impl ExtExtension340Fn {
name() -> &'static ::std::ffi::CStr22993     pub fn name() -> &'static ::std::ffi::CStr {
22994         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_340\0")
22995             .expect("Wrong extension string")
22996     }
22997     pub const SPEC_VERSION: u32 = 0u32;
22998 }
22999 #[derive(Clone)]
23000 pub struct ExtExtension340Fn {}
23001 unsafe impl Send for ExtExtension340Fn {}
23002 unsafe impl Sync for ExtExtension340Fn {}
23003 impl ExtExtension340Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23004     pub fn load<F>(mut _f: F) -> Self
23005     where
23006         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23007     {
23008         ExtExtension340Fn {}
23009     }
23010 }
23011 #[doc = "Generated from 'VK_EXT_extension_340'"]
23012 impl ImageUsageFlags {
23013     pub const RESERVED_19_EXT: Self = Self(0b1000_0000_0000_0000_0000);
23014 }
23015 impl Ext4444FormatsFn {
name() -> &'static ::std::ffi::CStr23016     pub fn name() -> &'static ::std::ffi::CStr {
23017         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_4444_formats\0")
23018             .expect("Wrong extension string")
23019     }
23020     pub const SPEC_VERSION: u32 = 1u32;
23021 }
23022 #[derive(Clone)]
23023 pub struct Ext4444FormatsFn {}
23024 unsafe impl Send for Ext4444FormatsFn {}
23025 unsafe impl Sync for Ext4444FormatsFn {}
23026 impl Ext4444FormatsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23027     pub fn load<F>(mut _f: F) -> Self
23028     where
23029         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23030     {
23031         Ext4444FormatsFn {}
23032     }
23033 }
23034 #[doc = "Generated from 'VK_EXT_4444_formats'"]
23035 impl StructureType {
23036     pub const PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: Self = Self(1_000_340_000);
23037 }
23038 #[doc = "Generated from 'VK_EXT_4444_formats'"]
23039 impl Format {
23040     pub const A4R4G4B4_UNORM_PACK16_EXT: Self = Self(1_000_340_000);
23041 }
23042 #[doc = "Generated from 'VK_EXT_4444_formats'"]
23043 impl Format {
23044     pub const A4B4G4R4_UNORM_PACK16_EXT: Self = Self(1_000_340_001);
23045 }
23046 impl ExtExtension342Fn {
name() -> &'static ::std::ffi::CStr23047     pub fn name() -> &'static ::std::ffi::CStr {
23048         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_342\0")
23049             .expect("Wrong extension string")
23050     }
23051     pub const SPEC_VERSION: u32 = 0u32;
23052 }
23053 #[derive(Clone)]
23054 pub struct ExtExtension342Fn {}
23055 unsafe impl Send for ExtExtension342Fn {}
23056 unsafe impl Sync for ExtExtension342Fn {}
23057 impl ExtExtension342Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23058     pub fn load<F>(mut _f: F) -> Self
23059     where
23060         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23061     {
23062         ExtExtension342Fn {}
23063     }
23064 }
23065 impl ArmExtension343Fn {
name() -> &'static ::std::ffi::CStr23066     pub fn name() -> &'static ::std::ffi::CStr {
23067         ::std::ffi::CStr::from_bytes_with_nul(b"VK_ARM_extension_343\0")
23068             .expect("Wrong extension string")
23069     }
23070     pub const SPEC_VERSION: u32 = 0u32;
23071 }
23072 #[derive(Clone)]
23073 pub struct ArmExtension343Fn {}
23074 unsafe impl Send for ArmExtension343Fn {}
23075 unsafe impl Sync for ArmExtension343Fn {}
23076 impl ArmExtension343Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23077     pub fn load<F>(mut _f: F) -> Self
23078     where
23079         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23080     {
23081         ArmExtension343Fn {}
23082     }
23083 }
23084 impl ArmExtension344Fn {
name() -> &'static ::std::ffi::CStr23085     pub fn name() -> &'static ::std::ffi::CStr {
23086         ::std::ffi::CStr::from_bytes_with_nul(b"VK_ARM_extension_344\0")
23087             .expect("Wrong extension string")
23088     }
23089     pub const SPEC_VERSION: u32 = 0u32;
23090 }
23091 #[derive(Clone)]
23092 pub struct ArmExtension344Fn {}
23093 unsafe impl Send for ArmExtension344Fn {}
23094 unsafe impl Sync for ArmExtension344Fn {}
23095 impl ArmExtension344Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23096     pub fn load<F>(mut _f: F) -> Self
23097     where
23098         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23099     {
23100         ArmExtension344Fn {}
23101     }
23102 }
23103 impl ArmExtension345Fn {
name() -> &'static ::std::ffi::CStr23104     pub fn name() -> &'static ::std::ffi::CStr {
23105         ::std::ffi::CStr::from_bytes_with_nul(b"VK_ARM_extension_345\0")
23106             .expect("Wrong extension string")
23107     }
23108     pub const SPEC_VERSION: u32 = 0u32;
23109 }
23110 #[derive(Clone)]
23111 pub struct ArmExtension345Fn {}
23112 unsafe impl Send for ArmExtension345Fn {}
23113 unsafe impl Sync for ArmExtension345Fn {}
23114 impl ArmExtension345Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23115     pub fn load<F>(mut _f: F) -> Self
23116     where
23117         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23118     {
23119         ArmExtension345Fn {}
23120     }
23121 }
23122 impl NvAcquireWinrtDisplayFn {
name() -> &'static ::std::ffi::CStr23123     pub fn name() -> &'static ::std::ffi::CStr {
23124         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_acquire_winrt_display\0")
23125             .expect("Wrong extension string")
23126     }
23127     pub const SPEC_VERSION: u32 = 1u32;
23128 }
23129 #[allow(non_camel_case_types)]
23130 pub type PFN_vkAcquireWinrtDisplayNV =
23131     unsafe extern "system" fn(physical_device: PhysicalDevice, display: DisplayKHR) -> Result;
23132 #[allow(non_camel_case_types)]
23133 pub type PFN_vkGetWinrtDisplayNV = unsafe extern "system" fn(
23134     physical_device: PhysicalDevice,
23135     device_relative_id: u32,
23136     p_display: *mut DisplayKHR,
23137 ) -> Result;
23138 #[derive(Clone)]
23139 pub struct NvAcquireWinrtDisplayFn {
23140     pub acquire_winrt_display_nv: PFN_vkAcquireWinrtDisplayNV,
23141     pub get_winrt_display_nv: PFN_vkGetWinrtDisplayNV,
23142 }
23143 unsafe impl Send for NvAcquireWinrtDisplayFn {}
23144 unsafe impl Sync for NvAcquireWinrtDisplayFn {}
23145 impl NvAcquireWinrtDisplayFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23146     pub fn load<F>(mut _f: F) -> Self
23147     where
23148         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23149     {
23150         NvAcquireWinrtDisplayFn {
23151             acquire_winrt_display_nv: unsafe {
23152                 unsafe extern "system" fn acquire_winrt_display_nv(
23153                     _physical_device: PhysicalDevice,
23154                     _display: DisplayKHR,
23155                 ) -> Result {
23156                     panic!(concat!(
23157                         "Unable to load ",
23158                         stringify!(acquire_winrt_display_nv)
23159                     ))
23160                 }
23161                 let cname =
23162                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireWinrtDisplayNV\0");
23163                 let val = _f(cname);
23164                 if val.is_null() {
23165                     acquire_winrt_display_nv
23166                 } else {
23167                     ::std::mem::transmute(val)
23168                 }
23169             },
23170             get_winrt_display_nv: unsafe {
23171                 unsafe extern "system" fn get_winrt_display_nv(
23172                     _physical_device: PhysicalDevice,
23173                     _device_relative_id: u32,
23174                     _p_display: *mut DisplayKHR,
23175                 ) -> Result {
23176                     panic!(concat!("Unable to load ", stringify!(get_winrt_display_nv)))
23177                 }
23178                 let cname =
23179                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetWinrtDisplayNV\0");
23180                 let val = _f(cname);
23181                 if val.is_null() {
23182                     get_winrt_display_nv
23183                 } else {
23184                     ::std::mem::transmute(val)
23185                 }
23186             },
23187         }
23188     }
23189     #[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, ) -> Result23190     pub unsafe fn acquire_winrt_display_nv(
23191         &self,
23192         physical_device: PhysicalDevice,
23193         display: DisplayKHR,
23194     ) -> Result {
23195         (self.acquire_winrt_display_nv)(physical_device, display)
23196     }
23197     #[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, ) -> Result23198     pub unsafe fn get_winrt_display_nv(
23199         &self,
23200         physical_device: PhysicalDevice,
23201         device_relative_id: u32,
23202         p_display: *mut DisplayKHR,
23203     ) -> Result {
23204         (self.get_winrt_display_nv)(physical_device, device_relative_id, p_display)
23205     }
23206 }
23207 impl ExtDirectfbSurfaceFn {
name() -> &'static ::std::ffi::CStr23208     pub fn name() -> &'static ::std::ffi::CStr {
23209         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_directfb_surface\0")
23210             .expect("Wrong extension string")
23211     }
23212     pub const SPEC_VERSION: u32 = 1u32;
23213 }
23214 #[allow(non_camel_case_types)]
23215 pub type PFN_vkCreateDirectFBSurfaceEXT = unsafe extern "system" fn(
23216     instance: Instance,
23217     p_create_info: *const DirectFBSurfaceCreateInfoEXT,
23218     p_allocator: *const AllocationCallbacks,
23219     p_surface: *mut SurfaceKHR,
23220 ) -> Result;
23221 #[allow(non_camel_case_types)]
23222 pub type PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT =
23223     unsafe extern "system" fn(
23224         physical_device: PhysicalDevice,
23225         queue_family_index: u32,
23226         dfb: *mut IDirectFB,
23227     ) -> Bool32;
23228 #[derive(Clone)]
23229 pub struct ExtDirectfbSurfaceFn {
23230     pub create_direct_fb_surface_ext: PFN_vkCreateDirectFBSurfaceEXT,
23231     pub get_physical_device_direct_fb_presentation_support_ext:
23232         PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT,
23233 }
23234 unsafe impl Send for ExtDirectfbSurfaceFn {}
23235 unsafe impl Sync for ExtDirectfbSurfaceFn {}
23236 impl ExtDirectfbSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23237     pub fn load<F>(mut _f: F) -> Self
23238     where
23239         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23240     {
23241         ExtDirectfbSurfaceFn {
23242             create_direct_fb_surface_ext: unsafe {
23243                 unsafe extern "system" fn create_direct_fb_surface_ext(
23244                     _instance: Instance,
23245                     _p_create_info: *const DirectFBSurfaceCreateInfoEXT,
23246                     _p_allocator: *const AllocationCallbacks,
23247                     _p_surface: *mut SurfaceKHR,
23248                 ) -> Result {
23249                     panic!(concat!(
23250                         "Unable to load ",
23251                         stringify!(create_direct_fb_surface_ext)
23252                     ))
23253                 }
23254                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23255                     b"vkCreateDirectFBSurfaceEXT\0",
23256                 );
23257                 let val = _f(cname);
23258                 if val.is_null() {
23259                     create_direct_fb_surface_ext
23260                 } else {
23261                     ::std::mem::transmute(val)
23262                 }
23263             },
23264             get_physical_device_direct_fb_presentation_support_ext: unsafe {
23265                 unsafe extern "system" fn get_physical_device_direct_fb_presentation_support_ext(
23266                     _physical_device: PhysicalDevice,
23267                     _queue_family_index: u32,
23268                     _dfb: *mut IDirectFB,
23269                 ) -> Bool32 {
23270                     panic!(concat!(
23271                         "Unable to load ",
23272                         stringify!(get_physical_device_direct_fb_presentation_support_ext)
23273                     ))
23274                 }
23275                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23276                     b"vkGetPhysicalDeviceDirectFBPresentationSupportEXT\0",
23277                 );
23278                 let val = _f(cname);
23279                 if val.is_null() {
23280                     get_physical_device_direct_fb_presentation_support_ext
23281                 } else {
23282                     ::std::mem::transmute(val)
23283                 }
23284             },
23285         }
23286     }
23287     #[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, ) -> Result23288     pub unsafe fn create_direct_fb_surface_ext(
23289         &self,
23290         instance: Instance,
23291         p_create_info: *const DirectFBSurfaceCreateInfoEXT,
23292         p_allocator: *const AllocationCallbacks,
23293         p_surface: *mut SurfaceKHR,
23294     ) -> Result {
23295         (self.create_direct_fb_surface_ext)(instance, p_create_info, p_allocator, p_surface)
23296     }
23297     #[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, ) -> Bool3223298     pub unsafe fn get_physical_device_direct_fb_presentation_support_ext(
23299         &self,
23300         physical_device: PhysicalDevice,
23301         queue_family_index: u32,
23302         dfb: *mut IDirectFB,
23303     ) -> Bool32 {
23304         (self.get_physical_device_direct_fb_presentation_support_ext)(
23305             physical_device,
23306             queue_family_index,
23307             dfb,
23308         )
23309     }
23310 }
23311 #[doc = "Generated from 'VK_EXT_directfb_surface'"]
23312 impl StructureType {
23313     pub const DIRECTFB_SURFACE_CREATE_INFO_EXT: Self = Self(1_000_346_000);
23314 }
23315 impl KhrExtension350Fn {
name() -> &'static ::std::ffi::CStr23316     pub fn name() -> &'static ::std::ffi::CStr {
23317         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_350\0")
23318             .expect("Wrong extension string")
23319     }
23320     pub const SPEC_VERSION: u32 = 0u32;
23321 }
23322 #[derive(Clone)]
23323 pub struct KhrExtension350Fn {}
23324 unsafe impl Send for KhrExtension350Fn {}
23325 unsafe impl Sync for KhrExtension350Fn {}
23326 impl KhrExtension350Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23327     pub fn load<F>(mut _f: F) -> Self
23328     where
23329         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23330     {
23331         KhrExtension350Fn {}
23332     }
23333 }
23334 impl NvExtension351Fn {
name() -> &'static ::std::ffi::CStr23335     pub fn name() -> &'static ::std::ffi::CStr {
23336         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_extension_351\0")
23337             .expect("Wrong extension string")
23338     }
23339     pub const SPEC_VERSION: u32 = 0u32;
23340 }
23341 #[derive(Clone)]
23342 pub struct NvExtension351Fn {}
23343 unsafe impl Send for NvExtension351Fn {}
23344 unsafe impl Sync for NvExtension351Fn {}
23345 impl NvExtension351Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23346     pub fn load<F>(mut _f: F) -> Self
23347     where
23348         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23349     {
23350         NvExtension351Fn {}
23351     }
23352 }
23353 impl ValveMutableDescriptorTypeFn {
name() -> &'static ::std::ffi::CStr23354     pub fn name() -> &'static ::std::ffi::CStr {
23355         ::std::ffi::CStr::from_bytes_with_nul(b"VK_VALVE_mutable_descriptor_type\0")
23356             .expect("Wrong extension string")
23357     }
23358     pub const SPEC_VERSION: u32 = 1u32;
23359 }
23360 #[derive(Clone)]
23361 pub struct ValveMutableDescriptorTypeFn {}
23362 unsafe impl Send for ValveMutableDescriptorTypeFn {}
23363 unsafe impl Sync for ValveMutableDescriptorTypeFn {}
23364 impl ValveMutableDescriptorTypeFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23365     pub fn load<F>(mut _f: F) -> Self
23366     where
23367         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23368     {
23369         ValveMutableDescriptorTypeFn {}
23370     }
23371 }
23372 #[doc = "Generated from 'VK_VALVE_mutable_descriptor_type'"]
23373 impl StructureType {
23374     pub const PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE: Self = Self(1_000_351_000);
23375 }
23376 #[doc = "Generated from 'VK_VALVE_mutable_descriptor_type'"]
23377 impl StructureType {
23378     pub const MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE: Self = Self(1_000_351_002);
23379 }
23380 #[doc = "Generated from 'VK_VALVE_mutable_descriptor_type'"]
23381 impl DescriptorType {
23382     pub const MUTABLE_VALVE: Self = Self(1_000_351_000);
23383 }
23384 #[doc = "Generated from 'VK_VALVE_mutable_descriptor_type'"]
23385 impl DescriptorPoolCreateFlags {
23386     pub const HOST_ONLY_VALVE: Self = Self(0b100);
23387 }
23388 #[doc = "Generated from 'VK_VALVE_mutable_descriptor_type'"]
23389 impl DescriptorSetLayoutCreateFlags {
23390     pub const HOST_ONLY_POOL_VALVE: Self = Self(0b100);
23391 }
23392 impl ExtVertexInputDynamicStateFn {
name() -> &'static ::std::ffi::CStr23393     pub fn name() -> &'static ::std::ffi::CStr {
23394         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_vertex_input_dynamic_state\0")
23395             .expect("Wrong extension string")
23396     }
23397     pub const SPEC_VERSION: u32 = 2u32;
23398 }
23399 #[allow(non_camel_case_types)]
23400 pub type PFN_vkCmdSetVertexInputEXT = unsafe extern "system" fn(
23401     command_buffer: CommandBuffer,
23402     vertex_binding_description_count: u32,
23403     p_vertex_binding_descriptions: *const VertexInputBindingDescription2EXT,
23404     vertex_attribute_description_count: u32,
23405     p_vertex_attribute_descriptions: *const VertexInputAttributeDescription2EXT,
23406 );
23407 #[derive(Clone)]
23408 pub struct ExtVertexInputDynamicStateFn {
23409     pub cmd_set_vertex_input_ext: PFN_vkCmdSetVertexInputEXT,
23410 }
23411 unsafe impl Send for ExtVertexInputDynamicStateFn {}
23412 unsafe impl Sync for ExtVertexInputDynamicStateFn {}
23413 impl ExtVertexInputDynamicStateFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23414     pub fn load<F>(mut _f: F) -> Self
23415     where
23416         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23417     {
23418         ExtVertexInputDynamicStateFn {
23419             cmd_set_vertex_input_ext: unsafe {
23420                 unsafe extern "system" fn cmd_set_vertex_input_ext(
23421                     _command_buffer: CommandBuffer,
23422                     _vertex_binding_description_count: u32,
23423                     _p_vertex_binding_descriptions: *const VertexInputBindingDescription2EXT,
23424                     _vertex_attribute_description_count: u32,
23425                     _p_vertex_attribute_descriptions: *const VertexInputAttributeDescription2EXT,
23426                 ) {
23427                     panic!(concat!(
23428                         "Unable to load ",
23429                         stringify!(cmd_set_vertex_input_ext)
23430                     ))
23431                 }
23432                 let cname =
23433                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetVertexInputEXT\0");
23434                 let val = _f(cname);
23435                 if val.is_null() {
23436                     cmd_set_vertex_input_ext
23437                 } else {
23438                     ::std::mem::transmute(val)
23439                 }
23440             },
23441         }
23442     }
23443     #[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, )23444     pub unsafe fn cmd_set_vertex_input_ext(
23445         &self,
23446         command_buffer: CommandBuffer,
23447         vertex_binding_description_count: u32,
23448         p_vertex_binding_descriptions: *const VertexInputBindingDescription2EXT,
23449         vertex_attribute_description_count: u32,
23450         p_vertex_attribute_descriptions: *const VertexInputAttributeDescription2EXT,
23451     ) {
23452         (self.cmd_set_vertex_input_ext)(
23453             command_buffer,
23454             vertex_binding_description_count,
23455             p_vertex_binding_descriptions,
23456             vertex_attribute_description_count,
23457             p_vertex_attribute_descriptions,
23458         )
23459     }
23460 }
23461 #[doc = "Generated from 'VK_EXT_vertex_input_dynamic_state'"]
23462 impl StructureType {
23463     pub const PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT: Self = Self(1_000_352_000);
23464 }
23465 #[doc = "Generated from 'VK_EXT_vertex_input_dynamic_state'"]
23466 impl StructureType {
23467     pub const VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT: Self = Self(1_000_352_001);
23468 }
23469 #[doc = "Generated from 'VK_EXT_vertex_input_dynamic_state'"]
23470 impl StructureType {
23471     pub const VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT: Self = Self(1_000_352_002);
23472 }
23473 #[doc = "Generated from 'VK_EXT_vertex_input_dynamic_state'"]
23474 impl DynamicState {
23475     pub const VERTEX_INPUT_EXT: Self = Self(1_000_352_000);
23476 }
23477 impl ExtPhysicalDeviceDrmFn {
name() -> &'static ::std::ffi::CStr23478     pub fn name() -> &'static ::std::ffi::CStr {
23479         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_physical_device_drm\0")
23480             .expect("Wrong extension string")
23481     }
23482     pub const SPEC_VERSION: u32 = 1u32;
23483 }
23484 #[derive(Clone)]
23485 pub struct ExtPhysicalDeviceDrmFn {}
23486 unsafe impl Send for ExtPhysicalDeviceDrmFn {}
23487 unsafe impl Sync for ExtPhysicalDeviceDrmFn {}
23488 impl ExtPhysicalDeviceDrmFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23489     pub fn load<F>(mut _f: F) -> Self
23490     where
23491         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23492     {
23493         ExtPhysicalDeviceDrmFn {}
23494     }
23495 }
23496 #[doc = "Generated from 'VK_EXT_physical_device_drm'"]
23497 impl StructureType {
23498     pub const PHYSICAL_DEVICE_DRM_PROPERTIES_EXT: Self = Self(1_000_353_000);
23499 }
23500 impl ExtExtension355Fn {
name() -> &'static ::std::ffi::CStr23501     pub fn name() -> &'static ::std::ffi::CStr {
23502         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_355\0")
23503             .expect("Wrong extension string")
23504     }
23505     pub const SPEC_VERSION: u32 = 0u32;
23506 }
23507 #[derive(Clone)]
23508 pub struct ExtExtension355Fn {}
23509 unsafe impl Send for ExtExtension355Fn {}
23510 unsafe impl Sync for ExtExtension355Fn {}
23511 impl ExtExtension355Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23512     pub fn load<F>(mut _f: F) -> Self
23513     where
23514         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23515     {
23516         ExtExtension355Fn {}
23517     }
23518 }
23519 impl ExtVertexAttributeAliasingFn {
name() -> &'static ::std::ffi::CStr23520     pub fn name() -> &'static ::std::ffi::CStr {
23521         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_vertex_attribute_aliasing\0")
23522             .expect("Wrong extension string")
23523     }
23524     pub const SPEC_VERSION: u32 = 0u32;
23525 }
23526 #[derive(Clone)]
23527 pub struct ExtVertexAttributeAliasingFn {}
23528 unsafe impl Send for ExtVertexAttributeAliasingFn {}
23529 unsafe impl Sync for ExtVertexAttributeAliasingFn {}
23530 impl ExtVertexAttributeAliasingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23531     pub fn load<F>(mut _f: F) -> Self
23532     where
23533         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23534     {
23535         ExtVertexAttributeAliasingFn {}
23536     }
23537 }
23538 impl ExtPrimitiveTopologyListRestartFn {
name() -> &'static ::std::ffi::CStr23539     pub fn name() -> &'static ::std::ffi::CStr {
23540         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_primitive_topology_list_restart\0")
23541             .expect("Wrong extension string")
23542     }
23543     pub const SPEC_VERSION: u32 = 1u32;
23544 }
23545 #[derive(Clone)]
23546 pub struct ExtPrimitiveTopologyListRestartFn {}
23547 unsafe impl Send for ExtPrimitiveTopologyListRestartFn {}
23548 unsafe impl Sync for ExtPrimitiveTopologyListRestartFn {}
23549 impl ExtPrimitiveTopologyListRestartFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23550     pub fn load<F>(mut _f: F) -> Self
23551     where
23552         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23553     {
23554         ExtPrimitiveTopologyListRestartFn {}
23555     }
23556 }
23557 #[doc = "Generated from 'VK_EXT_primitive_topology_list_restart'"]
23558 impl StructureType {
23559     pub const PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: Self =
23560         Self(1_000_356_000);
23561 }
23562 impl KhrExtension358Fn {
name() -> &'static ::std::ffi::CStr23563     pub fn name() -> &'static ::std::ffi::CStr {
23564         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_358\0")
23565             .expect("Wrong extension string")
23566     }
23567     pub const SPEC_VERSION: u32 = 0u32;
23568 }
23569 #[derive(Clone)]
23570 pub struct KhrExtension358Fn {}
23571 unsafe impl Send for KhrExtension358Fn {}
23572 unsafe impl Sync for KhrExtension358Fn {}
23573 impl KhrExtension358Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23574     pub fn load<F>(mut _f: F) -> Self
23575     where
23576         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23577     {
23578         KhrExtension358Fn {}
23579     }
23580 }
23581 impl ExtExtension359Fn {
name() -> &'static ::std::ffi::CStr23582     pub fn name() -> &'static ::std::ffi::CStr {
23583         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_359\0")
23584             .expect("Wrong extension string")
23585     }
23586     pub const SPEC_VERSION: u32 = 0u32;
23587 }
23588 #[derive(Clone)]
23589 pub struct ExtExtension359Fn {}
23590 unsafe impl Send for ExtExtension359Fn {}
23591 unsafe impl Sync for ExtExtension359Fn {}
23592 impl ExtExtension359Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23593     pub fn load<F>(mut _f: F) -> Self
23594     where
23595         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23596     {
23597         ExtExtension359Fn {}
23598     }
23599 }
23600 impl ExtExtension360Fn {
name() -> &'static ::std::ffi::CStr23601     pub fn name() -> &'static ::std::ffi::CStr {
23602         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_360\0")
23603             .expect("Wrong extension string")
23604     }
23605     pub const SPEC_VERSION: u32 = 0u32;
23606 }
23607 #[derive(Clone)]
23608 pub struct ExtExtension360Fn {}
23609 unsafe impl Send for ExtExtension360Fn {}
23610 unsafe impl Sync for ExtExtension360Fn {}
23611 impl ExtExtension360Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23612     pub fn load<F>(mut _f: F) -> Self
23613     where
23614         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23615     {
23616         ExtExtension360Fn {}
23617     }
23618 }
23619 impl KhrExtension361Fn {
name() -> &'static ::std::ffi::CStr23620     pub fn name() -> &'static ::std::ffi::CStr {
23621         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_361\0")
23622             .expect("Wrong extension string")
23623     }
23624     pub const SPEC_VERSION: u32 = 0u32;
23625 }
23626 #[derive(Clone)]
23627 pub struct KhrExtension361Fn {}
23628 unsafe impl Send for KhrExtension361Fn {}
23629 unsafe impl Sync for KhrExtension361Fn {}
23630 impl KhrExtension361Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23631     pub fn load<F>(mut _f: F) -> Self
23632     where
23633         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23634     {
23635         KhrExtension361Fn {}
23636     }
23637 }
23638 impl ExtExtension362Fn {
name() -> &'static ::std::ffi::CStr23639     pub fn name() -> &'static ::std::ffi::CStr {
23640         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_362\0")
23641             .expect("Wrong extension string")
23642     }
23643     pub const SPEC_VERSION: u32 = 0u32;
23644 }
23645 #[derive(Clone)]
23646 pub struct ExtExtension362Fn {}
23647 unsafe impl Send for ExtExtension362Fn {}
23648 unsafe impl Sync for ExtExtension362Fn {}
23649 impl ExtExtension362Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23650     pub fn load<F>(mut _f: F) -> Self
23651     where
23652         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23653     {
23654         ExtExtension362Fn {}
23655     }
23656 }
23657 impl ExtExtension363Fn {
name() -> &'static ::std::ffi::CStr23658     pub fn name() -> &'static ::std::ffi::CStr {
23659         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_363\0")
23660             .expect("Wrong extension string")
23661     }
23662     pub const SPEC_VERSION: u32 = 0u32;
23663 }
23664 #[derive(Clone)]
23665 pub struct ExtExtension363Fn {}
23666 unsafe impl Send for ExtExtension363Fn {}
23667 unsafe impl Sync for ExtExtension363Fn {}
23668 impl ExtExtension363Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23669     pub fn load<F>(mut _f: F) -> Self
23670     where
23671         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23672     {
23673         ExtExtension363Fn {}
23674     }
23675 }
23676 impl FuchsiaExtension364Fn {
name() -> &'static ::std::ffi::CStr23677     pub fn name() -> &'static ::std::ffi::CStr {
23678         ::std::ffi::CStr::from_bytes_with_nul(b"VK_FUCHSIA_extension_364\0")
23679             .expect("Wrong extension string")
23680     }
23681     pub const SPEC_VERSION: u32 = 0u32;
23682 }
23683 #[derive(Clone)]
23684 pub struct FuchsiaExtension364Fn {}
23685 unsafe impl Send for FuchsiaExtension364Fn {}
23686 unsafe impl Sync for FuchsiaExtension364Fn {}
23687 impl FuchsiaExtension364Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23688     pub fn load<F>(mut _f: F) -> Self
23689     where
23690         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23691     {
23692         FuchsiaExtension364Fn {}
23693     }
23694 }
23695 impl FuchsiaExternalMemoryFn {
name() -> &'static ::std::ffi::CStr23696     pub fn name() -> &'static ::std::ffi::CStr {
23697         ::std::ffi::CStr::from_bytes_with_nul(b"VK_FUCHSIA_external_memory\0")
23698             .expect("Wrong extension string")
23699     }
23700     pub const SPEC_VERSION: u32 = 1u32;
23701 }
23702 #[allow(non_camel_case_types)]
23703 pub type PFN_vkGetMemoryZirconHandleFUCHSIA = unsafe extern "system" fn(
23704     device: Device,
23705     p_get_zircon_handle_info: *const MemoryGetZirconHandleInfoFUCHSIA,
23706     p_zircon_handle: *mut zx_handle_t,
23707 ) -> Result;
23708 #[allow(non_camel_case_types)]
23709 pub type PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA = unsafe extern "system" fn(
23710     device: Device,
23711     handle_type: ExternalMemoryHandleTypeFlags,
23712     zircon_handle: zx_handle_t,
23713     p_memory_zircon_handle_properties: *mut MemoryZirconHandlePropertiesFUCHSIA,
23714 ) -> Result;
23715 #[derive(Clone)]
23716 pub struct FuchsiaExternalMemoryFn {
23717     pub get_memory_zircon_handle_fuchsia: PFN_vkGetMemoryZirconHandleFUCHSIA,
23718     pub get_memory_zircon_handle_properties_fuchsia: PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA,
23719 }
23720 unsafe impl Send for FuchsiaExternalMemoryFn {}
23721 unsafe impl Sync for FuchsiaExternalMemoryFn {}
23722 impl FuchsiaExternalMemoryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23723     pub fn load<F>(mut _f: F) -> Self
23724     where
23725         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23726     {
23727         FuchsiaExternalMemoryFn {
23728             get_memory_zircon_handle_fuchsia: unsafe {
23729                 unsafe extern "system" fn get_memory_zircon_handle_fuchsia(
23730                     _device: Device,
23731                     _p_get_zircon_handle_info: *const MemoryGetZirconHandleInfoFUCHSIA,
23732                     _p_zircon_handle: *mut zx_handle_t,
23733                 ) -> Result {
23734                     panic!(concat!(
23735                         "Unable to load ",
23736                         stringify!(get_memory_zircon_handle_fuchsia)
23737                     ))
23738                 }
23739                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23740                     b"vkGetMemoryZirconHandleFUCHSIA\0",
23741                 );
23742                 let val = _f(cname);
23743                 if val.is_null() {
23744                     get_memory_zircon_handle_fuchsia
23745                 } else {
23746                     ::std::mem::transmute(val)
23747                 }
23748             },
23749             get_memory_zircon_handle_properties_fuchsia: unsafe {
23750                 unsafe extern "system" fn get_memory_zircon_handle_properties_fuchsia(
23751                     _device: Device,
23752                     _handle_type: ExternalMemoryHandleTypeFlags,
23753                     _zircon_handle: zx_handle_t,
23754                     _p_memory_zircon_handle_properties: *mut MemoryZirconHandlePropertiesFUCHSIA,
23755                 ) -> Result {
23756                     panic!(concat!(
23757                         "Unable to load ",
23758                         stringify!(get_memory_zircon_handle_properties_fuchsia)
23759                     ))
23760                 }
23761                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23762                     b"vkGetMemoryZirconHandlePropertiesFUCHSIA\0",
23763                 );
23764                 let val = _f(cname);
23765                 if val.is_null() {
23766                     get_memory_zircon_handle_properties_fuchsia
23767                 } else {
23768                     ::std::mem::transmute(val)
23769                 }
23770             },
23771         }
23772     }
23773     #[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, ) -> Result23774     pub unsafe fn get_memory_zircon_handle_fuchsia(
23775         &self,
23776         device: Device,
23777         p_get_zircon_handle_info: *const MemoryGetZirconHandleInfoFUCHSIA,
23778         p_zircon_handle: *mut zx_handle_t,
23779     ) -> Result {
23780         (self.get_memory_zircon_handle_fuchsia)(device, p_get_zircon_handle_info, p_zircon_handle)
23781     }
23782     #[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, ) -> Result23783     pub unsafe fn get_memory_zircon_handle_properties_fuchsia(
23784         &self,
23785         device: Device,
23786         handle_type: ExternalMemoryHandleTypeFlags,
23787         zircon_handle: zx_handle_t,
23788         p_memory_zircon_handle_properties: *mut MemoryZirconHandlePropertiesFUCHSIA,
23789     ) -> Result {
23790         (self.get_memory_zircon_handle_properties_fuchsia)(
23791             device,
23792             handle_type,
23793             zircon_handle,
23794             p_memory_zircon_handle_properties,
23795         )
23796     }
23797 }
23798 #[doc = "Generated from 'VK_FUCHSIA_external_memory'"]
23799 impl StructureType {
23800     pub const IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA: Self = Self(1_000_364_000);
23801 }
23802 #[doc = "Generated from 'VK_FUCHSIA_external_memory'"]
23803 impl StructureType {
23804     pub const MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA: Self = Self(1_000_364_001);
23805 }
23806 #[doc = "Generated from 'VK_FUCHSIA_external_memory'"]
23807 impl StructureType {
23808     pub const MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA: Self = Self(1_000_364_002);
23809 }
23810 #[doc = "Generated from 'VK_FUCHSIA_external_memory'"]
23811 impl ExternalMemoryHandleTypeFlags {
23812     pub const ZIRCON_VMO_FUCHSIA: Self = Self(0b1000_0000_0000);
23813 }
23814 impl FuchsiaExternalSemaphoreFn {
name() -> &'static ::std::ffi::CStr23815     pub fn name() -> &'static ::std::ffi::CStr {
23816         ::std::ffi::CStr::from_bytes_with_nul(b"VK_FUCHSIA_external_semaphore\0")
23817             .expect("Wrong extension string")
23818     }
23819     pub const SPEC_VERSION: u32 = 1u32;
23820 }
23821 #[allow(non_camel_case_types)]
23822 pub type PFN_vkImportSemaphoreZirconHandleFUCHSIA = unsafe extern "system" fn(
23823     device: Device,
23824     p_import_semaphore_zircon_handle_info: *const ImportSemaphoreZirconHandleInfoFUCHSIA,
23825 ) -> Result;
23826 #[allow(non_camel_case_types)]
23827 pub type PFN_vkGetSemaphoreZirconHandleFUCHSIA = unsafe extern "system" fn(
23828     device: Device,
23829     p_get_zircon_handle_info: *const SemaphoreGetZirconHandleInfoFUCHSIA,
23830     p_zircon_handle: *mut zx_handle_t,
23831 ) -> Result;
23832 #[derive(Clone)]
23833 pub struct FuchsiaExternalSemaphoreFn {
23834     pub import_semaphore_zircon_handle_fuchsia: PFN_vkImportSemaphoreZirconHandleFUCHSIA,
23835     pub get_semaphore_zircon_handle_fuchsia: PFN_vkGetSemaphoreZirconHandleFUCHSIA,
23836 }
23837 unsafe impl Send for FuchsiaExternalSemaphoreFn {}
23838 unsafe impl Sync for FuchsiaExternalSemaphoreFn {}
23839 impl FuchsiaExternalSemaphoreFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23840     pub fn load<F>(mut _f: F) -> Self
23841     where
23842         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23843     {
23844         FuchsiaExternalSemaphoreFn {
23845             import_semaphore_zircon_handle_fuchsia: unsafe {
23846                 unsafe extern "system" fn import_semaphore_zircon_handle_fuchsia(
23847                     _device: Device,
23848                     _p_import_semaphore_zircon_handle_info : * const ImportSemaphoreZirconHandleInfoFUCHSIA,
23849                 ) -> Result {
23850                     panic!(concat!(
23851                         "Unable to load ",
23852                         stringify!(import_semaphore_zircon_handle_fuchsia)
23853                     ))
23854                 }
23855                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23856                     b"vkImportSemaphoreZirconHandleFUCHSIA\0",
23857                 );
23858                 let val = _f(cname);
23859                 if val.is_null() {
23860                     import_semaphore_zircon_handle_fuchsia
23861                 } else {
23862                     ::std::mem::transmute(val)
23863                 }
23864             },
23865             get_semaphore_zircon_handle_fuchsia: unsafe {
23866                 unsafe extern "system" fn get_semaphore_zircon_handle_fuchsia(
23867                     _device: Device,
23868                     _p_get_zircon_handle_info: *const SemaphoreGetZirconHandleInfoFUCHSIA,
23869                     _p_zircon_handle: *mut zx_handle_t,
23870                 ) -> Result {
23871                     panic!(concat!(
23872                         "Unable to load ",
23873                         stringify!(get_semaphore_zircon_handle_fuchsia)
23874                     ))
23875                 }
23876                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23877                     b"vkGetSemaphoreZirconHandleFUCHSIA\0",
23878                 );
23879                 let val = _f(cname);
23880                 if val.is_null() {
23881                     get_semaphore_zircon_handle_fuchsia
23882                 } else {
23883                     ::std::mem::transmute(val)
23884                 }
23885             },
23886         }
23887     }
23888     #[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, ) -> Result23889     pub unsafe fn import_semaphore_zircon_handle_fuchsia(
23890         &self,
23891         device: Device,
23892         p_import_semaphore_zircon_handle_info: *const ImportSemaphoreZirconHandleInfoFUCHSIA,
23893     ) -> Result {
23894         (self.import_semaphore_zircon_handle_fuchsia)(device, p_import_semaphore_zircon_handle_info)
23895     }
23896     #[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, ) -> Result23897     pub unsafe fn get_semaphore_zircon_handle_fuchsia(
23898         &self,
23899         device: Device,
23900         p_get_zircon_handle_info: *const SemaphoreGetZirconHandleInfoFUCHSIA,
23901         p_zircon_handle: *mut zx_handle_t,
23902     ) -> Result {
23903         (self.get_semaphore_zircon_handle_fuchsia)(
23904             device,
23905             p_get_zircon_handle_info,
23906             p_zircon_handle,
23907         )
23908     }
23909 }
23910 #[doc = "Generated from 'VK_FUCHSIA_external_semaphore'"]
23911 impl StructureType {
23912     pub const IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA: Self = Self(1_000_365_000);
23913 }
23914 #[doc = "Generated from 'VK_FUCHSIA_external_semaphore'"]
23915 impl StructureType {
23916     pub const SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA: Self = Self(1_000_365_001);
23917 }
23918 #[doc = "Generated from 'VK_FUCHSIA_external_semaphore'"]
23919 impl ExternalSemaphoreHandleTypeFlags {
23920     pub const ZIRCON_EVENT_FUCHSIA: Self = Self(0b1000_0000);
23921 }
23922 impl FuchsiaExtension367Fn {
name() -> &'static ::std::ffi::CStr23923     pub fn name() -> &'static ::std::ffi::CStr {
23924         ::std::ffi::CStr::from_bytes_with_nul(b"VK_FUCHSIA_extension_367\0")
23925             .expect("Wrong extension string")
23926     }
23927     pub const SPEC_VERSION: u32 = 0u32;
23928 }
23929 #[derive(Clone)]
23930 pub struct FuchsiaExtension367Fn {}
23931 unsafe impl Send for FuchsiaExtension367Fn {}
23932 unsafe impl Sync for FuchsiaExtension367Fn {}
23933 impl FuchsiaExtension367Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23934     pub fn load<F>(mut _f: F) -> Self
23935     where
23936         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23937     {
23938         FuchsiaExtension367Fn {}
23939     }
23940 }
23941 impl FuchsiaExtension368Fn {
name() -> &'static ::std::ffi::CStr23942     pub fn name() -> &'static ::std::ffi::CStr {
23943         ::std::ffi::CStr::from_bytes_with_nul(b"VK_FUCHSIA_extension_368\0")
23944             .expect("Wrong extension string")
23945     }
23946     pub const SPEC_VERSION: u32 = 0u32;
23947 }
23948 #[derive(Clone)]
23949 pub struct FuchsiaExtension368Fn {}
23950 unsafe impl Send for FuchsiaExtension368Fn {}
23951 unsafe impl Sync for FuchsiaExtension368Fn {}
23952 impl FuchsiaExtension368Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23953     pub fn load<F>(mut _f: F) -> Self
23954     where
23955         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23956     {
23957         FuchsiaExtension368Fn {}
23958     }
23959 }
23960 impl QcomExtension369Fn {
name() -> &'static ::std::ffi::CStr23961     pub fn name() -> &'static ::std::ffi::CStr {
23962         ::std::ffi::CStr::from_bytes_with_nul(b"VK_QCOM_extension_369\0")
23963             .expect("Wrong extension string")
23964     }
23965     pub const SPEC_VERSION: u32 = 0u32;
23966 }
23967 #[derive(Clone)]
23968 pub struct QcomExtension369Fn {}
23969 unsafe impl Send for QcomExtension369Fn {}
23970 unsafe impl Sync for QcomExtension369Fn {}
23971 impl QcomExtension369Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23972     pub fn load<F>(mut _f: F) -> Self
23973     where
23974         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23975     {
23976         QcomExtension369Fn {}
23977     }
23978 }
23979 #[doc = "Generated from 'VK_QCOM_extension_369'"]
23980 impl DescriptorBindingFlags {
23981     pub const RESERVED_4_QCOM: Self = Self(0b1_0000);
23982 }
23983 impl HuaweiSubpassShadingFn {
name() -> &'static ::std::ffi::CStr23984     pub fn name() -> &'static ::std::ffi::CStr {
23985         ::std::ffi::CStr::from_bytes_with_nul(b"VK_HUAWEI_subpass_shading\0")
23986             .expect("Wrong extension string")
23987     }
23988     pub const SPEC_VERSION: u32 = 2u32;
23989 }
23990 #[allow(non_camel_case_types)]
23991 pub type PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = unsafe extern "system" fn(
23992     device: Device,
23993     renderpass: RenderPass,
23994     p_max_workgroup_size: *mut Extent2D,
23995 ) -> Result;
23996 #[allow(non_camel_case_types)]
23997 pub type PFN_vkCmdSubpassShadingHUAWEI = unsafe extern "system" fn(command_buffer: CommandBuffer);
23998 #[derive(Clone)]
23999 pub struct HuaweiSubpassShadingFn {
24000     pub get_device_subpass_shading_max_workgroup_size_huawei:
24001         PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI,
24002     pub cmd_subpass_shading_huawei: PFN_vkCmdSubpassShadingHUAWEI,
24003 }
24004 unsafe impl Send for HuaweiSubpassShadingFn {}
24005 unsafe impl Sync for HuaweiSubpassShadingFn {}
24006 impl HuaweiSubpassShadingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24007     pub fn load<F>(mut _f: F) -> Self
24008     where
24009         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24010     {
24011         HuaweiSubpassShadingFn {
24012             get_device_subpass_shading_max_workgroup_size_huawei: unsafe {
24013                 unsafe extern "system" fn get_device_subpass_shading_max_workgroup_size_huawei(
24014                     _device: Device,
24015                     _renderpass: RenderPass,
24016                     _p_max_workgroup_size: *mut Extent2D,
24017                 ) -> Result {
24018                     panic!(concat!(
24019                         "Unable to load ",
24020                         stringify!(get_device_subpass_shading_max_workgroup_size_huawei)
24021                     ))
24022                 }
24023                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
24024                     b"vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI\0",
24025                 );
24026                 let val = _f(cname);
24027                 if val.is_null() {
24028                     get_device_subpass_shading_max_workgroup_size_huawei
24029                 } else {
24030                     ::std::mem::transmute(val)
24031                 }
24032             },
24033             cmd_subpass_shading_huawei: unsafe {
24034                 unsafe extern "system" fn cmd_subpass_shading_huawei(
24035                     _command_buffer: CommandBuffer,
24036                 ) {
24037                     panic!(concat!(
24038                         "Unable to load ",
24039                         stringify!(cmd_subpass_shading_huawei)
24040                     ))
24041                 }
24042                 let cname =
24043                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSubpassShadingHUAWEI\0");
24044                 let val = _f(cname);
24045                 if val.is_null() {
24046                     cmd_subpass_shading_huawei
24047                 } else {
24048                     ::std::mem::transmute(val)
24049                 }
24050             },
24051         }
24052     }
24053     #[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, ) -> Result24054     pub unsafe fn get_device_subpass_shading_max_workgroup_size_huawei(
24055         &self,
24056         device: Device,
24057         renderpass: RenderPass,
24058         p_max_workgroup_size: *mut Extent2D,
24059     ) -> Result {
24060         (self.get_device_subpass_shading_max_workgroup_size_huawei)(
24061             device,
24062             renderpass,
24063             p_max_workgroup_size,
24064         )
24065     }
24066     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSubpassShadingHUAWEI.html>"]
cmd_subpass_shading_huawei(&self, command_buffer: CommandBuffer)24067     pub unsafe fn cmd_subpass_shading_huawei(&self, command_buffer: CommandBuffer) {
24068         (self.cmd_subpass_shading_huawei)(command_buffer)
24069     }
24070 }
24071 #[doc = "Generated from 'VK_HUAWEI_subpass_shading'"]
24072 impl StructureType {
24073     pub const SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI: Self = Self(1_000_369_000);
24074 }
24075 #[doc = "Generated from 'VK_HUAWEI_subpass_shading'"]
24076 impl StructureType {
24077     pub const PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI: Self = Self(1_000_369_001);
24078 }
24079 #[doc = "Generated from 'VK_HUAWEI_subpass_shading'"]
24080 impl StructureType {
24081     pub const PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI: Self = Self(1_000_369_002);
24082 }
24083 #[doc = "Generated from 'VK_HUAWEI_subpass_shading'"]
24084 impl PipelineBindPoint {
24085     pub const SUBPASS_SHADING_HUAWEI: Self = Self(1_000_369_003);
24086 }
24087 #[doc = "Generated from 'VK_HUAWEI_subpass_shading'"]
24088 impl PipelineStageFlags2KHR {
24089     pub const SUBPASS_SHADING_HUAWEI: Self =
24090         Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
24091 }
24092 #[doc = "Generated from 'VK_HUAWEI_subpass_shading'"]
24093 impl ShaderStageFlags {
24094     pub const SUBPASS_SHADING_HUAWEI: Self = Self(0b100_0000_0000_0000);
24095 }
24096 impl HuaweiInvocationMaskFn {
name() -> &'static ::std::ffi::CStr24097     pub fn name() -> &'static ::std::ffi::CStr {
24098         ::std::ffi::CStr::from_bytes_with_nul(b"VK_HUAWEI_invocation_mask\0")
24099             .expect("Wrong extension string")
24100     }
24101     pub const SPEC_VERSION: u32 = 1u32;
24102 }
24103 #[allow(non_camel_case_types)]
24104 pub type PFN_vkCmdBindInvocationMaskHUAWEI = unsafe extern "system" fn(
24105     command_buffer: CommandBuffer,
24106     image_view: ImageView,
24107     image_layout: ImageLayout,
24108 );
24109 #[derive(Clone)]
24110 pub struct HuaweiInvocationMaskFn {
24111     pub cmd_bind_invocation_mask_huawei: PFN_vkCmdBindInvocationMaskHUAWEI,
24112 }
24113 unsafe impl Send for HuaweiInvocationMaskFn {}
24114 unsafe impl Sync for HuaweiInvocationMaskFn {}
24115 impl HuaweiInvocationMaskFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24116     pub fn load<F>(mut _f: F) -> Self
24117     where
24118         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24119     {
24120         HuaweiInvocationMaskFn {
24121             cmd_bind_invocation_mask_huawei: unsafe {
24122                 unsafe extern "system" fn cmd_bind_invocation_mask_huawei(
24123                     _command_buffer: CommandBuffer,
24124                     _image_view: ImageView,
24125                     _image_layout: ImageLayout,
24126                 ) {
24127                     panic!(concat!(
24128                         "Unable to load ",
24129                         stringify!(cmd_bind_invocation_mask_huawei)
24130                     ))
24131                 }
24132                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
24133                     b"vkCmdBindInvocationMaskHUAWEI\0",
24134                 );
24135                 let val = _f(cname);
24136                 if val.is_null() {
24137                     cmd_bind_invocation_mask_huawei
24138                 } else {
24139                     ::std::mem::transmute(val)
24140                 }
24141             },
24142         }
24143     }
24144     #[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, )24145     pub unsafe fn cmd_bind_invocation_mask_huawei(
24146         &self,
24147         command_buffer: CommandBuffer,
24148         image_view: ImageView,
24149         image_layout: ImageLayout,
24150     ) {
24151         (self.cmd_bind_invocation_mask_huawei)(command_buffer, image_view, image_layout)
24152     }
24153 }
24154 #[doc = "Generated from 'VK_HUAWEI_invocation_mask'"]
24155 impl StructureType {
24156     pub const PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI: Self = Self(1_000_370_000);
24157 }
24158 #[doc = "Generated from 'VK_HUAWEI_invocation_mask'"]
24159 impl AccessFlags2KHR {
24160     pub const INVOCATION_MASK_READ_HUAWEI: Self =
24161         Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
24162 }
24163 #[doc = "Generated from 'VK_HUAWEI_invocation_mask'"]
24164 impl ImageUsageFlags {
24165     pub const INVOCATION_MASK_HUAWEI: Self = Self(0b100_0000_0000_0000_0000);
24166 }
24167 #[doc = "Generated from 'VK_HUAWEI_invocation_mask'"]
24168 impl PipelineStageFlags2KHR {
24169     pub const INVOCATION_MASK_HUAWEI: Self =
24170         Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
24171 }
24172 impl NvExternalMemoryRdmaFn {
name() -> &'static ::std::ffi::CStr24173     pub fn name() -> &'static ::std::ffi::CStr {
24174         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_external_memory_rdma\0")
24175             .expect("Wrong extension string")
24176     }
24177     pub const SPEC_VERSION: u32 = 1u32;
24178 }
24179 #[allow(non_camel_case_types)]
24180 pub type PFN_vkGetMemoryRemoteAddressNV = unsafe extern "system" fn(
24181     device: Device,
24182     p_memory_get_remote_address_info: *const MemoryGetRemoteAddressInfoNV,
24183     p_address: *mut RemoteAddressNV,
24184 ) -> Result;
24185 #[derive(Clone)]
24186 pub struct NvExternalMemoryRdmaFn {
24187     pub get_memory_remote_address_nv: PFN_vkGetMemoryRemoteAddressNV,
24188 }
24189 unsafe impl Send for NvExternalMemoryRdmaFn {}
24190 unsafe impl Sync for NvExternalMemoryRdmaFn {}
24191 impl NvExternalMemoryRdmaFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24192     pub fn load<F>(mut _f: F) -> Self
24193     where
24194         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24195     {
24196         NvExternalMemoryRdmaFn {
24197             get_memory_remote_address_nv: unsafe {
24198                 unsafe extern "system" fn get_memory_remote_address_nv(
24199                     _device: Device,
24200                     _p_memory_get_remote_address_info: *const MemoryGetRemoteAddressInfoNV,
24201                     _p_address: *mut RemoteAddressNV,
24202                 ) -> Result {
24203                     panic!(concat!(
24204                         "Unable to load ",
24205                         stringify!(get_memory_remote_address_nv)
24206                     ))
24207                 }
24208                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
24209                     b"vkGetMemoryRemoteAddressNV\0",
24210                 );
24211                 let val = _f(cname);
24212                 if val.is_null() {
24213                     get_memory_remote_address_nv
24214                 } else {
24215                     ::std::mem::transmute(val)
24216                 }
24217             },
24218         }
24219     }
24220     #[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, ) -> Result24221     pub unsafe fn get_memory_remote_address_nv(
24222         &self,
24223         device: Device,
24224         p_memory_get_remote_address_info: *const MemoryGetRemoteAddressInfoNV,
24225         p_address: *mut RemoteAddressNV,
24226     ) -> Result {
24227         (self.get_memory_remote_address_nv)(device, p_memory_get_remote_address_info, p_address)
24228     }
24229 }
24230 #[doc = "Generated from 'VK_NV_external_memory_rdma'"]
24231 impl StructureType {
24232     pub const MEMORY_GET_REMOTE_ADDRESS_INFO_NV: Self = Self(1_000_371_000);
24233 }
24234 #[doc = "Generated from 'VK_NV_external_memory_rdma'"]
24235 impl StructureType {
24236     pub const PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV: Self = Self(1_000_371_001);
24237 }
24238 #[doc = "Generated from 'VK_NV_external_memory_rdma'"]
24239 impl MemoryPropertyFlags {
24240     pub const RDMA_CAPABLE_NV: Self = Self(0b1_0000_0000);
24241 }
24242 #[doc = "Generated from 'VK_NV_external_memory_rdma'"]
24243 impl ExternalMemoryHandleTypeFlags {
24244     pub const RDMA_ADDRESS_NV: Self = Self(0b1_0000_0000_0000);
24245 }
24246 impl NvExtension373Fn {
name() -> &'static ::std::ffi::CStr24247     pub fn name() -> &'static ::std::ffi::CStr {
24248         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_extension_373\0")
24249             .expect("Wrong extension string")
24250     }
24251     pub const SPEC_VERSION: u32 = 0u32;
24252 }
24253 #[derive(Clone)]
24254 pub struct NvExtension373Fn {}
24255 unsafe impl Send for NvExtension373Fn {}
24256 unsafe impl Sync for NvExtension373Fn {}
24257 impl NvExtension373Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24258     pub fn load<F>(mut _f: F) -> Self
24259     where
24260         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24261     {
24262         NvExtension373Fn {}
24263     }
24264 }
24265 impl NvExtension374Fn {
name() -> &'static ::std::ffi::CStr24266     pub fn name() -> &'static ::std::ffi::CStr {
24267         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_extension_374\0")
24268             .expect("Wrong extension string")
24269     }
24270     pub const SPEC_VERSION: u32 = 0u32;
24271 }
24272 #[derive(Clone)]
24273 pub struct NvExtension374Fn {}
24274 unsafe impl Send for NvExtension374Fn {}
24275 unsafe impl Sync for NvExtension374Fn {}
24276 impl NvExtension374Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24277     pub fn load<F>(mut _f: F) -> Self
24278     where
24279         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24280     {
24281         NvExtension374Fn {}
24282     }
24283 }
24284 #[doc = "Generated from 'VK_NV_extension_374'"]
24285 impl ExternalFenceHandleTypeFlags {
24286     pub const RESERVED_4_NV: Self = Self(0b1_0000);
24287 }
24288 #[doc = "Generated from 'VK_NV_extension_374'"]
24289 impl ExternalFenceHandleTypeFlags {
24290     pub const RESERVED_5_NV: Self = Self(0b10_0000);
24291 }
24292 #[doc = "Generated from 'VK_NV_extension_374'"]
24293 impl ExternalSemaphoreHandleTypeFlags {
24294     pub const RESERVED_5_NV: Self = Self(0b10_0000);
24295 }
24296 #[doc = "Generated from 'VK_NV_extension_374'"]
24297 impl ExternalSemaphoreHandleTypeFlags {
24298     pub const RESERVED_6_NV: Self = Self(0b100_0000);
24299 }
24300 impl NvExtension375Fn {
name() -> &'static ::std::ffi::CStr24301     pub fn name() -> &'static ::std::ffi::CStr {
24302         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_extension_375\0")
24303             .expect("Wrong extension string")
24304     }
24305     pub const SPEC_VERSION: u32 = 0u32;
24306 }
24307 #[derive(Clone)]
24308 pub struct NvExtension375Fn {}
24309 unsafe impl Send for NvExtension375Fn {}
24310 unsafe impl Sync for NvExtension375Fn {}
24311 impl NvExtension375Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24312     pub fn load<F>(mut _f: F) -> Self
24313     where
24314         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24315     {
24316         NvExtension375Fn {}
24317     }
24318 }
24319 #[doc = "Generated from 'VK_NV_extension_375'"]
24320 impl ExternalMemoryHandleTypeFlags {
24321     pub const RESERVED_13_NV: Self = Self(0b10_0000_0000_0000);
24322 }
24323 impl ExtExtension376Fn {
name() -> &'static ::std::ffi::CStr24324     pub fn name() -> &'static ::std::ffi::CStr {
24325         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_376\0")
24326             .expect("Wrong extension string")
24327     }
24328     pub const SPEC_VERSION: u32 = 0u32;
24329 }
24330 #[derive(Clone)]
24331 pub struct ExtExtension376Fn {}
24332 unsafe impl Send for ExtExtension376Fn {}
24333 unsafe impl Sync for ExtExtension376Fn {}
24334 impl ExtExtension376Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24335     pub fn load<F>(mut _f: F) -> Self
24336     where
24337         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24338     {
24339         ExtExtension376Fn {}
24340     }
24341 }
24342 impl ExtExtension377Fn {
name() -> &'static ::std::ffi::CStr24343     pub fn name() -> &'static ::std::ffi::CStr {
24344         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_377\0")
24345             .expect("Wrong extension string")
24346     }
24347     pub const SPEC_VERSION: u32 = 0u32;
24348 }
24349 #[derive(Clone)]
24350 pub struct ExtExtension377Fn {}
24351 unsafe impl Send for ExtExtension377Fn {}
24352 unsafe impl Sync for ExtExtension377Fn {}
24353 impl ExtExtension377Fn {
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         ExtExtension377Fn {}
24359     }
24360 }
24361 impl ExtExtendedDynamicState2Fn {
name() -> &'static ::std::ffi::CStr24362     pub fn name() -> &'static ::std::ffi::CStr {
24363         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extended_dynamic_state2\0")
24364             .expect("Wrong extension string")
24365     }
24366     pub const SPEC_VERSION: u32 = 1u32;
24367 }
24368 #[allow(non_camel_case_types)]
24369 pub type PFN_vkCmdSetPatchControlPointsEXT =
24370     unsafe extern "system" fn(command_buffer: CommandBuffer, patch_control_points: u32);
24371 #[allow(non_camel_case_types)]
24372 pub type PFN_vkCmdSetRasterizerDiscardEnableEXT =
24373     unsafe extern "system" fn(command_buffer: CommandBuffer, rasterizer_discard_enable: Bool32);
24374 #[allow(non_camel_case_types)]
24375 pub type PFN_vkCmdSetDepthBiasEnableEXT =
24376     unsafe extern "system" fn(command_buffer: CommandBuffer, depth_bias_enable: Bool32);
24377 #[allow(non_camel_case_types)]
24378 pub type PFN_vkCmdSetLogicOpEXT =
24379     unsafe extern "system" fn(command_buffer: CommandBuffer, logic_op: LogicOp);
24380 #[allow(non_camel_case_types)]
24381 pub type PFN_vkCmdSetPrimitiveRestartEnableEXT =
24382     unsafe extern "system" fn(command_buffer: CommandBuffer, primitive_restart_enable: Bool32);
24383 #[derive(Clone)]
24384 pub struct ExtExtendedDynamicState2Fn {
24385     pub cmd_set_patch_control_points_ext: PFN_vkCmdSetPatchControlPointsEXT,
24386     pub cmd_set_rasterizer_discard_enable_ext: PFN_vkCmdSetRasterizerDiscardEnableEXT,
24387     pub cmd_set_depth_bias_enable_ext: PFN_vkCmdSetDepthBiasEnableEXT,
24388     pub cmd_set_logic_op_ext: PFN_vkCmdSetLogicOpEXT,
24389     pub cmd_set_primitive_restart_enable_ext: PFN_vkCmdSetPrimitiveRestartEnableEXT,
24390 }
24391 unsafe impl Send for ExtExtendedDynamicState2Fn {}
24392 unsafe impl Sync for ExtExtendedDynamicState2Fn {}
24393 impl ExtExtendedDynamicState2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24394     pub fn load<F>(mut _f: F) -> Self
24395     where
24396         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24397     {
24398         ExtExtendedDynamicState2Fn {
24399             cmd_set_patch_control_points_ext: unsafe {
24400                 unsafe extern "system" fn cmd_set_patch_control_points_ext(
24401                     _command_buffer: CommandBuffer,
24402                     _patch_control_points: u32,
24403                 ) {
24404                     panic!(concat!(
24405                         "Unable to load ",
24406                         stringify!(cmd_set_patch_control_points_ext)
24407                     ))
24408                 }
24409                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
24410                     b"vkCmdSetPatchControlPointsEXT\0",
24411                 );
24412                 let val = _f(cname);
24413                 if val.is_null() {
24414                     cmd_set_patch_control_points_ext
24415                 } else {
24416                     ::std::mem::transmute(val)
24417                 }
24418             },
24419             cmd_set_rasterizer_discard_enable_ext: unsafe {
24420                 unsafe extern "system" fn cmd_set_rasterizer_discard_enable_ext(
24421                     _command_buffer: CommandBuffer,
24422                     _rasterizer_discard_enable: Bool32,
24423                 ) {
24424                     panic!(concat!(
24425                         "Unable to load ",
24426                         stringify!(cmd_set_rasterizer_discard_enable_ext)
24427                     ))
24428                 }
24429                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
24430                     b"vkCmdSetRasterizerDiscardEnableEXT\0",
24431                 );
24432                 let val = _f(cname);
24433                 if val.is_null() {
24434                     cmd_set_rasterizer_discard_enable_ext
24435                 } else {
24436                     ::std::mem::transmute(val)
24437                 }
24438             },
24439             cmd_set_depth_bias_enable_ext: unsafe {
24440                 unsafe extern "system" fn cmd_set_depth_bias_enable_ext(
24441                     _command_buffer: CommandBuffer,
24442                     _depth_bias_enable: Bool32,
24443                 ) {
24444                     panic!(concat!(
24445                         "Unable to load ",
24446                         stringify!(cmd_set_depth_bias_enable_ext)
24447                     ))
24448                 }
24449                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
24450                     b"vkCmdSetDepthBiasEnableEXT\0",
24451                 );
24452                 let val = _f(cname);
24453                 if val.is_null() {
24454                     cmd_set_depth_bias_enable_ext
24455                 } else {
24456                     ::std::mem::transmute(val)
24457                 }
24458             },
24459             cmd_set_logic_op_ext: unsafe {
24460                 unsafe extern "system" fn cmd_set_logic_op_ext(
24461                     _command_buffer: CommandBuffer,
24462                     _logic_op: LogicOp,
24463                 ) {
24464                     panic!(concat!("Unable to load ", stringify!(cmd_set_logic_op_ext)))
24465                 }
24466                 let cname =
24467                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLogicOpEXT\0");
24468                 let val = _f(cname);
24469                 if val.is_null() {
24470                     cmd_set_logic_op_ext
24471                 } else {
24472                     ::std::mem::transmute(val)
24473                 }
24474             },
24475             cmd_set_primitive_restart_enable_ext: unsafe {
24476                 unsafe extern "system" fn cmd_set_primitive_restart_enable_ext(
24477                     _command_buffer: CommandBuffer,
24478                     _primitive_restart_enable: Bool32,
24479                 ) {
24480                     panic!(concat!(
24481                         "Unable to load ",
24482                         stringify!(cmd_set_primitive_restart_enable_ext)
24483                     ))
24484                 }
24485                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
24486                     b"vkCmdSetPrimitiveRestartEnableEXT\0",
24487                 );
24488                 let val = _f(cname);
24489                 if val.is_null() {
24490                     cmd_set_primitive_restart_enable_ext
24491                 } else {
24492                     ::std::mem::transmute(val)
24493                 }
24494             },
24495         }
24496     }
24497     #[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, )24498     pub unsafe fn cmd_set_patch_control_points_ext(
24499         &self,
24500         command_buffer: CommandBuffer,
24501         patch_control_points: u32,
24502     ) {
24503         (self.cmd_set_patch_control_points_ext)(command_buffer, patch_control_points)
24504     }
24505     #[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, )24506     pub unsafe fn cmd_set_rasterizer_discard_enable_ext(
24507         &self,
24508         command_buffer: CommandBuffer,
24509         rasterizer_discard_enable: Bool32,
24510     ) {
24511         (self.cmd_set_rasterizer_discard_enable_ext)(command_buffer, rasterizer_discard_enable)
24512     }
24513     #[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, )24514     pub unsafe fn cmd_set_depth_bias_enable_ext(
24515         &self,
24516         command_buffer: CommandBuffer,
24517         depth_bias_enable: Bool32,
24518     ) {
24519         (self.cmd_set_depth_bias_enable_ext)(command_buffer, depth_bias_enable)
24520     }
24521     #[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)24522     pub unsafe fn cmd_set_logic_op_ext(&self, command_buffer: CommandBuffer, logic_op: LogicOp) {
24523         (self.cmd_set_logic_op_ext)(command_buffer, logic_op)
24524     }
24525     #[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, )24526     pub unsafe fn cmd_set_primitive_restart_enable_ext(
24527         &self,
24528         command_buffer: CommandBuffer,
24529         primitive_restart_enable: Bool32,
24530     ) {
24531         (self.cmd_set_primitive_restart_enable_ext)(command_buffer, primitive_restart_enable)
24532     }
24533 }
24534 #[doc = "Generated from 'VK_EXT_extended_dynamic_state2'"]
24535 impl StructureType {
24536     pub const PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: Self = Self(1_000_377_000);
24537 }
24538 #[doc = "Generated from 'VK_EXT_extended_dynamic_state2'"]
24539 impl DynamicState {
24540     pub const PATCH_CONTROL_POINTS_EXT: Self = Self(1_000_377_000);
24541 }
24542 #[doc = "Generated from 'VK_EXT_extended_dynamic_state2'"]
24543 impl DynamicState {
24544     pub const RASTERIZER_DISCARD_ENABLE_EXT: Self = Self(1_000_377_001);
24545 }
24546 #[doc = "Generated from 'VK_EXT_extended_dynamic_state2'"]
24547 impl DynamicState {
24548     pub const DEPTH_BIAS_ENABLE_EXT: Self = Self(1_000_377_002);
24549 }
24550 #[doc = "Generated from 'VK_EXT_extended_dynamic_state2'"]
24551 impl DynamicState {
24552     pub const LOGIC_OP_EXT: Self = Self(1_000_377_003);
24553 }
24554 #[doc = "Generated from 'VK_EXT_extended_dynamic_state2'"]
24555 impl DynamicState {
24556     pub const PRIMITIVE_RESTART_ENABLE_EXT: Self = Self(1_000_377_004);
24557 }
24558 impl QnxScreenSurfaceFn {
name() -> &'static ::std::ffi::CStr24559     pub fn name() -> &'static ::std::ffi::CStr {
24560         ::std::ffi::CStr::from_bytes_with_nul(b"VK_QNX_screen_surface\0")
24561             .expect("Wrong extension string")
24562     }
24563     pub const SPEC_VERSION: u32 = 1u32;
24564 }
24565 #[allow(non_camel_case_types)]
24566 pub type PFN_vkCreateScreenSurfaceQNX = unsafe extern "system" fn(
24567     instance: Instance,
24568     p_create_info: *const ScreenSurfaceCreateInfoQNX,
24569     p_allocator: *const AllocationCallbacks,
24570     p_surface: *mut SurfaceKHR,
24571 ) -> Result;
24572 #[allow(non_camel_case_types)]
24573 pub type PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX = unsafe extern "system" fn(
24574     physical_device: PhysicalDevice,
24575     queue_family_index: u32,
24576     window: *mut _screen_window,
24577 ) -> Bool32;
24578 #[derive(Clone)]
24579 pub struct QnxScreenSurfaceFn {
24580     pub create_screen_surface_qnx: PFN_vkCreateScreenSurfaceQNX,
24581     pub get_physical_device_screen_presentation_support_qnx:
24582         PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX,
24583 }
24584 unsafe impl Send for QnxScreenSurfaceFn {}
24585 unsafe impl Sync for QnxScreenSurfaceFn {}
24586 impl QnxScreenSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24587     pub fn load<F>(mut _f: F) -> Self
24588     where
24589         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24590     {
24591         QnxScreenSurfaceFn {
24592             create_screen_surface_qnx: unsafe {
24593                 unsafe extern "system" fn create_screen_surface_qnx(
24594                     _instance: Instance,
24595                     _p_create_info: *const ScreenSurfaceCreateInfoQNX,
24596                     _p_allocator: *const AllocationCallbacks,
24597                     _p_surface: *mut SurfaceKHR,
24598                 ) -> Result {
24599                     panic!(concat!(
24600                         "Unable to load ",
24601                         stringify!(create_screen_surface_qnx)
24602                     ))
24603                 }
24604                 let cname =
24605                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateScreenSurfaceQNX\0");
24606                 let val = _f(cname);
24607                 if val.is_null() {
24608                     create_screen_surface_qnx
24609                 } else {
24610                     ::std::mem::transmute(val)
24611                 }
24612             },
24613             get_physical_device_screen_presentation_support_qnx: unsafe {
24614                 unsafe extern "system" fn get_physical_device_screen_presentation_support_qnx(
24615                     _physical_device: PhysicalDevice,
24616                     _queue_family_index: u32,
24617                     _window: *mut _screen_window,
24618                 ) -> Bool32 {
24619                     panic!(concat!(
24620                         "Unable to load ",
24621                         stringify!(get_physical_device_screen_presentation_support_qnx)
24622                     ))
24623                 }
24624                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
24625                     b"vkGetPhysicalDeviceScreenPresentationSupportQNX\0",
24626                 );
24627                 let val = _f(cname);
24628                 if val.is_null() {
24629                     get_physical_device_screen_presentation_support_qnx
24630                 } else {
24631                     ::std::mem::transmute(val)
24632                 }
24633             },
24634         }
24635     }
24636     #[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, ) -> Result24637     pub unsafe fn create_screen_surface_qnx(
24638         &self,
24639         instance: Instance,
24640         p_create_info: *const ScreenSurfaceCreateInfoQNX,
24641         p_allocator: *const AllocationCallbacks,
24642         p_surface: *mut SurfaceKHR,
24643     ) -> Result {
24644         (self.create_screen_surface_qnx)(instance, p_create_info, p_allocator, p_surface)
24645     }
24646     #[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, ) -> Bool3224647     pub unsafe fn get_physical_device_screen_presentation_support_qnx(
24648         &self,
24649         physical_device: PhysicalDevice,
24650         queue_family_index: u32,
24651         window: *mut _screen_window,
24652     ) -> Bool32 {
24653         (self.get_physical_device_screen_presentation_support_qnx)(
24654             physical_device,
24655             queue_family_index,
24656             window,
24657         )
24658     }
24659 }
24660 #[doc = "Generated from 'VK_QNX_screen_surface'"]
24661 impl StructureType {
24662     pub const SCREEN_SURFACE_CREATE_INFO_QNX: Self = Self(1_000_378_000);
24663 }
24664 impl KhrExtension380Fn {
name() -> &'static ::std::ffi::CStr24665     pub fn name() -> &'static ::std::ffi::CStr {
24666         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_380\0")
24667             .expect("Wrong extension string")
24668     }
24669     pub const SPEC_VERSION: u32 = 0u32;
24670 }
24671 #[derive(Clone)]
24672 pub struct KhrExtension380Fn {}
24673 unsafe impl Send for KhrExtension380Fn {}
24674 unsafe impl Sync for KhrExtension380Fn {}
24675 impl KhrExtension380Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24676     pub fn load<F>(mut _f: F) -> Self
24677     where
24678         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24679     {
24680         KhrExtension380Fn {}
24681     }
24682 }
24683 impl KhrExtension381Fn {
name() -> &'static ::std::ffi::CStr24684     pub fn name() -> &'static ::std::ffi::CStr {
24685         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_381\0")
24686             .expect("Wrong extension string")
24687     }
24688     pub const SPEC_VERSION: u32 = 0u32;
24689 }
24690 #[derive(Clone)]
24691 pub struct KhrExtension381Fn {}
24692 unsafe impl Send for KhrExtension381Fn {}
24693 unsafe impl Sync for KhrExtension381Fn {}
24694 impl KhrExtension381Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24695     pub fn load<F>(mut _f: F) -> Self
24696     where
24697         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24698     {
24699         KhrExtension381Fn {}
24700     }
24701 }
24702 impl ExtColorWriteEnableFn {
name() -> &'static ::std::ffi::CStr24703     pub fn name() -> &'static ::std::ffi::CStr {
24704         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_color_write_enable\0")
24705             .expect("Wrong extension string")
24706     }
24707     pub const SPEC_VERSION: u32 = 1u32;
24708 }
24709 #[allow(non_camel_case_types)]
24710 pub type PFN_vkCmdSetColorWriteEnableEXT = unsafe extern "system" fn(
24711     command_buffer: CommandBuffer,
24712     attachment_count: u32,
24713     p_color_write_enables: *const Bool32,
24714 );
24715 #[derive(Clone)]
24716 pub struct ExtColorWriteEnableFn {
24717     pub cmd_set_color_write_enable_ext: PFN_vkCmdSetColorWriteEnableEXT,
24718 }
24719 unsafe impl Send for ExtColorWriteEnableFn {}
24720 unsafe impl Sync for ExtColorWriteEnableFn {}
24721 impl ExtColorWriteEnableFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24722     pub fn load<F>(mut _f: F) -> Self
24723     where
24724         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24725     {
24726         ExtColorWriteEnableFn {
24727             cmd_set_color_write_enable_ext: unsafe {
24728                 unsafe extern "system" fn cmd_set_color_write_enable_ext(
24729                     _command_buffer: CommandBuffer,
24730                     _attachment_count: u32,
24731                     _p_color_write_enables: *const Bool32,
24732                 ) {
24733                     panic!(concat!(
24734                         "Unable to load ",
24735                         stringify!(cmd_set_color_write_enable_ext)
24736                     ))
24737                 }
24738                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
24739                     b"vkCmdSetColorWriteEnableEXT\0",
24740                 );
24741                 let val = _f(cname);
24742                 if val.is_null() {
24743                     cmd_set_color_write_enable_ext
24744                 } else {
24745                     ::std::mem::transmute(val)
24746                 }
24747             },
24748         }
24749     }
24750     #[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, )24751     pub unsafe fn cmd_set_color_write_enable_ext(
24752         &self,
24753         command_buffer: CommandBuffer,
24754         attachment_count: u32,
24755         p_color_write_enables: *const Bool32,
24756     ) {
24757         (self.cmd_set_color_write_enable_ext)(
24758             command_buffer,
24759             attachment_count,
24760             p_color_write_enables,
24761         )
24762     }
24763 }
24764 #[doc = "Generated from 'VK_EXT_color_write_enable'"]
24765 impl StructureType {
24766     pub const PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: Self = Self(1_000_381_000);
24767 }
24768 #[doc = "Generated from 'VK_EXT_color_write_enable'"]
24769 impl StructureType {
24770     pub const PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: Self = Self(1_000_381_001);
24771 }
24772 #[doc = "Generated from 'VK_EXT_color_write_enable'"]
24773 impl DynamicState {
24774     pub const COLOR_WRITE_ENABLE_EXT: Self = Self(1_000_381_000);
24775 }
24776 impl ExtExtension383Fn {
name() -> &'static ::std::ffi::CStr24777     pub fn name() -> &'static ::std::ffi::CStr {
24778         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_383\0")
24779             .expect("Wrong extension string")
24780     }
24781     pub const SPEC_VERSION: u32 = 0u32;
24782 }
24783 #[derive(Clone)]
24784 pub struct ExtExtension383Fn {}
24785 unsafe impl Send for ExtExtension383Fn {}
24786 unsafe impl Sync for ExtExtension383Fn {}
24787 impl ExtExtension383Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24788     pub fn load<F>(mut _f: F) -> Self
24789     where
24790         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24791     {
24792         ExtExtension383Fn {}
24793     }
24794 }
24795 impl ExtExtension384Fn {
name() -> &'static ::std::ffi::CStr24796     pub fn name() -> &'static ::std::ffi::CStr {
24797         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_384\0")
24798             .expect("Wrong extension string")
24799     }
24800     pub const SPEC_VERSION: u32 = 0u32;
24801 }
24802 #[derive(Clone)]
24803 pub struct ExtExtension384Fn {}
24804 unsafe impl Send for ExtExtension384Fn {}
24805 unsafe impl Sync for ExtExtension384Fn {}
24806 impl ExtExtension384Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24807     pub fn load<F>(mut _f: F) -> Self
24808     where
24809         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24810     {
24811         ExtExtension384Fn {}
24812     }
24813 }
24814 impl MesaExtension385Fn {
name() -> &'static ::std::ffi::CStr24815     pub fn name() -> &'static ::std::ffi::CStr {
24816         ::std::ffi::CStr::from_bytes_with_nul(b"VK_MESA_extension_385\0")
24817             .expect("Wrong extension string")
24818     }
24819     pub const SPEC_VERSION: u32 = 0u32;
24820 }
24821 #[derive(Clone)]
24822 pub struct MesaExtension385Fn {}
24823 unsafe impl Send for MesaExtension385Fn {}
24824 unsafe impl Sync for MesaExtension385Fn {}
24825 impl MesaExtension385Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24826     pub fn load<F>(mut _f: F) -> Self
24827     where
24828         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24829     {
24830         MesaExtension385Fn {}
24831     }
24832 }
24833 impl GoogleExtension386Fn {
name() -> &'static ::std::ffi::CStr24834     pub fn name() -> &'static ::std::ffi::CStr {
24835         ::std::ffi::CStr::from_bytes_with_nul(b"VK_GOOGLE_extension_386\0")
24836             .expect("Wrong extension string")
24837     }
24838     pub const SPEC_VERSION: u32 = 0u32;
24839 }
24840 #[derive(Clone)]
24841 pub struct GoogleExtension386Fn {}
24842 unsafe impl Send for GoogleExtension386Fn {}
24843 unsafe impl Sync for GoogleExtension386Fn {}
24844 impl GoogleExtension386Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24845     pub fn load<F>(mut _f: F) -> Self
24846     where
24847         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24848     {
24849         GoogleExtension386Fn {}
24850     }
24851 }
24852 impl KhrExtension387Fn {
name() -> &'static ::std::ffi::CStr24853     pub fn name() -> &'static ::std::ffi::CStr {
24854         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_387\0")
24855             .expect("Wrong extension string")
24856     }
24857     pub const SPEC_VERSION: u32 = 0u32;
24858 }
24859 #[derive(Clone)]
24860 pub struct KhrExtension387Fn {}
24861 unsafe impl Send for KhrExtension387Fn {}
24862 unsafe impl Sync for KhrExtension387Fn {}
24863 impl KhrExtension387Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24864     pub fn load<F>(mut _f: F) -> Self
24865     where
24866         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24867     {
24868         KhrExtension387Fn {}
24869     }
24870 }
24871 impl ExtExtension388Fn {
name() -> &'static ::std::ffi::CStr24872     pub fn name() -> &'static ::std::ffi::CStr {
24873         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_388\0")
24874             .expect("Wrong extension string")
24875     }
24876     pub const SPEC_VERSION: u32 = 0u32;
24877 }
24878 #[derive(Clone)]
24879 pub struct ExtExtension388Fn {}
24880 unsafe impl Send for ExtExtension388Fn {}
24881 unsafe impl Sync for ExtExtension388Fn {}
24882 impl ExtExtension388Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24883     pub fn load<F>(mut _f: F) -> Self
24884     where
24885         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24886     {
24887         ExtExtension388Fn {}
24888     }
24889 }
24890 impl ExtGlobalPriorityQueryFn {
name() -> &'static ::std::ffi::CStr24891     pub fn name() -> &'static ::std::ffi::CStr {
24892         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_global_priority_query\0")
24893             .expect("Wrong extension string")
24894     }
24895     pub const SPEC_VERSION: u32 = 1u32;
24896 }
24897 #[derive(Clone)]
24898 pub struct ExtGlobalPriorityQueryFn {}
24899 unsafe impl Send for ExtGlobalPriorityQueryFn {}
24900 unsafe impl Sync for ExtGlobalPriorityQueryFn {}
24901 impl ExtGlobalPriorityQueryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24902     pub fn load<F>(mut _f: F) -> Self
24903     where
24904         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24905     {
24906         ExtGlobalPriorityQueryFn {}
24907     }
24908 }
24909 #[doc = "Generated from 'VK_EXT_global_priority_query'"]
24910 impl StructureType {
24911     pub const PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT: Self = Self(1_000_388_000);
24912 }
24913 #[doc = "Generated from 'VK_EXT_global_priority_query'"]
24914 impl StructureType {
24915     pub const QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT: Self = Self(1_000_388_001);
24916 }
24917 impl ExtExtension390Fn {
name() -> &'static ::std::ffi::CStr24918     pub fn name() -> &'static ::std::ffi::CStr {
24919         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_390\0")
24920             .expect("Wrong extension string")
24921     }
24922     pub const SPEC_VERSION: u32 = 0u32;
24923 }
24924 #[derive(Clone)]
24925 pub struct ExtExtension390Fn {}
24926 unsafe impl Send for ExtExtension390Fn {}
24927 unsafe impl Sync for ExtExtension390Fn {}
24928 impl ExtExtension390Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24929     pub fn load<F>(mut _f: F) -> Self
24930     where
24931         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24932     {
24933         ExtExtension390Fn {}
24934     }
24935 }
24936 impl ExtExtension391Fn {
name() -> &'static ::std::ffi::CStr24937     pub fn name() -> &'static ::std::ffi::CStr {
24938         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_391\0")
24939             .expect("Wrong extension string")
24940     }
24941     pub const SPEC_VERSION: u32 = 0u32;
24942 }
24943 #[derive(Clone)]
24944 pub struct ExtExtension391Fn {}
24945 unsafe impl Send for ExtExtension391Fn {}
24946 unsafe impl Sync for ExtExtension391Fn {}
24947 impl ExtExtension391Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24948     pub fn load<F>(mut _f: F) -> Self
24949     where
24950         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24951     {
24952         ExtExtension391Fn {}
24953     }
24954 }
24955 impl ExtExtension392Fn {
name() -> &'static ::std::ffi::CStr24956     pub fn name() -> &'static ::std::ffi::CStr {
24957         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_392\0")
24958             .expect("Wrong extension string")
24959     }
24960     pub const SPEC_VERSION: u32 = 0u32;
24961 }
24962 #[derive(Clone)]
24963 pub struct ExtExtension392Fn {}
24964 unsafe impl Send for ExtExtension392Fn {}
24965 unsafe impl Sync for ExtExtension392Fn {}
24966 impl ExtExtension392Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24967     pub fn load<F>(mut _f: F) -> Self
24968     where
24969         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24970     {
24971         ExtExtension392Fn {}
24972     }
24973 }
24974 impl ExtMultiDrawFn {
name() -> &'static ::std::ffi::CStr24975     pub fn name() -> &'static ::std::ffi::CStr {
24976         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_multi_draw\0")
24977             .expect("Wrong extension string")
24978     }
24979     pub const SPEC_VERSION: u32 = 1u32;
24980 }
24981 #[allow(non_camel_case_types)]
24982 pub type PFN_vkCmdDrawMultiEXT = unsafe extern "system" fn(
24983     command_buffer: CommandBuffer,
24984     draw_count: u32,
24985     p_vertex_info: *const MultiDrawInfoEXT,
24986     instance_count: u32,
24987     first_instance: u32,
24988     stride: u32,
24989 );
24990 #[allow(non_camel_case_types)]
24991 pub type PFN_vkCmdDrawMultiIndexedEXT = unsafe extern "system" fn(
24992     command_buffer: CommandBuffer,
24993     draw_count: u32,
24994     p_index_info: *const MultiDrawIndexedInfoEXT,
24995     instance_count: u32,
24996     first_instance: u32,
24997     stride: u32,
24998     p_vertex_offset: *const i32,
24999 );
25000 #[derive(Clone)]
25001 pub struct ExtMultiDrawFn {
25002     pub cmd_draw_multi_ext: PFN_vkCmdDrawMultiEXT,
25003     pub cmd_draw_multi_indexed_ext: PFN_vkCmdDrawMultiIndexedEXT,
25004 }
25005 unsafe impl Send for ExtMultiDrawFn {}
25006 unsafe impl Sync for ExtMultiDrawFn {}
25007 impl ExtMultiDrawFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25008     pub fn load<F>(mut _f: F) -> Self
25009     where
25010         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25011     {
25012         ExtMultiDrawFn {
25013             cmd_draw_multi_ext: unsafe {
25014                 unsafe extern "system" fn cmd_draw_multi_ext(
25015                     _command_buffer: CommandBuffer,
25016                     _draw_count: u32,
25017                     _p_vertex_info: *const MultiDrawInfoEXT,
25018                     _instance_count: u32,
25019                     _first_instance: u32,
25020                     _stride: u32,
25021                 ) {
25022                     panic!(concat!("Unable to load ", stringify!(cmd_draw_multi_ext)))
25023                 }
25024                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMultiEXT\0");
25025                 let val = _f(cname);
25026                 if val.is_null() {
25027                     cmd_draw_multi_ext
25028                 } else {
25029                     ::std::mem::transmute(val)
25030                 }
25031             },
25032             cmd_draw_multi_indexed_ext: unsafe {
25033                 unsafe extern "system" fn cmd_draw_multi_indexed_ext(
25034                     _command_buffer: CommandBuffer,
25035                     _draw_count: u32,
25036                     _p_index_info: *const MultiDrawIndexedInfoEXT,
25037                     _instance_count: u32,
25038                     _first_instance: u32,
25039                     _stride: u32,
25040                     _p_vertex_offset: *const i32,
25041                 ) {
25042                     panic!(concat!(
25043                         "Unable to load ",
25044                         stringify!(cmd_draw_multi_indexed_ext)
25045                     ))
25046                 }
25047                 let cname =
25048                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMultiIndexedEXT\0");
25049                 let val = _f(cname);
25050                 if val.is_null() {
25051                     cmd_draw_multi_indexed_ext
25052                 } else {
25053                     ::std::mem::transmute(val)
25054                 }
25055             },
25056         }
25057     }
25058     #[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, )25059     pub unsafe fn cmd_draw_multi_ext(
25060         &self,
25061         command_buffer: CommandBuffer,
25062         draw_count: u32,
25063         p_vertex_info: *const MultiDrawInfoEXT,
25064         instance_count: u32,
25065         first_instance: u32,
25066         stride: u32,
25067     ) {
25068         (self.cmd_draw_multi_ext)(
25069             command_buffer,
25070             draw_count,
25071             p_vertex_info,
25072             instance_count,
25073             first_instance,
25074             stride,
25075         )
25076     }
25077     #[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, )25078     pub unsafe fn cmd_draw_multi_indexed_ext(
25079         &self,
25080         command_buffer: CommandBuffer,
25081         draw_count: u32,
25082         p_index_info: *const MultiDrawIndexedInfoEXT,
25083         instance_count: u32,
25084         first_instance: u32,
25085         stride: u32,
25086         p_vertex_offset: *const i32,
25087     ) {
25088         (self.cmd_draw_multi_indexed_ext)(
25089             command_buffer,
25090             draw_count,
25091             p_index_info,
25092             instance_count,
25093             first_instance,
25094             stride,
25095             p_vertex_offset,
25096         )
25097     }
25098 }
25099 #[doc = "Generated from 'VK_EXT_multi_draw'"]
25100 impl StructureType {
25101     pub const PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT: Self = Self(1_000_392_000);
25102 }
25103 #[doc = "Generated from 'VK_EXT_multi_draw'"]
25104 impl StructureType {
25105     pub const PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT: Self = Self(1_000_392_001);
25106 }
25107 impl ExtExtension394Fn {
name() -> &'static ::std::ffi::CStr25108     pub fn name() -> &'static ::std::ffi::CStr {
25109         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_394\0")
25110             .expect("Wrong extension string")
25111     }
25112     pub const SPEC_VERSION: u32 = 0u32;
25113 }
25114 #[derive(Clone)]
25115 pub struct ExtExtension394Fn {}
25116 unsafe impl Send for ExtExtension394Fn {}
25117 unsafe impl Sync for ExtExtension394Fn {}
25118 impl ExtExtension394Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25119     pub fn load<F>(mut _f: F) -> Self
25120     where
25121         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25122     {
25123         ExtExtension394Fn {}
25124     }
25125 }
25126 impl KhrExtension395Fn {
name() -> &'static ::std::ffi::CStr25127     pub fn name() -> &'static ::std::ffi::CStr {
25128         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_395\0")
25129             .expect("Wrong extension string")
25130     }
25131     pub const SPEC_VERSION: u32 = 0u32;
25132 }
25133 #[derive(Clone)]
25134 pub struct KhrExtension395Fn {}
25135 unsafe impl Send for KhrExtension395Fn {}
25136 unsafe impl Sync for KhrExtension395Fn {}
25137 impl KhrExtension395Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25138     pub fn load<F>(mut _f: F) -> Self
25139     where
25140         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25141     {
25142         KhrExtension395Fn {}
25143     }
25144 }
25145 impl KhrExtension396Fn {
name() -> &'static ::std::ffi::CStr25146     pub fn name() -> &'static ::std::ffi::CStr {
25147         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_396\0")
25148             .expect("Wrong extension string")
25149     }
25150     pub const SPEC_VERSION: u32 = 0u32;
25151 }
25152 #[derive(Clone)]
25153 pub struct KhrExtension396Fn {}
25154 unsafe impl Send for KhrExtension396Fn {}
25155 unsafe impl Sync for KhrExtension396Fn {}
25156 impl KhrExtension396Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25157     pub fn load<F>(mut _f: F) -> Self
25158     where
25159         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25160     {
25161         KhrExtension396Fn {}
25162     }
25163 }
25164 impl NvExtension397Fn {
name() -> &'static ::std::ffi::CStr25165     pub fn name() -> &'static ::std::ffi::CStr {
25166         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_extension_397\0")
25167             .expect("Wrong extension string")
25168     }
25169     pub const SPEC_VERSION: u32 = 0u32;
25170 }
25171 #[derive(Clone)]
25172 pub struct NvExtension397Fn {}
25173 unsafe impl Send for NvExtension397Fn {}
25174 unsafe impl Sync for NvExtension397Fn {}
25175 impl NvExtension397Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25176     pub fn load<F>(mut _f: F) -> Self
25177     where
25178         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25179     {
25180         NvExtension397Fn {}
25181     }
25182 }
25183 impl NvExtension398Fn {
name() -> &'static ::std::ffi::CStr25184     pub fn name() -> &'static ::std::ffi::CStr {
25185         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_extension_398\0")
25186             .expect("Wrong extension string")
25187     }
25188     pub const SPEC_VERSION: u32 = 0u32;
25189 }
25190 #[derive(Clone)]
25191 pub struct NvExtension398Fn {}
25192 unsafe impl Send for NvExtension398Fn {}
25193 unsafe impl Sync for NvExtension398Fn {}
25194 impl NvExtension398Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25195     pub fn load<F>(mut _f: F) -> Self
25196     where
25197         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25198     {
25199         NvExtension398Fn {}
25200     }
25201 }
25202 impl JuiceExtension399Fn {
name() -> &'static ::std::ffi::CStr25203     pub fn name() -> &'static ::std::ffi::CStr {
25204         ::std::ffi::CStr::from_bytes_with_nul(b"VK_JUICE_extension_399\0")
25205             .expect("Wrong extension string")
25206     }
25207     pub const SPEC_VERSION: u32 = 0u32;
25208 }
25209 #[derive(Clone)]
25210 pub struct JuiceExtension399Fn {}
25211 unsafe impl Send for JuiceExtension399Fn {}
25212 unsafe impl Sync for JuiceExtension399Fn {}
25213 impl JuiceExtension399Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25214     pub fn load<F>(mut _f: F) -> Self
25215     where
25216         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25217     {
25218         JuiceExtension399Fn {}
25219     }
25220 }
25221 impl JuiceExtension400Fn {
name() -> &'static ::std::ffi::CStr25222     pub fn name() -> &'static ::std::ffi::CStr {
25223         ::std::ffi::CStr::from_bytes_with_nul(b"VK_JUICE_extension_400\0")
25224             .expect("Wrong extension string")
25225     }
25226     pub const SPEC_VERSION: u32 = 0u32;
25227 }
25228 #[derive(Clone)]
25229 pub struct JuiceExtension400Fn {}
25230 unsafe impl Send for JuiceExtension400Fn {}
25231 unsafe impl Sync for JuiceExtension400Fn {}
25232 impl JuiceExtension400Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25233     pub fn load<F>(mut _f: F) -> Self
25234     where
25235         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25236     {
25237         JuiceExtension400Fn {}
25238     }
25239 }
25240 impl ExtLoadStoreOpNoneFn {
name() -> &'static ::std::ffi::CStr25241     pub fn name() -> &'static ::std::ffi::CStr {
25242         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_load_store_op_none\0")
25243             .expect("Wrong extension string")
25244     }
25245     pub const SPEC_VERSION: u32 = 1u32;
25246 }
25247 #[derive(Clone)]
25248 pub struct ExtLoadStoreOpNoneFn {}
25249 unsafe impl Send for ExtLoadStoreOpNoneFn {}
25250 unsafe impl Sync for ExtLoadStoreOpNoneFn {}
25251 impl ExtLoadStoreOpNoneFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25252     pub fn load<F>(mut _f: F) -> Self
25253     where
25254         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25255     {
25256         ExtLoadStoreOpNoneFn {}
25257     }
25258 }
25259 #[doc = "Generated from 'VK_EXT_load_store_op_none'"]
25260 impl AttachmentLoadOp {
25261     pub const NONE_EXT: Self = Self(1_000_400_000);
25262 }
25263 #[doc = "Generated from 'VK_EXT_load_store_op_none'"]
25264 impl AttachmentStoreOp {
25265     pub const NONE_EXT: Self = Self(1_000_301_000);
25266 }
25267 impl FbExtension402Fn {
name() -> &'static ::std::ffi::CStr25268     pub fn name() -> &'static ::std::ffi::CStr {
25269         ::std::ffi::CStr::from_bytes_with_nul(b"VK_FB_extension_402\0")
25270             .expect("Wrong extension string")
25271     }
25272     pub const SPEC_VERSION: u32 = 0u32;
25273 }
25274 #[derive(Clone)]
25275 pub struct FbExtension402Fn {}
25276 unsafe impl Send for FbExtension402Fn {}
25277 unsafe impl Sync for FbExtension402Fn {}
25278 impl FbExtension402Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25279     pub fn load<F>(mut _f: F) -> Self
25280     where
25281         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25282     {
25283         FbExtension402Fn {}
25284     }
25285 }
25286 impl FbExtension403Fn {
name() -> &'static ::std::ffi::CStr25287     pub fn name() -> &'static ::std::ffi::CStr {
25288         ::std::ffi::CStr::from_bytes_with_nul(b"VK_FB_extension_403\0")
25289             .expect("Wrong extension string")
25290     }
25291     pub const SPEC_VERSION: u32 = 0u32;
25292 }
25293 #[derive(Clone)]
25294 pub struct FbExtension403Fn {}
25295 unsafe impl Send for FbExtension403Fn {}
25296 unsafe impl Sync for FbExtension403Fn {}
25297 impl FbExtension403Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25298     pub fn load<F>(mut _f: F) -> Self
25299     where
25300         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25301     {
25302         FbExtension403Fn {}
25303     }
25304 }
25305 impl FbExtension404Fn {
name() -> &'static ::std::ffi::CStr25306     pub fn name() -> &'static ::std::ffi::CStr {
25307         ::std::ffi::CStr::from_bytes_with_nul(b"VK_FB_extension_404\0")
25308             .expect("Wrong extension string")
25309     }
25310     pub const SPEC_VERSION: u32 = 0u32;
25311 }
25312 #[derive(Clone)]
25313 pub struct FbExtension404Fn {}
25314 unsafe impl Send for FbExtension404Fn {}
25315 unsafe impl Sync for FbExtension404Fn {}
25316 impl FbExtension404Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25317     pub fn load<F>(mut _f: F) -> Self
25318     where
25319         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25320     {
25321         FbExtension404Fn {}
25322     }
25323 }
25324 impl HuaweiExtension405Fn {
name() -> &'static ::std::ffi::CStr25325     pub fn name() -> &'static ::std::ffi::CStr {
25326         ::std::ffi::CStr::from_bytes_with_nul(b"VK_HUAWEI_extension_405\0")
25327             .expect("Wrong extension string")
25328     }
25329     pub const SPEC_VERSION: u32 = 0u32;
25330 }
25331 #[derive(Clone)]
25332 pub struct HuaweiExtension405Fn {}
25333 unsafe impl Send for HuaweiExtension405Fn {}
25334 unsafe impl Sync for HuaweiExtension405Fn {}
25335 impl HuaweiExtension405Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25336     pub fn load<F>(mut _f: F) -> Self
25337     where
25338         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25339     {
25340         HuaweiExtension405Fn {}
25341     }
25342 }
25343 impl HuaweiExtension406Fn {
name() -> &'static ::std::ffi::CStr25344     pub fn name() -> &'static ::std::ffi::CStr {
25345         ::std::ffi::CStr::from_bytes_with_nul(b"VK_HUAWEI_extension_406\0")
25346             .expect("Wrong extension string")
25347     }
25348     pub const SPEC_VERSION: u32 = 0u32;
25349 }
25350 #[derive(Clone)]
25351 pub struct HuaweiExtension406Fn {}
25352 unsafe impl Send for HuaweiExtension406Fn {}
25353 unsafe impl Sync for HuaweiExtension406Fn {}
25354 impl HuaweiExtension406Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25355     pub fn load<F>(mut _f: F) -> Self
25356     where
25357         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25358     {
25359         HuaweiExtension406Fn {}
25360     }
25361 }
25362 impl GgpExtension407Fn {
name() -> &'static ::std::ffi::CStr25363     pub fn name() -> &'static ::std::ffi::CStr {
25364         ::std::ffi::CStr::from_bytes_with_nul(b"VK_GGP_extension_407\0")
25365             .expect("Wrong extension string")
25366     }
25367     pub const SPEC_VERSION: u32 = 0u32;
25368 }
25369 #[derive(Clone)]
25370 pub struct GgpExtension407Fn {}
25371 unsafe impl Send for GgpExtension407Fn {}
25372 unsafe impl Sync for GgpExtension407Fn {}
25373 impl GgpExtension407Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25374     pub fn load<F>(mut _f: F) -> Self
25375     where
25376         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25377     {
25378         GgpExtension407Fn {}
25379     }
25380 }
25381 impl GgpExtension408Fn {
name() -> &'static ::std::ffi::CStr25382     pub fn name() -> &'static ::std::ffi::CStr {
25383         ::std::ffi::CStr::from_bytes_with_nul(b"VK_GGP_extension_408\0")
25384             .expect("Wrong extension string")
25385     }
25386     pub const SPEC_VERSION: u32 = 0u32;
25387 }
25388 #[derive(Clone)]
25389 pub struct GgpExtension408Fn {}
25390 unsafe impl Send for GgpExtension408Fn {}
25391 unsafe impl Sync for GgpExtension408Fn {}
25392 impl GgpExtension408Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25393     pub fn load<F>(mut _f: F) -> Self
25394     where
25395         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25396     {
25397         GgpExtension408Fn {}
25398     }
25399 }
25400 impl GgpExtension409Fn {
name() -> &'static ::std::ffi::CStr25401     pub fn name() -> &'static ::std::ffi::CStr {
25402         ::std::ffi::CStr::from_bytes_with_nul(b"VK_GGP_extension_409\0")
25403             .expect("Wrong extension string")
25404     }
25405     pub const SPEC_VERSION: u32 = 0u32;
25406 }
25407 #[derive(Clone)]
25408 pub struct GgpExtension409Fn {}
25409 unsafe impl Send for GgpExtension409Fn {}
25410 unsafe impl Sync for GgpExtension409Fn {}
25411 impl GgpExtension409Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25412     pub fn load<F>(mut _f: F) -> Self
25413     where
25414         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25415     {
25416         GgpExtension409Fn {}
25417     }
25418 }
25419 impl GgpExtension410Fn {
name() -> &'static ::std::ffi::CStr25420     pub fn name() -> &'static ::std::ffi::CStr {
25421         ::std::ffi::CStr::from_bytes_with_nul(b"VK_GGP_extension_410\0")
25422             .expect("Wrong extension string")
25423     }
25424     pub const SPEC_VERSION: u32 = 0u32;
25425 }
25426 #[derive(Clone)]
25427 pub struct GgpExtension410Fn {}
25428 unsafe impl Send for GgpExtension410Fn {}
25429 unsafe impl Sync for GgpExtension410Fn {}
25430 impl GgpExtension410Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25431     pub fn load<F>(mut _f: F) -> Self
25432     where
25433         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25434     {
25435         GgpExtension410Fn {}
25436     }
25437 }
25438 impl GgpExtension411Fn {
name() -> &'static ::std::ffi::CStr25439     pub fn name() -> &'static ::std::ffi::CStr {
25440         ::std::ffi::CStr::from_bytes_with_nul(b"VK_GGP_extension_411\0")
25441             .expect("Wrong extension string")
25442     }
25443     pub const SPEC_VERSION: u32 = 0u32;
25444 }
25445 #[derive(Clone)]
25446 pub struct GgpExtension411Fn {}
25447 unsafe impl Send for GgpExtension411Fn {}
25448 unsafe impl Sync for GgpExtension411Fn {}
25449 impl GgpExtension411Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25450     pub fn load<F>(mut _f: F) -> Self
25451     where
25452         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25453     {
25454         GgpExtension411Fn {}
25455     }
25456 }
25457 impl NvExtension412Fn {
name() -> &'static ::std::ffi::CStr25458     pub fn name() -> &'static ::std::ffi::CStr {
25459         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_extension_412\0")
25460             .expect("Wrong extension string")
25461     }
25462     pub const SPEC_VERSION: u32 = 0u32;
25463 }
25464 #[derive(Clone)]
25465 pub struct NvExtension412Fn {}
25466 unsafe impl Send for NvExtension412Fn {}
25467 unsafe impl Sync for NvExtension412Fn {}
25468 impl NvExtension412Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25469     pub fn load<F>(mut _f: F) -> Self
25470     where
25471         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25472     {
25473         NvExtension412Fn {}
25474     }
25475 }
25476 impl ExtPageableDeviceLocalMemoryFn {
name() -> &'static ::std::ffi::CStr25477     pub fn name() -> &'static ::std::ffi::CStr {
25478         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_pageable_device_local_memory\0")
25479             .expect("Wrong extension string")
25480     }
25481     pub const SPEC_VERSION: u32 = 1u32;
25482 }
25483 #[allow(non_camel_case_types)]
25484 pub type PFN_vkSetDeviceMemoryPriorityEXT =
25485     unsafe extern "system" fn(device: Device, memory: DeviceMemory, priority: f32);
25486 #[derive(Clone)]
25487 pub struct ExtPageableDeviceLocalMemoryFn {
25488     pub set_device_memory_priority_ext: PFN_vkSetDeviceMemoryPriorityEXT,
25489 }
25490 unsafe impl Send for ExtPageableDeviceLocalMemoryFn {}
25491 unsafe impl Sync for ExtPageableDeviceLocalMemoryFn {}
25492 impl ExtPageableDeviceLocalMemoryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25493     pub fn load<F>(mut _f: F) -> Self
25494     where
25495         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25496     {
25497         ExtPageableDeviceLocalMemoryFn {
25498             set_device_memory_priority_ext: unsafe {
25499                 unsafe extern "system" fn set_device_memory_priority_ext(
25500                     _device: Device,
25501                     _memory: DeviceMemory,
25502                     _priority: f32,
25503                 ) {
25504                     panic!(concat!(
25505                         "Unable to load ",
25506                         stringify!(set_device_memory_priority_ext)
25507                     ))
25508                 }
25509                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25510                     b"vkSetDeviceMemoryPriorityEXT\0",
25511                 );
25512                 let val = _f(cname);
25513                 if val.is_null() {
25514                     set_device_memory_priority_ext
25515                 } else {
25516                     ::std::mem::transmute(val)
25517                 }
25518             },
25519         }
25520     }
25521     #[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, )25522     pub unsafe fn set_device_memory_priority_ext(
25523         &self,
25524         device: Device,
25525         memory: DeviceMemory,
25526         priority: f32,
25527     ) {
25528         (self.set_device_memory_priority_ext)(device, memory, priority)
25529     }
25530 }
25531 #[doc = "Generated from 'VK_EXT_pageable_device_local_memory'"]
25532 impl StructureType {
25533     pub const PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT: Self = Self(1_000_412_000);
25534 }
25535 impl NvExtension414Fn {
name() -> &'static ::std::ffi::CStr25536     pub fn name() -> &'static ::std::ffi::CStr {
25537         ::std::ffi::CStr::from_bytes_with_nul(b"VK_NV_extension_414\0")
25538             .expect("Wrong extension string")
25539     }
25540     pub const SPEC_VERSION: u32 = 0u32;
25541 }
25542 #[derive(Clone)]
25543 pub struct NvExtension414Fn {}
25544 unsafe impl Send for NvExtension414Fn {}
25545 unsafe impl Sync for NvExtension414Fn {}
25546 impl NvExtension414Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25547     pub fn load<F>(mut _f: F) -> Self
25548     where
25549         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25550     {
25551         NvExtension414Fn {}
25552     }
25553 }
25554 impl HuaweiExtension415Fn {
name() -> &'static ::std::ffi::CStr25555     pub fn name() -> &'static ::std::ffi::CStr {
25556         ::std::ffi::CStr::from_bytes_with_nul(b"VK_HUAWEI_extension_415\0")
25557             .expect("Wrong extension string")
25558     }
25559     pub const SPEC_VERSION: u32 = 0u32;
25560 }
25561 #[derive(Clone)]
25562 pub struct HuaweiExtension415Fn {}
25563 unsafe impl Send for HuaweiExtension415Fn {}
25564 unsafe impl Sync for HuaweiExtension415Fn {}
25565 impl HuaweiExtension415Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25566     pub fn load<F>(mut _f: F) -> Self
25567     where
25568         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25569     {
25570         HuaweiExtension415Fn {}
25571     }
25572 }
25573 impl ArmExtension416Fn {
name() -> &'static ::std::ffi::CStr25574     pub fn name() -> &'static ::std::ffi::CStr {
25575         ::std::ffi::CStr::from_bytes_with_nul(b"VK_ARM_extension_416\0")
25576             .expect("Wrong extension string")
25577     }
25578     pub const SPEC_VERSION: u32 = 0u32;
25579 }
25580 #[derive(Clone)]
25581 pub struct ArmExtension416Fn {}
25582 unsafe impl Send for ArmExtension416Fn {}
25583 unsafe impl Sync for ArmExtension416Fn {}
25584 impl ArmExtension416Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25585     pub fn load<F>(mut _f: F) -> Self
25586     where
25587         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25588     {
25589         ArmExtension416Fn {}
25590     }
25591 }
25592 impl KhrExtension417Fn {
name() -> &'static ::std::ffi::CStr25593     pub fn name() -> &'static ::std::ffi::CStr {
25594         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_417\0")
25595             .expect("Wrong extension string")
25596     }
25597     pub const SPEC_VERSION: u32 = 0u32;
25598 }
25599 #[derive(Clone)]
25600 pub struct KhrExtension417Fn {}
25601 unsafe impl Send for KhrExtension417Fn {}
25602 unsafe impl Sync for KhrExtension417Fn {}
25603 impl KhrExtension417Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25604     pub fn load<F>(mut _f: F) -> Self
25605     where
25606         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25607     {
25608         KhrExtension417Fn {}
25609     }
25610 }
25611 impl ArmExtension418Fn {
name() -> &'static ::std::ffi::CStr25612     pub fn name() -> &'static ::std::ffi::CStr {
25613         ::std::ffi::CStr::from_bytes_with_nul(b"VK_ARM_extension_418\0")
25614             .expect("Wrong extension string")
25615     }
25616     pub const SPEC_VERSION: u32 = 0u32;
25617 }
25618 #[derive(Clone)]
25619 pub struct ArmExtension418Fn {}
25620 unsafe impl Send for ArmExtension418Fn {}
25621 unsafe impl Sync for ArmExtension418Fn {}
25622 impl ArmExtension418Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25623     pub fn load<F>(mut _f: F) -> Self
25624     where
25625         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25626     {
25627         ArmExtension418Fn {}
25628     }
25629 }
25630 impl ExtExtension419Fn {
name() -> &'static ::std::ffi::CStr25631     pub fn name() -> &'static ::std::ffi::CStr {
25632         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_419\0")
25633             .expect("Wrong extension string")
25634     }
25635     pub const SPEC_VERSION: u32 = 0u32;
25636 }
25637 #[derive(Clone)]
25638 pub struct ExtExtension419Fn {}
25639 unsafe impl Send for ExtExtension419Fn {}
25640 unsafe impl Sync for ExtExtension419Fn {}
25641 impl ExtExtension419Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25642     pub fn load<F>(mut _f: F) -> Self
25643     where
25644         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25645     {
25646         ExtExtension419Fn {}
25647     }
25648 }
25649 impl ExtExtension420Fn {
name() -> &'static ::std::ffi::CStr25650     pub fn name() -> &'static ::std::ffi::CStr {
25651         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_420\0")
25652             .expect("Wrong extension string")
25653     }
25654     pub const SPEC_VERSION: u32 = 0u32;
25655 }
25656 #[derive(Clone)]
25657 pub struct ExtExtension420Fn {}
25658 unsafe impl Send for ExtExtension420Fn {}
25659 unsafe impl Sync for ExtExtension420Fn {}
25660 impl ExtExtension420Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25661     pub fn load<F>(mut _f: F) -> Self
25662     where
25663         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25664     {
25665         ExtExtension420Fn {}
25666     }
25667 }
25668 impl KhrExtension421Fn {
name() -> &'static ::std::ffi::CStr25669     pub fn name() -> &'static ::std::ffi::CStr {
25670         ::std::ffi::CStr::from_bytes_with_nul(b"VK_KHR_extension_421\0")
25671             .expect("Wrong extension string")
25672     }
25673     pub const SPEC_VERSION: u32 = 0u32;
25674 }
25675 #[derive(Clone)]
25676 pub struct KhrExtension421Fn {}
25677 unsafe impl Send for KhrExtension421Fn {}
25678 unsafe impl Sync for KhrExtension421Fn {}
25679 impl KhrExtension421Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25680     pub fn load<F>(mut _f: F) -> Self
25681     where
25682         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25683     {
25684         KhrExtension421Fn {}
25685     }
25686 }
25687 impl ExtExtension422Fn {
name() -> &'static ::std::ffi::CStr25688     pub fn name() -> &'static ::std::ffi::CStr {
25689         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_extension_422\0")
25690             .expect("Wrong extension string")
25691     }
25692     pub const SPEC_VERSION: u32 = 0u32;
25693 }
25694 #[derive(Clone)]
25695 pub struct ExtExtension422Fn {}
25696 unsafe impl Send for ExtExtension422Fn {}
25697 unsafe impl Sync for ExtExtension422Fn {}
25698 impl ExtExtension422Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25699     pub fn load<F>(mut _f: F) -> Self
25700     where
25701         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25702     {
25703         ExtExtension422Fn {}
25704     }
25705 }
25706 impl ExtDisableCubeMapWrapFn {
name() -> &'static ::std::ffi::CStr25707     pub fn name() -> &'static ::std::ffi::CStr {
25708         ::std::ffi::CStr::from_bytes_with_nul(b"VK_EXT_disable_cube_map_wrap\0")
25709             .expect("Wrong extension string")
25710     }
25711     pub const SPEC_VERSION: u32 = 0u32;
25712 }
25713 #[derive(Clone)]
25714 pub struct ExtDisableCubeMapWrapFn {}
25715 unsafe impl Send for ExtDisableCubeMapWrapFn {}
25716 unsafe impl Sync for ExtDisableCubeMapWrapFn {}
25717 impl ExtDisableCubeMapWrapFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25718     pub fn load<F>(mut _f: F) -> Self
25719     where
25720         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25721     {
25722         ExtDisableCubeMapWrapFn {}
25723     }
25724 }
25725 #[doc = "Generated from 'VK_EXT_disable_cube_map_wrap'"]
25726 impl SamplerCreateFlags {
25727     pub const RESERVED_2_EXT: Self = Self(0b100);
25728 }
25729