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 {
8     #[inline]
name() -> &'static ::std::ffi::CStr9     pub const fn name() -> &'static ::std::ffi::CStr {
10         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_surface\0") }
11     }
12     pub const SPEC_VERSION: u32 = 25u32;
13 }
14 #[allow(non_camel_case_types)]
15 pub type PFN_vkDestroySurfaceKHR = unsafe extern "system" fn(
16     instance: Instance,
17     surface: SurfaceKHR,
18     p_allocator: *const AllocationCallbacks,
19 );
20 #[allow(non_camel_case_types)]
21 pub type PFN_vkGetPhysicalDeviceSurfaceSupportKHR = unsafe extern "system" fn(
22     physical_device: PhysicalDevice,
23     queue_family_index: u32,
24     surface: SurfaceKHR,
25     p_supported: *mut Bool32,
26 ) -> Result;
27 #[allow(non_camel_case_types)]
28 pub type PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = unsafe extern "system" fn(
29     physical_device: PhysicalDevice,
30     surface: SurfaceKHR,
31     p_surface_capabilities: *mut SurfaceCapabilitiesKHR,
32 ) -> Result;
33 #[allow(non_camel_case_types)]
34 pub type PFN_vkGetPhysicalDeviceSurfaceFormatsKHR = unsafe extern "system" fn(
35     physical_device: PhysicalDevice,
36     surface: SurfaceKHR,
37     p_surface_format_count: *mut u32,
38     p_surface_formats: *mut SurfaceFormatKHR,
39 ) -> Result;
40 #[allow(non_camel_case_types)]
41 pub type PFN_vkGetPhysicalDeviceSurfacePresentModesKHR = unsafe extern "system" fn(
42     physical_device: PhysicalDevice,
43     surface: SurfaceKHR,
44     p_present_mode_count: *mut u32,
45     p_present_modes: *mut PresentModeKHR,
46 ) -> Result;
47 #[derive(Clone)]
48 pub struct KhrSurfaceFn {
49     pub destroy_surface_khr: PFN_vkDestroySurfaceKHR,
50     pub get_physical_device_surface_support_khr: PFN_vkGetPhysicalDeviceSurfaceSupportKHR,
51     pub get_physical_device_surface_capabilities_khr: PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR,
52     pub get_physical_device_surface_formats_khr: PFN_vkGetPhysicalDeviceSurfaceFormatsKHR,
53     pub get_physical_device_surface_present_modes_khr:
54         PFN_vkGetPhysicalDeviceSurfacePresentModesKHR,
55 }
56 unsafe impl Send for KhrSurfaceFn {}
57 unsafe impl Sync for KhrSurfaceFn {}
58 impl KhrSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,59     pub fn load<F>(mut _f: F) -> Self
60     where
61         F: FnMut(&::std::ffi::CStr) -> *const c_void,
62     {
63         Self {
64             destroy_surface_khr: unsafe {
65                 unsafe extern "system" fn destroy_surface_khr(
66                     _instance: Instance,
67                     _surface: SurfaceKHR,
68                     _p_allocator: *const AllocationCallbacks,
69                 ) {
70                     panic!(concat!("Unable to load ", stringify!(destroy_surface_khr)))
71                 }
72                 let cname =
73                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroySurfaceKHR\0");
74                 let val = _f(cname);
75                 if val.is_null() {
76                     destroy_surface_khr
77                 } else {
78                     ::std::mem::transmute(val)
79                 }
80             },
81             get_physical_device_surface_support_khr: unsafe {
82                 unsafe extern "system" fn get_physical_device_surface_support_khr(
83                     _physical_device: PhysicalDevice,
84                     _queue_family_index: u32,
85                     _surface: SurfaceKHR,
86                     _p_supported: *mut Bool32,
87                 ) -> Result {
88                     panic!(concat!(
89                         "Unable to load ",
90                         stringify!(get_physical_device_surface_support_khr)
91                     ))
92                 }
93                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
94                     b"vkGetPhysicalDeviceSurfaceSupportKHR\0",
95                 );
96                 let val = _f(cname);
97                 if val.is_null() {
98                     get_physical_device_surface_support_khr
99                 } else {
100                     ::std::mem::transmute(val)
101                 }
102             },
103             get_physical_device_surface_capabilities_khr: unsafe {
104                 unsafe extern "system" fn get_physical_device_surface_capabilities_khr(
105                     _physical_device: PhysicalDevice,
106                     _surface: SurfaceKHR,
107                     _p_surface_capabilities: *mut SurfaceCapabilitiesKHR,
108                 ) -> Result {
109                     panic!(concat!(
110                         "Unable to load ",
111                         stringify!(get_physical_device_surface_capabilities_khr)
112                     ))
113                 }
114                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
115                     b"vkGetPhysicalDeviceSurfaceCapabilitiesKHR\0",
116                 );
117                 let val = _f(cname);
118                 if val.is_null() {
119                     get_physical_device_surface_capabilities_khr
120                 } else {
121                     ::std::mem::transmute(val)
122                 }
123             },
124             get_physical_device_surface_formats_khr: unsafe {
125                 unsafe extern "system" fn get_physical_device_surface_formats_khr(
126                     _physical_device: PhysicalDevice,
127                     _surface: SurfaceKHR,
128                     _p_surface_format_count: *mut u32,
129                     _p_surface_formats: *mut SurfaceFormatKHR,
130                 ) -> Result {
131                     panic!(concat!(
132                         "Unable to load ",
133                         stringify!(get_physical_device_surface_formats_khr)
134                     ))
135                 }
136                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
137                     b"vkGetPhysicalDeviceSurfaceFormatsKHR\0",
138                 );
139                 let val = _f(cname);
140                 if val.is_null() {
141                     get_physical_device_surface_formats_khr
142                 } else {
143                     ::std::mem::transmute(val)
144                 }
145             },
146             get_physical_device_surface_present_modes_khr: unsafe {
147                 unsafe extern "system" fn get_physical_device_surface_present_modes_khr(
148                     _physical_device: PhysicalDevice,
149                     _surface: SurfaceKHR,
150                     _p_present_mode_count: *mut u32,
151                     _p_present_modes: *mut PresentModeKHR,
152                 ) -> Result {
153                     panic!(concat!(
154                         "Unable to load ",
155                         stringify!(get_physical_device_surface_present_modes_khr)
156                     ))
157                 }
158                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
159                     b"vkGetPhysicalDeviceSurfacePresentModesKHR\0",
160                 );
161                 let val = _f(cname);
162                 if val.is_null() {
163                     get_physical_device_surface_present_modes_khr
164                 } else {
165                     ::std::mem::transmute(val)
166                 }
167             },
168         }
169     }
170 }
171 #[doc = "Generated from 'VK_KHR_surface'"]
172 impl ObjectType {
173     pub const SURFACE_KHR: Self = Self(1_000_000_000);
174 }
175 #[doc = "Generated from 'VK_KHR_surface'"]
176 impl Result {
177     pub const ERROR_SURFACE_LOST_KHR: Self = Self(-1_000_000_000);
178     pub const ERROR_NATIVE_WINDOW_IN_USE_KHR: Self = Self(-1_000_000_001);
179 }
180 impl KhrSwapchainFn {
181     #[inline]
name() -> &'static ::std::ffi::CStr182     pub const fn name() -> &'static ::std::ffi::CStr {
183         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_swapchain\0") }
184     }
185     pub const SPEC_VERSION: u32 = 70u32;
186 }
187 #[allow(non_camel_case_types)]
188 pub type PFN_vkCreateSwapchainKHR = unsafe extern "system" fn(
189     device: Device,
190     p_create_info: *const SwapchainCreateInfoKHR,
191     p_allocator: *const AllocationCallbacks,
192     p_swapchain: *mut SwapchainKHR,
193 ) -> Result;
194 #[allow(non_camel_case_types)]
195 pub type PFN_vkDestroySwapchainKHR = unsafe extern "system" fn(
196     device: Device,
197     swapchain: SwapchainKHR,
198     p_allocator: *const AllocationCallbacks,
199 );
200 #[allow(non_camel_case_types)]
201 pub type PFN_vkGetSwapchainImagesKHR = unsafe extern "system" fn(
202     device: Device,
203     swapchain: SwapchainKHR,
204     p_swapchain_image_count: *mut u32,
205     p_swapchain_images: *mut Image,
206 ) -> Result;
207 #[allow(non_camel_case_types)]
208 pub type PFN_vkAcquireNextImageKHR = unsafe extern "system" fn(
209     device: Device,
210     swapchain: SwapchainKHR,
211     timeout: u64,
212     semaphore: Semaphore,
213     fence: Fence,
214     p_image_index: *mut u32,
215 ) -> Result;
216 #[allow(non_camel_case_types)]
217 pub type PFN_vkQueuePresentKHR =
218     unsafe extern "system" fn(queue: Queue, p_present_info: *const PresentInfoKHR) -> Result;
219 #[allow(non_camel_case_types)]
220 pub type PFN_vkGetDeviceGroupPresentCapabilitiesKHR = unsafe extern "system" fn(
221     device: Device,
222     p_device_group_present_capabilities: *mut DeviceGroupPresentCapabilitiesKHR,
223 ) -> Result;
224 #[allow(non_camel_case_types)]
225 pub type PFN_vkGetDeviceGroupSurfacePresentModesKHR = unsafe extern "system" fn(
226     device: Device,
227     surface: SurfaceKHR,
228     p_modes: *mut DeviceGroupPresentModeFlagsKHR,
229 ) -> Result;
230 #[allow(non_camel_case_types)]
231 pub type PFN_vkGetPhysicalDevicePresentRectanglesKHR = unsafe extern "system" fn(
232     physical_device: PhysicalDevice,
233     surface: SurfaceKHR,
234     p_rect_count: *mut u32,
235     p_rects: *mut Rect2D,
236 ) -> Result;
237 #[allow(non_camel_case_types)]
238 pub type PFN_vkAcquireNextImage2KHR = unsafe extern "system" fn(
239     device: Device,
240     p_acquire_info: *const AcquireNextImageInfoKHR,
241     p_image_index: *mut u32,
242 ) -> Result;
243 #[derive(Clone)]
244 pub struct KhrSwapchainFn {
245     pub create_swapchain_khr: PFN_vkCreateSwapchainKHR,
246     pub destroy_swapchain_khr: PFN_vkDestroySwapchainKHR,
247     pub get_swapchain_images_khr: PFN_vkGetSwapchainImagesKHR,
248     pub acquire_next_image_khr: PFN_vkAcquireNextImageKHR,
249     pub queue_present_khr: PFN_vkQueuePresentKHR,
250     pub get_device_group_present_capabilities_khr: PFN_vkGetDeviceGroupPresentCapabilitiesKHR,
251     pub get_device_group_surface_present_modes_khr: PFN_vkGetDeviceGroupSurfacePresentModesKHR,
252     pub get_physical_device_present_rectangles_khr: PFN_vkGetPhysicalDevicePresentRectanglesKHR,
253     pub acquire_next_image2_khr: PFN_vkAcquireNextImage2KHR,
254 }
255 unsafe impl Send for KhrSwapchainFn {}
256 unsafe impl Sync for KhrSwapchainFn {}
257 impl KhrSwapchainFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,258     pub fn load<F>(mut _f: F) -> Self
259     where
260         F: FnMut(&::std::ffi::CStr) -> *const c_void,
261     {
262         Self {
263             create_swapchain_khr: unsafe {
264                 unsafe extern "system" fn create_swapchain_khr(
265                     _device: Device,
266                     _p_create_info: *const SwapchainCreateInfoKHR,
267                     _p_allocator: *const AllocationCallbacks,
268                     _p_swapchain: *mut SwapchainKHR,
269                 ) -> Result {
270                     panic!(concat!("Unable to load ", stringify!(create_swapchain_khr)))
271                 }
272                 let cname =
273                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateSwapchainKHR\0");
274                 let val = _f(cname);
275                 if val.is_null() {
276                     create_swapchain_khr
277                 } else {
278                     ::std::mem::transmute(val)
279                 }
280             },
281             destroy_swapchain_khr: unsafe {
282                 unsafe extern "system" fn destroy_swapchain_khr(
283                     _device: Device,
284                     _swapchain: SwapchainKHR,
285                     _p_allocator: *const AllocationCallbacks,
286                 ) {
287                     panic!(concat!(
288                         "Unable to load ",
289                         stringify!(destroy_swapchain_khr)
290                     ))
291                 }
292                 let cname =
293                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroySwapchainKHR\0");
294                 let val = _f(cname);
295                 if val.is_null() {
296                     destroy_swapchain_khr
297                 } else {
298                     ::std::mem::transmute(val)
299                 }
300             },
301             get_swapchain_images_khr: unsafe {
302                 unsafe extern "system" fn get_swapchain_images_khr(
303                     _device: Device,
304                     _swapchain: SwapchainKHR,
305                     _p_swapchain_image_count: *mut u32,
306                     _p_swapchain_images: *mut Image,
307                 ) -> Result {
308                     panic!(concat!(
309                         "Unable to load ",
310                         stringify!(get_swapchain_images_khr)
311                     ))
312                 }
313                 let cname =
314                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetSwapchainImagesKHR\0");
315                 let val = _f(cname);
316                 if val.is_null() {
317                     get_swapchain_images_khr
318                 } else {
319                     ::std::mem::transmute(val)
320                 }
321             },
322             acquire_next_image_khr: unsafe {
323                 unsafe extern "system" fn acquire_next_image_khr(
324                     _device: Device,
325                     _swapchain: SwapchainKHR,
326                     _timeout: u64,
327                     _semaphore: Semaphore,
328                     _fence: Fence,
329                     _p_image_index: *mut u32,
330                 ) -> Result {
331                     panic!(concat!(
332                         "Unable to load ",
333                         stringify!(acquire_next_image_khr)
334                     ))
335                 }
336                 let cname =
337                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireNextImageKHR\0");
338                 let val = _f(cname);
339                 if val.is_null() {
340                     acquire_next_image_khr
341                 } else {
342                     ::std::mem::transmute(val)
343                 }
344             },
345             queue_present_khr: unsafe {
346                 unsafe extern "system" fn queue_present_khr(
347                     _queue: Queue,
348                     _p_present_info: *const PresentInfoKHR,
349                 ) -> Result {
350                     panic!(concat!("Unable to load ", stringify!(queue_present_khr)))
351                 }
352                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkQueuePresentKHR\0");
353                 let val = _f(cname);
354                 if val.is_null() {
355                     queue_present_khr
356                 } else {
357                     ::std::mem::transmute(val)
358                 }
359             },
360             get_device_group_present_capabilities_khr: unsafe {
361                 unsafe extern "system" fn get_device_group_present_capabilities_khr(
362                     _device: Device,
363                     _p_device_group_present_capabilities: *mut DeviceGroupPresentCapabilitiesKHR,
364                 ) -> Result {
365                     panic!(concat!(
366                         "Unable to load ",
367                         stringify!(get_device_group_present_capabilities_khr)
368                     ))
369                 }
370                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
371                     b"vkGetDeviceGroupPresentCapabilitiesKHR\0",
372                 );
373                 let val = _f(cname);
374                 if val.is_null() {
375                     get_device_group_present_capabilities_khr
376                 } else {
377                     ::std::mem::transmute(val)
378                 }
379             },
380             get_device_group_surface_present_modes_khr: unsafe {
381                 unsafe extern "system" fn get_device_group_surface_present_modes_khr(
382                     _device: Device,
383                     _surface: SurfaceKHR,
384                     _p_modes: *mut DeviceGroupPresentModeFlagsKHR,
385                 ) -> Result {
386                     panic!(concat!(
387                         "Unable to load ",
388                         stringify!(get_device_group_surface_present_modes_khr)
389                     ))
390                 }
391                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
392                     b"vkGetDeviceGroupSurfacePresentModesKHR\0",
393                 );
394                 let val = _f(cname);
395                 if val.is_null() {
396                     get_device_group_surface_present_modes_khr
397                 } else {
398                     ::std::mem::transmute(val)
399                 }
400             },
401             get_physical_device_present_rectangles_khr: unsafe {
402                 unsafe extern "system" fn get_physical_device_present_rectangles_khr(
403                     _physical_device: PhysicalDevice,
404                     _surface: SurfaceKHR,
405                     _p_rect_count: *mut u32,
406                     _p_rects: *mut Rect2D,
407                 ) -> Result {
408                     panic!(concat!(
409                         "Unable to load ",
410                         stringify!(get_physical_device_present_rectangles_khr)
411                     ))
412                 }
413                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
414                     b"vkGetPhysicalDevicePresentRectanglesKHR\0",
415                 );
416                 let val = _f(cname);
417                 if val.is_null() {
418                     get_physical_device_present_rectangles_khr
419                 } else {
420                     ::std::mem::transmute(val)
421                 }
422             },
423             acquire_next_image2_khr: unsafe {
424                 unsafe extern "system" fn acquire_next_image2_khr(
425                     _device: Device,
426                     _p_acquire_info: *const AcquireNextImageInfoKHR,
427                     _p_image_index: *mut u32,
428                 ) -> Result {
429                     panic!(concat!(
430                         "Unable to load ",
431                         stringify!(acquire_next_image2_khr)
432                     ))
433                 }
434                 let cname =
435                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireNextImage2KHR\0");
436                 let val = _f(cname);
437                 if val.is_null() {
438                     acquire_next_image2_khr
439                 } else {
440                     ::std::mem::transmute(val)
441                 }
442             },
443         }
444     }
445 }
446 #[doc = "Generated from 'VK_KHR_swapchain'"]
447 impl ImageLayout {
448     pub const PRESENT_SRC_KHR: Self = Self(1_000_001_002);
449 }
450 #[doc = "Generated from 'VK_KHR_swapchain'"]
451 impl ObjectType {
452     pub const SWAPCHAIN_KHR: Self = Self(1_000_001_000);
453 }
454 #[doc = "Generated from 'VK_KHR_swapchain'"]
455 impl Result {
456     pub const SUBOPTIMAL_KHR: Self = Self(1_000_001_003);
457     pub const ERROR_OUT_OF_DATE_KHR: Self = Self(-1_000_001_004);
458 }
459 #[doc = "Generated from 'VK_KHR_swapchain'"]
460 impl StructureType {
461     pub const SWAPCHAIN_CREATE_INFO_KHR: Self = Self(1_000_001_000);
462     pub const PRESENT_INFO_KHR: Self = Self(1_000_001_001);
463     pub const DEVICE_GROUP_PRESENT_CAPABILITIES_KHR: Self = Self(1_000_060_007);
464     pub const IMAGE_SWAPCHAIN_CREATE_INFO_KHR: Self = Self(1_000_060_008);
465     pub const BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: Self = Self(1_000_060_009);
466     pub const ACQUIRE_NEXT_IMAGE_INFO_KHR: Self = Self(1_000_060_010);
467     pub const DEVICE_GROUP_PRESENT_INFO_KHR: Self = Self(1_000_060_011);
468     pub const DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: Self = Self(1_000_060_012);
469 }
470 #[doc = "Generated from 'VK_KHR_swapchain'"]
471 impl SwapchainCreateFlagsKHR {
472     #[doc = "Allow images with VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT"]
473     pub const SPLIT_INSTANCE_BIND_REGIONS: Self = Self(0b1);
474     #[doc = "Swapchain is protected"]
475     pub const PROTECTED: Self = Self(0b10);
476 }
477 impl KhrDisplayFn {
478     #[inline]
name() -> &'static ::std::ffi::CStr479     pub const fn name() -> &'static ::std::ffi::CStr {
480         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_display\0") }
481     }
482     pub const SPEC_VERSION: u32 = 23u32;
483 }
484 #[allow(non_camel_case_types)]
485 pub type PFN_vkGetPhysicalDeviceDisplayPropertiesKHR = unsafe extern "system" fn(
486     physical_device: PhysicalDevice,
487     p_property_count: *mut u32,
488     p_properties: *mut DisplayPropertiesKHR,
489 ) -> Result;
490 #[allow(non_camel_case_types)]
491 pub type PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR = unsafe extern "system" fn(
492     physical_device: PhysicalDevice,
493     p_property_count: *mut u32,
494     p_properties: *mut DisplayPlanePropertiesKHR,
495 ) -> Result;
496 #[allow(non_camel_case_types)]
497 pub type PFN_vkGetDisplayPlaneSupportedDisplaysKHR = unsafe extern "system" fn(
498     physical_device: PhysicalDevice,
499     plane_index: u32,
500     p_display_count: *mut u32,
501     p_displays: *mut DisplayKHR,
502 ) -> Result;
503 #[allow(non_camel_case_types)]
504 pub type PFN_vkGetDisplayModePropertiesKHR = unsafe extern "system" fn(
505     physical_device: PhysicalDevice,
506     display: DisplayKHR,
507     p_property_count: *mut u32,
508     p_properties: *mut DisplayModePropertiesKHR,
509 ) -> Result;
510 #[allow(non_camel_case_types)]
511 pub type PFN_vkCreateDisplayModeKHR = unsafe extern "system" fn(
512     physical_device: PhysicalDevice,
513     display: DisplayKHR,
514     p_create_info: *const DisplayModeCreateInfoKHR,
515     p_allocator: *const AllocationCallbacks,
516     p_mode: *mut DisplayModeKHR,
517 ) -> Result;
518 #[allow(non_camel_case_types)]
519 pub type PFN_vkGetDisplayPlaneCapabilitiesKHR = unsafe extern "system" fn(
520     physical_device: PhysicalDevice,
521     mode: DisplayModeKHR,
522     plane_index: u32,
523     p_capabilities: *mut DisplayPlaneCapabilitiesKHR,
524 ) -> Result;
525 #[allow(non_camel_case_types)]
526 pub type PFN_vkCreateDisplayPlaneSurfaceKHR = unsafe extern "system" fn(
527     instance: Instance,
528     p_create_info: *const DisplaySurfaceCreateInfoKHR,
529     p_allocator: *const AllocationCallbacks,
530     p_surface: *mut SurfaceKHR,
531 ) -> Result;
532 #[derive(Clone)]
533 pub struct KhrDisplayFn {
534     pub get_physical_device_display_properties_khr: PFN_vkGetPhysicalDeviceDisplayPropertiesKHR,
535     pub get_physical_device_display_plane_properties_khr:
536         PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR,
537     pub get_display_plane_supported_displays_khr: PFN_vkGetDisplayPlaneSupportedDisplaysKHR,
538     pub get_display_mode_properties_khr: PFN_vkGetDisplayModePropertiesKHR,
539     pub create_display_mode_khr: PFN_vkCreateDisplayModeKHR,
540     pub get_display_plane_capabilities_khr: PFN_vkGetDisplayPlaneCapabilitiesKHR,
541     pub create_display_plane_surface_khr: PFN_vkCreateDisplayPlaneSurfaceKHR,
542 }
543 unsafe impl Send for KhrDisplayFn {}
544 unsafe impl Sync for KhrDisplayFn {}
545 impl KhrDisplayFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,546     pub fn load<F>(mut _f: F) -> Self
547     where
548         F: FnMut(&::std::ffi::CStr) -> *const c_void,
549     {
550         Self {
551             get_physical_device_display_properties_khr: unsafe {
552                 unsafe extern "system" fn get_physical_device_display_properties_khr(
553                     _physical_device: PhysicalDevice,
554                     _p_property_count: *mut u32,
555                     _p_properties: *mut DisplayPropertiesKHR,
556                 ) -> Result {
557                     panic!(concat!(
558                         "Unable to load ",
559                         stringify!(get_physical_device_display_properties_khr)
560                     ))
561                 }
562                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
563                     b"vkGetPhysicalDeviceDisplayPropertiesKHR\0",
564                 );
565                 let val = _f(cname);
566                 if val.is_null() {
567                     get_physical_device_display_properties_khr
568                 } else {
569                     ::std::mem::transmute(val)
570                 }
571             },
572             get_physical_device_display_plane_properties_khr: unsafe {
573                 unsafe extern "system" fn get_physical_device_display_plane_properties_khr(
574                     _physical_device: PhysicalDevice,
575                     _p_property_count: *mut u32,
576                     _p_properties: *mut DisplayPlanePropertiesKHR,
577                 ) -> Result {
578                     panic!(concat!(
579                         "Unable to load ",
580                         stringify!(get_physical_device_display_plane_properties_khr)
581                     ))
582                 }
583                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
584                     b"vkGetPhysicalDeviceDisplayPlanePropertiesKHR\0",
585                 );
586                 let val = _f(cname);
587                 if val.is_null() {
588                     get_physical_device_display_plane_properties_khr
589                 } else {
590                     ::std::mem::transmute(val)
591                 }
592             },
593             get_display_plane_supported_displays_khr: unsafe {
594                 unsafe extern "system" fn get_display_plane_supported_displays_khr(
595                     _physical_device: PhysicalDevice,
596                     _plane_index: u32,
597                     _p_display_count: *mut u32,
598                     _p_displays: *mut DisplayKHR,
599                 ) -> Result {
600                     panic!(concat!(
601                         "Unable to load ",
602                         stringify!(get_display_plane_supported_displays_khr)
603                     ))
604                 }
605                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
606                     b"vkGetDisplayPlaneSupportedDisplaysKHR\0",
607                 );
608                 let val = _f(cname);
609                 if val.is_null() {
610                     get_display_plane_supported_displays_khr
611                 } else {
612                     ::std::mem::transmute(val)
613                 }
614             },
615             get_display_mode_properties_khr: unsafe {
616                 unsafe extern "system" fn get_display_mode_properties_khr(
617                     _physical_device: PhysicalDevice,
618                     _display: DisplayKHR,
619                     _p_property_count: *mut u32,
620                     _p_properties: *mut DisplayModePropertiesKHR,
621                 ) -> Result {
622                     panic!(concat!(
623                         "Unable to load ",
624                         stringify!(get_display_mode_properties_khr)
625                     ))
626                 }
627                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
628                     b"vkGetDisplayModePropertiesKHR\0",
629                 );
630                 let val = _f(cname);
631                 if val.is_null() {
632                     get_display_mode_properties_khr
633                 } else {
634                     ::std::mem::transmute(val)
635                 }
636             },
637             create_display_mode_khr: unsafe {
638                 unsafe extern "system" fn create_display_mode_khr(
639                     _physical_device: PhysicalDevice,
640                     _display: DisplayKHR,
641                     _p_create_info: *const DisplayModeCreateInfoKHR,
642                     _p_allocator: *const AllocationCallbacks,
643                     _p_mode: *mut DisplayModeKHR,
644                 ) -> Result {
645                     panic!(concat!(
646                         "Unable to load ",
647                         stringify!(create_display_mode_khr)
648                     ))
649                 }
650                 let cname =
651                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateDisplayModeKHR\0");
652                 let val = _f(cname);
653                 if val.is_null() {
654                     create_display_mode_khr
655                 } else {
656                     ::std::mem::transmute(val)
657                 }
658             },
659             get_display_plane_capabilities_khr: unsafe {
660                 unsafe extern "system" fn get_display_plane_capabilities_khr(
661                     _physical_device: PhysicalDevice,
662                     _mode: DisplayModeKHR,
663                     _plane_index: u32,
664                     _p_capabilities: *mut DisplayPlaneCapabilitiesKHR,
665                 ) -> Result {
666                     panic!(concat!(
667                         "Unable to load ",
668                         stringify!(get_display_plane_capabilities_khr)
669                     ))
670                 }
671                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
672                     b"vkGetDisplayPlaneCapabilitiesKHR\0",
673                 );
674                 let val = _f(cname);
675                 if val.is_null() {
676                     get_display_plane_capabilities_khr
677                 } else {
678                     ::std::mem::transmute(val)
679                 }
680             },
681             create_display_plane_surface_khr: unsafe {
682                 unsafe extern "system" fn create_display_plane_surface_khr(
683                     _instance: Instance,
684                     _p_create_info: *const DisplaySurfaceCreateInfoKHR,
685                     _p_allocator: *const AllocationCallbacks,
686                     _p_surface: *mut SurfaceKHR,
687                 ) -> Result {
688                     panic!(concat!(
689                         "Unable to load ",
690                         stringify!(create_display_plane_surface_khr)
691                     ))
692                 }
693                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
694                     b"vkCreateDisplayPlaneSurfaceKHR\0",
695                 );
696                 let val = _f(cname);
697                 if val.is_null() {
698                     create_display_plane_surface_khr
699                 } else {
700                     ::std::mem::transmute(val)
701                 }
702             },
703         }
704     }
705 }
706 #[doc = "Generated from 'VK_KHR_display'"]
707 impl ObjectType {
708     pub const DISPLAY_KHR: Self = Self(1_000_002_000);
709     pub const DISPLAY_MODE_KHR: Self = Self(1_000_002_001);
710 }
711 #[doc = "Generated from 'VK_KHR_display'"]
712 impl StructureType {
713     pub const DISPLAY_MODE_CREATE_INFO_KHR: Self = Self(1_000_002_000);
714     pub const DISPLAY_SURFACE_CREATE_INFO_KHR: Self = Self(1_000_002_001);
715 }
716 impl KhrDisplaySwapchainFn {
717     #[inline]
name() -> &'static ::std::ffi::CStr718     pub const fn name() -> &'static ::std::ffi::CStr {
719         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_display_swapchain\0") }
720     }
721     pub const SPEC_VERSION: u32 = 10u32;
722 }
723 #[allow(non_camel_case_types)]
724 pub type PFN_vkCreateSharedSwapchainsKHR = unsafe extern "system" fn(
725     device: Device,
726     swapchain_count: u32,
727     p_create_infos: *const SwapchainCreateInfoKHR,
728     p_allocator: *const AllocationCallbacks,
729     p_swapchains: *mut SwapchainKHR,
730 ) -> Result;
731 #[derive(Clone)]
732 pub struct KhrDisplaySwapchainFn {
733     pub create_shared_swapchains_khr: PFN_vkCreateSharedSwapchainsKHR,
734 }
735 unsafe impl Send for KhrDisplaySwapchainFn {}
736 unsafe impl Sync for KhrDisplaySwapchainFn {}
737 impl KhrDisplaySwapchainFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,738     pub fn load<F>(mut _f: F) -> Self
739     where
740         F: FnMut(&::std::ffi::CStr) -> *const c_void,
741     {
742         Self {
743             create_shared_swapchains_khr: unsafe {
744                 unsafe extern "system" fn create_shared_swapchains_khr(
745                     _device: Device,
746                     _swapchain_count: u32,
747                     _p_create_infos: *const SwapchainCreateInfoKHR,
748                     _p_allocator: *const AllocationCallbacks,
749                     _p_swapchains: *mut SwapchainKHR,
750                 ) -> Result {
751                     panic!(concat!(
752                         "Unable to load ",
753                         stringify!(create_shared_swapchains_khr)
754                     ))
755                 }
756                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
757                     b"vkCreateSharedSwapchainsKHR\0",
758                 );
759                 let val = _f(cname);
760                 if val.is_null() {
761                     create_shared_swapchains_khr
762                 } else {
763                     ::std::mem::transmute(val)
764                 }
765             },
766         }
767     }
768 }
769 #[doc = "Generated from 'VK_KHR_display_swapchain'"]
770 impl Result {
771     pub const ERROR_INCOMPATIBLE_DISPLAY_KHR: Self = Self(-1_000_003_001);
772 }
773 #[doc = "Generated from 'VK_KHR_display_swapchain'"]
774 impl StructureType {
775     pub const DISPLAY_PRESENT_INFO_KHR: Self = Self(1_000_003_000);
776 }
777 impl KhrXlibSurfaceFn {
778     #[inline]
name() -> &'static ::std::ffi::CStr779     pub const fn name() -> &'static ::std::ffi::CStr {
780         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_xlib_surface\0") }
781     }
782     pub const SPEC_VERSION: u32 = 6u32;
783 }
784 #[allow(non_camel_case_types)]
785 pub type PFN_vkCreateXlibSurfaceKHR = unsafe extern "system" fn(
786     instance: Instance,
787     p_create_info: *const XlibSurfaceCreateInfoKHR,
788     p_allocator: *const AllocationCallbacks,
789     p_surface: *mut SurfaceKHR,
790 ) -> Result;
791 #[allow(non_camel_case_types)]
792 pub type PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR = unsafe extern "system" fn(
793     physical_device: PhysicalDevice,
794     queue_family_index: u32,
795     dpy: *mut Display,
796     visual_id: VisualID,
797 ) -> Bool32;
798 #[derive(Clone)]
799 pub struct KhrXlibSurfaceFn {
800     pub create_xlib_surface_khr: PFN_vkCreateXlibSurfaceKHR,
801     pub get_physical_device_xlib_presentation_support_khr:
802         PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR,
803 }
804 unsafe impl Send for KhrXlibSurfaceFn {}
805 unsafe impl Sync for KhrXlibSurfaceFn {}
806 impl KhrXlibSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,807     pub fn load<F>(mut _f: F) -> Self
808     where
809         F: FnMut(&::std::ffi::CStr) -> *const c_void,
810     {
811         Self {
812             create_xlib_surface_khr: unsafe {
813                 unsafe extern "system" fn create_xlib_surface_khr(
814                     _instance: Instance,
815                     _p_create_info: *const XlibSurfaceCreateInfoKHR,
816                     _p_allocator: *const AllocationCallbacks,
817                     _p_surface: *mut SurfaceKHR,
818                 ) -> Result {
819                     panic!(concat!(
820                         "Unable to load ",
821                         stringify!(create_xlib_surface_khr)
822                     ))
823                 }
824                 let cname =
825                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateXlibSurfaceKHR\0");
826                 let val = _f(cname);
827                 if val.is_null() {
828                     create_xlib_surface_khr
829                 } else {
830                     ::std::mem::transmute(val)
831                 }
832             },
833             get_physical_device_xlib_presentation_support_khr: unsafe {
834                 unsafe extern "system" fn get_physical_device_xlib_presentation_support_khr(
835                     _physical_device: PhysicalDevice,
836                     _queue_family_index: u32,
837                     _dpy: *mut Display,
838                     _visual_id: VisualID,
839                 ) -> Bool32 {
840                     panic!(concat!(
841                         "Unable to load ",
842                         stringify!(get_physical_device_xlib_presentation_support_khr)
843                     ))
844                 }
845                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
846                     b"vkGetPhysicalDeviceXlibPresentationSupportKHR\0",
847                 );
848                 let val = _f(cname);
849                 if val.is_null() {
850                     get_physical_device_xlib_presentation_support_khr
851                 } else {
852                     ::std::mem::transmute(val)
853                 }
854             },
855         }
856     }
857 }
858 #[doc = "Generated from 'VK_KHR_xlib_surface'"]
859 impl StructureType {
860     pub const XLIB_SURFACE_CREATE_INFO_KHR: Self = Self(1_000_004_000);
861 }
862 impl KhrXcbSurfaceFn {
863     #[inline]
name() -> &'static ::std::ffi::CStr864     pub const fn name() -> &'static ::std::ffi::CStr {
865         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_xcb_surface\0") }
866     }
867     pub const SPEC_VERSION: u32 = 6u32;
868 }
869 #[allow(non_camel_case_types)]
870 pub type PFN_vkCreateXcbSurfaceKHR = unsafe extern "system" fn(
871     instance: Instance,
872     p_create_info: *const XcbSurfaceCreateInfoKHR,
873     p_allocator: *const AllocationCallbacks,
874     p_surface: *mut SurfaceKHR,
875 ) -> Result;
876 #[allow(non_camel_case_types)]
877 pub type PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR = unsafe extern "system" fn(
878     physical_device: PhysicalDevice,
879     queue_family_index: u32,
880     connection: *mut xcb_connection_t,
881     visual_id: xcb_visualid_t,
882 ) -> Bool32;
883 #[derive(Clone)]
884 pub struct KhrXcbSurfaceFn {
885     pub create_xcb_surface_khr: PFN_vkCreateXcbSurfaceKHR,
886     pub get_physical_device_xcb_presentation_support_khr:
887         PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR,
888 }
889 unsafe impl Send for KhrXcbSurfaceFn {}
890 unsafe impl Sync for KhrXcbSurfaceFn {}
891 impl KhrXcbSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,892     pub fn load<F>(mut _f: F) -> Self
893     where
894         F: FnMut(&::std::ffi::CStr) -> *const c_void,
895     {
896         Self {
897             create_xcb_surface_khr: unsafe {
898                 unsafe extern "system" fn create_xcb_surface_khr(
899                     _instance: Instance,
900                     _p_create_info: *const XcbSurfaceCreateInfoKHR,
901                     _p_allocator: *const AllocationCallbacks,
902                     _p_surface: *mut SurfaceKHR,
903                 ) -> Result {
904                     panic!(concat!(
905                         "Unable to load ",
906                         stringify!(create_xcb_surface_khr)
907                     ))
908                 }
909                 let cname =
910                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateXcbSurfaceKHR\0");
911                 let val = _f(cname);
912                 if val.is_null() {
913                     create_xcb_surface_khr
914                 } else {
915                     ::std::mem::transmute(val)
916                 }
917             },
918             get_physical_device_xcb_presentation_support_khr: unsafe {
919                 unsafe extern "system" fn get_physical_device_xcb_presentation_support_khr(
920                     _physical_device: PhysicalDevice,
921                     _queue_family_index: u32,
922                     _connection: *mut xcb_connection_t,
923                     _visual_id: xcb_visualid_t,
924                 ) -> Bool32 {
925                     panic!(concat!(
926                         "Unable to load ",
927                         stringify!(get_physical_device_xcb_presentation_support_khr)
928                     ))
929                 }
930                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
931                     b"vkGetPhysicalDeviceXcbPresentationSupportKHR\0",
932                 );
933                 let val = _f(cname);
934                 if val.is_null() {
935                     get_physical_device_xcb_presentation_support_khr
936                 } else {
937                     ::std::mem::transmute(val)
938                 }
939             },
940         }
941     }
942 }
943 #[doc = "Generated from 'VK_KHR_xcb_surface'"]
944 impl StructureType {
945     pub const XCB_SURFACE_CREATE_INFO_KHR: Self = Self(1_000_005_000);
946 }
947 impl KhrWaylandSurfaceFn {
948     #[inline]
name() -> &'static ::std::ffi::CStr949     pub const fn name() -> &'static ::std::ffi::CStr {
950         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_wayland_surface\0") }
951     }
952     pub const SPEC_VERSION: u32 = 6u32;
953 }
954 #[allow(non_camel_case_types)]
955 pub type PFN_vkCreateWaylandSurfaceKHR = unsafe extern "system" fn(
956     instance: Instance,
957     p_create_info: *const WaylandSurfaceCreateInfoKHR,
958     p_allocator: *const AllocationCallbacks,
959     p_surface: *mut SurfaceKHR,
960 ) -> Result;
961 #[allow(non_camel_case_types)]
962 pub type PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR = unsafe extern "system" fn(
963     physical_device: PhysicalDevice,
964     queue_family_index: u32,
965     display: *mut wl_display,
966 )
967     -> Bool32;
968 #[derive(Clone)]
969 pub struct KhrWaylandSurfaceFn {
970     pub create_wayland_surface_khr: PFN_vkCreateWaylandSurfaceKHR,
971     pub get_physical_device_wayland_presentation_support_khr:
972         PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR,
973 }
974 unsafe impl Send for KhrWaylandSurfaceFn {}
975 unsafe impl Sync for KhrWaylandSurfaceFn {}
976 impl KhrWaylandSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,977     pub fn load<F>(mut _f: F) -> Self
978     where
979         F: FnMut(&::std::ffi::CStr) -> *const c_void,
980     {
981         Self {
982             create_wayland_surface_khr: unsafe {
983                 unsafe extern "system" fn create_wayland_surface_khr(
984                     _instance: Instance,
985                     _p_create_info: *const WaylandSurfaceCreateInfoKHR,
986                     _p_allocator: *const AllocationCallbacks,
987                     _p_surface: *mut SurfaceKHR,
988                 ) -> Result {
989                     panic!(concat!(
990                         "Unable to load ",
991                         stringify!(create_wayland_surface_khr)
992                     ))
993                 }
994                 let cname =
995                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateWaylandSurfaceKHR\0");
996                 let val = _f(cname);
997                 if val.is_null() {
998                     create_wayland_surface_khr
999                 } else {
1000                     ::std::mem::transmute(val)
1001                 }
1002             },
1003             get_physical_device_wayland_presentation_support_khr: unsafe {
1004                 unsafe extern "system" fn get_physical_device_wayland_presentation_support_khr(
1005                     _physical_device: PhysicalDevice,
1006                     _queue_family_index: u32,
1007                     _display: *mut wl_display,
1008                 ) -> Bool32 {
1009                     panic!(concat!(
1010                         "Unable to load ",
1011                         stringify!(get_physical_device_wayland_presentation_support_khr)
1012                     ))
1013                 }
1014                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1015                     b"vkGetPhysicalDeviceWaylandPresentationSupportKHR\0",
1016                 );
1017                 let val = _f(cname);
1018                 if val.is_null() {
1019                     get_physical_device_wayland_presentation_support_khr
1020                 } else {
1021                     ::std::mem::transmute(val)
1022                 }
1023             },
1024         }
1025     }
1026 }
1027 #[doc = "Generated from 'VK_KHR_wayland_surface'"]
1028 impl StructureType {
1029     pub const WAYLAND_SURFACE_CREATE_INFO_KHR: Self = Self(1_000_006_000);
1030 }
1031 impl KhrMirSurfaceFn {
1032     #[inline]
name() -> &'static ::std::ffi::CStr1033     pub const fn name() -> &'static ::std::ffi::CStr {
1034         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_mir_surface\0") }
1035     }
1036     pub const SPEC_VERSION: u32 = 4u32;
1037 }
1038 #[derive(Clone)]
1039 pub struct KhrMirSurfaceFn {}
1040 unsafe impl Send for KhrMirSurfaceFn {}
1041 unsafe impl Sync for KhrMirSurfaceFn {}
1042 impl KhrMirSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1043     pub fn load<F>(mut _f: F) -> Self
1044     where
1045         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1046     {
1047         Self {}
1048     }
1049 }
1050 impl KhrAndroidSurfaceFn {
1051     #[inline]
name() -> &'static ::std::ffi::CStr1052     pub const fn name() -> &'static ::std::ffi::CStr {
1053         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_android_surface\0") }
1054     }
1055     pub const SPEC_VERSION: u32 = 6u32;
1056 }
1057 #[allow(non_camel_case_types)]
1058 pub type PFN_vkCreateAndroidSurfaceKHR = unsafe extern "system" fn(
1059     instance: Instance,
1060     p_create_info: *const AndroidSurfaceCreateInfoKHR,
1061     p_allocator: *const AllocationCallbacks,
1062     p_surface: *mut SurfaceKHR,
1063 ) -> Result;
1064 #[derive(Clone)]
1065 pub struct KhrAndroidSurfaceFn {
1066     pub create_android_surface_khr: PFN_vkCreateAndroidSurfaceKHR,
1067 }
1068 unsafe impl Send for KhrAndroidSurfaceFn {}
1069 unsafe impl Sync for KhrAndroidSurfaceFn {}
1070 impl KhrAndroidSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1071     pub fn load<F>(mut _f: F) -> Self
1072     where
1073         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1074     {
1075         Self {
1076             create_android_surface_khr: unsafe {
1077                 unsafe extern "system" fn create_android_surface_khr(
1078                     _instance: Instance,
1079                     _p_create_info: *const AndroidSurfaceCreateInfoKHR,
1080                     _p_allocator: *const AllocationCallbacks,
1081                     _p_surface: *mut SurfaceKHR,
1082                 ) -> Result {
1083                     panic!(concat!(
1084                         "Unable to load ",
1085                         stringify!(create_android_surface_khr)
1086                     ))
1087                 }
1088                 let cname =
1089                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateAndroidSurfaceKHR\0");
1090                 let val = _f(cname);
1091                 if val.is_null() {
1092                     create_android_surface_khr
1093                 } else {
1094                     ::std::mem::transmute(val)
1095                 }
1096             },
1097         }
1098     }
1099 }
1100 #[doc = "Generated from 'VK_KHR_android_surface'"]
1101 impl StructureType {
1102     pub const ANDROID_SURFACE_CREATE_INFO_KHR: Self = Self(1_000_008_000);
1103 }
1104 impl KhrWin32SurfaceFn {
1105     #[inline]
name() -> &'static ::std::ffi::CStr1106     pub const fn name() -> &'static ::std::ffi::CStr {
1107         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_win32_surface\0") }
1108     }
1109     pub const SPEC_VERSION: u32 = 6u32;
1110 }
1111 #[allow(non_camel_case_types)]
1112 pub type PFN_vkCreateWin32SurfaceKHR = unsafe extern "system" fn(
1113     instance: Instance,
1114     p_create_info: *const Win32SurfaceCreateInfoKHR,
1115     p_allocator: *const AllocationCallbacks,
1116     p_surface: *mut SurfaceKHR,
1117 ) -> Result;
1118 #[allow(non_camel_case_types)]
1119 pub type PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR =
1120     unsafe extern "system" fn(physical_device: PhysicalDevice, queue_family_index: u32) -> Bool32;
1121 #[derive(Clone)]
1122 pub struct KhrWin32SurfaceFn {
1123     pub create_win32_surface_khr: PFN_vkCreateWin32SurfaceKHR,
1124     pub get_physical_device_win32_presentation_support_khr:
1125         PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR,
1126 }
1127 unsafe impl Send for KhrWin32SurfaceFn {}
1128 unsafe impl Sync for KhrWin32SurfaceFn {}
1129 impl KhrWin32SurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1130     pub fn load<F>(mut _f: F) -> Self
1131     where
1132         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1133     {
1134         Self {
1135             create_win32_surface_khr: unsafe {
1136                 unsafe extern "system" fn create_win32_surface_khr(
1137                     _instance: Instance,
1138                     _p_create_info: *const Win32SurfaceCreateInfoKHR,
1139                     _p_allocator: *const AllocationCallbacks,
1140                     _p_surface: *mut SurfaceKHR,
1141                 ) -> Result {
1142                     panic!(concat!(
1143                         "Unable to load ",
1144                         stringify!(create_win32_surface_khr)
1145                     ))
1146                 }
1147                 let cname =
1148                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateWin32SurfaceKHR\0");
1149                 let val = _f(cname);
1150                 if val.is_null() {
1151                     create_win32_surface_khr
1152                 } else {
1153                     ::std::mem::transmute(val)
1154                 }
1155             },
1156             get_physical_device_win32_presentation_support_khr: unsafe {
1157                 unsafe extern "system" fn get_physical_device_win32_presentation_support_khr(
1158                     _physical_device: PhysicalDevice,
1159                     _queue_family_index: u32,
1160                 ) -> Bool32 {
1161                     panic!(concat!(
1162                         "Unable to load ",
1163                         stringify!(get_physical_device_win32_presentation_support_khr)
1164                     ))
1165                 }
1166                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1167                     b"vkGetPhysicalDeviceWin32PresentationSupportKHR\0",
1168                 );
1169                 let val = _f(cname);
1170                 if val.is_null() {
1171                     get_physical_device_win32_presentation_support_khr
1172                 } else {
1173                     ::std::mem::transmute(val)
1174                 }
1175             },
1176         }
1177     }
1178 }
1179 #[doc = "Generated from 'VK_KHR_win32_surface'"]
1180 impl StructureType {
1181     pub const WIN32_SURFACE_CREATE_INFO_KHR: Self = Self(1_000_009_000);
1182 }
1183 impl AndroidNativeBufferFn {
1184     #[inline]
name() -> &'static ::std::ffi::CStr1185     pub const fn name() -> &'static ::std::ffi::CStr {
1186         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_ANDROID_native_buffer\0") }
1187     }
1188     pub const SPEC_VERSION: u32 = 8u32;
1189 }
1190 #[allow(non_camel_case_types)]
1191 pub type PFN_vkGetSwapchainGrallocUsageANDROID = unsafe extern "system" fn(
1192     device: Device,
1193     format: Format,
1194     image_usage: ImageUsageFlags,
1195     gralloc_usage: *mut c_int,
1196 ) -> Result;
1197 #[allow(non_camel_case_types)]
1198 pub type PFN_vkAcquireImageANDROID = unsafe extern "system" fn(
1199     device: Device,
1200     image: Image,
1201     native_fence_fd: c_int,
1202     semaphore: Semaphore,
1203     fence: Fence,
1204 ) -> Result;
1205 #[allow(non_camel_case_types)]
1206 pub type PFN_vkQueueSignalReleaseImageANDROID = unsafe extern "system" fn(
1207     queue: Queue,
1208     wait_semaphore_count: u32,
1209     p_wait_semaphores: *const Semaphore,
1210     image: Image,
1211     p_native_fence_fd: *mut c_int,
1212 ) -> Result;
1213 #[allow(non_camel_case_types)]
1214 pub type PFN_vkGetSwapchainGrallocUsage2ANDROID = unsafe extern "system" fn(
1215     device: Device,
1216     format: Format,
1217     image_usage: ImageUsageFlags,
1218     swapchain_image_usage: SwapchainImageUsageFlagsANDROID,
1219     gralloc_consumer_usage: *mut u64,
1220     gralloc_producer_usage: *mut u64,
1221 ) -> Result;
1222 #[derive(Clone)]
1223 pub struct AndroidNativeBufferFn {
1224     pub get_swapchain_gralloc_usage_android: PFN_vkGetSwapchainGrallocUsageANDROID,
1225     pub acquire_image_android: PFN_vkAcquireImageANDROID,
1226     pub queue_signal_release_image_android: PFN_vkQueueSignalReleaseImageANDROID,
1227     pub get_swapchain_gralloc_usage2_android: PFN_vkGetSwapchainGrallocUsage2ANDROID,
1228 }
1229 unsafe impl Send for AndroidNativeBufferFn {}
1230 unsafe impl Sync for AndroidNativeBufferFn {}
1231 impl AndroidNativeBufferFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1232     pub fn load<F>(mut _f: F) -> Self
1233     where
1234         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1235     {
1236         Self {
1237             get_swapchain_gralloc_usage_android: unsafe {
1238                 unsafe extern "system" fn get_swapchain_gralloc_usage_android(
1239                     _device: Device,
1240                     _format: Format,
1241                     _image_usage: ImageUsageFlags,
1242                     _gralloc_usage: *mut c_int,
1243                 ) -> Result {
1244                     panic!(concat!(
1245                         "Unable to load ",
1246                         stringify!(get_swapchain_gralloc_usage_android)
1247                     ))
1248                 }
1249                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1250                     b"vkGetSwapchainGrallocUsageANDROID\0",
1251                 );
1252                 let val = _f(cname);
1253                 if val.is_null() {
1254                     get_swapchain_gralloc_usage_android
1255                 } else {
1256                     ::std::mem::transmute(val)
1257                 }
1258             },
1259             acquire_image_android: unsafe {
1260                 unsafe extern "system" fn acquire_image_android(
1261                     _device: Device,
1262                     _image: Image,
1263                     _native_fence_fd: c_int,
1264                     _semaphore: Semaphore,
1265                     _fence: Fence,
1266                 ) -> Result {
1267                     panic!(concat!(
1268                         "Unable to load ",
1269                         stringify!(acquire_image_android)
1270                     ))
1271                 }
1272                 let cname =
1273                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireImageANDROID\0");
1274                 let val = _f(cname);
1275                 if val.is_null() {
1276                     acquire_image_android
1277                 } else {
1278                     ::std::mem::transmute(val)
1279                 }
1280             },
1281             queue_signal_release_image_android: unsafe {
1282                 unsafe extern "system" fn queue_signal_release_image_android(
1283                     _queue: Queue,
1284                     _wait_semaphore_count: u32,
1285                     _p_wait_semaphores: *const Semaphore,
1286                     _image: Image,
1287                     _p_native_fence_fd: *mut c_int,
1288                 ) -> Result {
1289                     panic!(concat!(
1290                         "Unable to load ",
1291                         stringify!(queue_signal_release_image_android)
1292                     ))
1293                 }
1294                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1295                     b"vkQueueSignalReleaseImageANDROID\0",
1296                 );
1297                 let val = _f(cname);
1298                 if val.is_null() {
1299                     queue_signal_release_image_android
1300                 } else {
1301                     ::std::mem::transmute(val)
1302                 }
1303             },
1304             get_swapchain_gralloc_usage2_android: unsafe {
1305                 unsafe extern "system" fn get_swapchain_gralloc_usage2_android(
1306                     _device: Device,
1307                     _format: Format,
1308                     _image_usage: ImageUsageFlags,
1309                     _swapchain_image_usage: SwapchainImageUsageFlagsANDROID,
1310                     _gralloc_consumer_usage: *mut u64,
1311                     _gralloc_producer_usage: *mut u64,
1312                 ) -> Result {
1313                     panic!(concat!(
1314                         "Unable to load ",
1315                         stringify!(get_swapchain_gralloc_usage2_android)
1316                     ))
1317                 }
1318                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1319                     b"vkGetSwapchainGrallocUsage2ANDROID\0",
1320                 );
1321                 let val = _f(cname);
1322                 if val.is_null() {
1323                     get_swapchain_gralloc_usage2_android
1324                 } else {
1325                     ::std::mem::transmute(val)
1326                 }
1327             },
1328         }
1329     }
1330 }
1331 #[doc = "Generated from 'VK_ANDROID_native_buffer'"]
1332 impl StructureType {
1333     pub const NATIVE_BUFFER_ANDROID: Self = Self(1_000_010_000);
1334     pub const SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID: Self = Self(1_000_010_001);
1335     pub const PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID: Self = Self(1_000_010_002);
1336 }
1337 impl ExtDebugReportFn {
1338     #[inline]
name() -> &'static ::std::ffi::CStr1339     pub const fn name() -> &'static ::std::ffi::CStr {
1340         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_debug_report\0") }
1341     }
1342     pub const SPEC_VERSION: u32 = 10u32;
1343 }
1344 #[allow(non_camel_case_types)]
1345 pub type PFN_vkCreateDebugReportCallbackEXT = unsafe extern "system" fn(
1346     instance: Instance,
1347     p_create_info: *const DebugReportCallbackCreateInfoEXT,
1348     p_allocator: *const AllocationCallbacks,
1349     p_callback: *mut DebugReportCallbackEXT,
1350 ) -> Result;
1351 #[allow(non_camel_case_types)]
1352 pub type PFN_vkDestroyDebugReportCallbackEXT = unsafe extern "system" fn(
1353     instance: Instance,
1354     callback: DebugReportCallbackEXT,
1355     p_allocator: *const AllocationCallbacks,
1356 );
1357 #[allow(non_camel_case_types)]
1358 pub type PFN_vkDebugReportMessageEXT = unsafe extern "system" fn(
1359     instance: Instance,
1360     flags: DebugReportFlagsEXT,
1361     object_type: DebugReportObjectTypeEXT,
1362     object: u64,
1363     location: usize,
1364     message_code: i32,
1365     p_layer_prefix: *const c_char,
1366     p_message: *const c_char,
1367 );
1368 #[derive(Clone)]
1369 pub struct ExtDebugReportFn {
1370     pub create_debug_report_callback_ext: PFN_vkCreateDebugReportCallbackEXT,
1371     pub destroy_debug_report_callback_ext: PFN_vkDestroyDebugReportCallbackEXT,
1372     pub debug_report_message_ext: PFN_vkDebugReportMessageEXT,
1373 }
1374 unsafe impl Send for ExtDebugReportFn {}
1375 unsafe impl Sync for ExtDebugReportFn {}
1376 impl ExtDebugReportFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1377     pub fn load<F>(mut _f: F) -> Self
1378     where
1379         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1380     {
1381         Self {
1382             create_debug_report_callback_ext: unsafe {
1383                 unsafe extern "system" fn create_debug_report_callback_ext(
1384                     _instance: Instance,
1385                     _p_create_info: *const DebugReportCallbackCreateInfoEXT,
1386                     _p_allocator: *const AllocationCallbacks,
1387                     _p_callback: *mut DebugReportCallbackEXT,
1388                 ) -> Result {
1389                     panic!(concat!(
1390                         "Unable to load ",
1391                         stringify!(create_debug_report_callback_ext)
1392                     ))
1393                 }
1394                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1395                     b"vkCreateDebugReportCallbackEXT\0",
1396                 );
1397                 let val = _f(cname);
1398                 if val.is_null() {
1399                     create_debug_report_callback_ext
1400                 } else {
1401                     ::std::mem::transmute(val)
1402                 }
1403             },
1404             destroy_debug_report_callback_ext: unsafe {
1405                 unsafe extern "system" fn destroy_debug_report_callback_ext(
1406                     _instance: Instance,
1407                     _callback: DebugReportCallbackEXT,
1408                     _p_allocator: *const AllocationCallbacks,
1409                 ) {
1410                     panic!(concat!(
1411                         "Unable to load ",
1412                         stringify!(destroy_debug_report_callback_ext)
1413                     ))
1414                 }
1415                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1416                     b"vkDestroyDebugReportCallbackEXT\0",
1417                 );
1418                 let val = _f(cname);
1419                 if val.is_null() {
1420                     destroy_debug_report_callback_ext
1421                 } else {
1422                     ::std::mem::transmute(val)
1423                 }
1424             },
1425             debug_report_message_ext: unsafe {
1426                 unsafe extern "system" fn debug_report_message_ext(
1427                     _instance: Instance,
1428                     _flags: DebugReportFlagsEXT,
1429                     _object_type: DebugReportObjectTypeEXT,
1430                     _object: u64,
1431                     _location: usize,
1432                     _message_code: i32,
1433                     _p_layer_prefix: *const c_char,
1434                     _p_message: *const c_char,
1435                 ) {
1436                     panic!(concat!(
1437                         "Unable to load ",
1438                         stringify!(debug_report_message_ext)
1439                     ))
1440                 }
1441                 let cname =
1442                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDebugReportMessageEXT\0");
1443                 let val = _f(cname);
1444                 if val.is_null() {
1445                     debug_report_message_ext
1446                 } else {
1447                     ::std::mem::transmute(val)
1448                 }
1449             },
1450         }
1451     }
1452 }
1453 #[doc = "Generated from 'VK_EXT_debug_report'"]
1454 impl DebugReportObjectTypeEXT {
1455     pub const SAMPLER_YCBCR_CONVERSION: Self = Self(1_000_156_000);
1456     pub const DESCRIPTOR_UPDATE_TEMPLATE: Self = Self(1_000_085_000);
1457 }
1458 #[doc = "Generated from 'VK_EXT_debug_report'"]
1459 impl ObjectType {
1460     pub const DEBUG_REPORT_CALLBACK_EXT: Self = Self(1_000_011_000);
1461 }
1462 #[doc = "Generated from 'VK_EXT_debug_report'"]
1463 impl Result {
1464     pub const ERROR_VALIDATION_FAILED_EXT: Self = Self(-1_000_011_001);
1465 }
1466 #[doc = "Generated from 'VK_EXT_debug_report'"]
1467 impl StructureType {
1468     pub const DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT: Self = Self(1_000_011_000);
1469 }
1470 impl NvGlslShaderFn {
1471     #[inline]
name() -> &'static ::std::ffi::CStr1472     pub const fn name() -> &'static ::std::ffi::CStr {
1473         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_glsl_shader\0") }
1474     }
1475     pub const SPEC_VERSION: u32 = 1u32;
1476 }
1477 #[derive(Clone)]
1478 pub struct NvGlslShaderFn {}
1479 unsafe impl Send for NvGlslShaderFn {}
1480 unsafe impl Sync for NvGlslShaderFn {}
1481 impl NvGlslShaderFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1482     pub fn load<F>(mut _f: F) -> Self
1483     where
1484         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1485     {
1486         Self {}
1487     }
1488 }
1489 #[doc = "Generated from 'VK_NV_glsl_shader'"]
1490 impl Result {
1491     pub const ERROR_INVALID_SHADER_NV: Self = Self(-1_000_012_000);
1492 }
1493 impl ExtDepthRangeUnrestrictedFn {
1494     #[inline]
name() -> &'static ::std::ffi::CStr1495     pub const fn name() -> &'static ::std::ffi::CStr {
1496         unsafe {
1497             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_depth_range_unrestricted\0")
1498         }
1499     }
1500     pub const SPEC_VERSION: u32 = 1u32;
1501 }
1502 #[derive(Clone)]
1503 pub struct ExtDepthRangeUnrestrictedFn {}
1504 unsafe impl Send for ExtDepthRangeUnrestrictedFn {}
1505 unsafe impl Sync for ExtDepthRangeUnrestrictedFn {}
1506 impl ExtDepthRangeUnrestrictedFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1507     pub fn load<F>(mut _f: F) -> Self
1508     where
1509         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1510     {
1511         Self {}
1512     }
1513 }
1514 impl KhrSamplerMirrorClampToEdgeFn {
1515     #[inline]
name() -> &'static ::std::ffi::CStr1516     pub const fn name() -> &'static ::std::ffi::CStr {
1517         unsafe {
1518             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1519                 b"VK_KHR_sampler_mirror_clamp_to_edge\0",
1520             )
1521         }
1522     }
1523     pub const SPEC_VERSION: u32 = 3u32;
1524 }
1525 #[derive(Clone)]
1526 pub struct KhrSamplerMirrorClampToEdgeFn {}
1527 unsafe impl Send for KhrSamplerMirrorClampToEdgeFn {}
1528 unsafe impl Sync for KhrSamplerMirrorClampToEdgeFn {}
1529 impl KhrSamplerMirrorClampToEdgeFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1530     pub fn load<F>(mut _f: F) -> Self
1531     where
1532         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1533     {
1534         Self {}
1535     }
1536 }
1537 #[doc = "Generated from 'VK_KHR_sampler_mirror_clamp_to_edge'"]
1538 impl SamplerAddressMode {
1539     #[doc = "Note that this defines what was previously a core enum, and so uses the 'value' attribute rather than 'offset', and does not have a suffix. This is a special case, and should not be repeated"]
1540     pub const MIRROR_CLAMP_TO_EDGE: Self = Self(4);
1541     #[deprecated = "Introduced for consistency with extension suffixing rules"]
1542     pub const MIRROR_CLAMP_TO_EDGE_KHR: Self = Self::MIRROR_CLAMP_TO_EDGE;
1543 }
1544 impl ImgFilterCubicFn {
1545     #[inline]
name() -> &'static ::std::ffi::CStr1546     pub const fn name() -> &'static ::std::ffi::CStr {
1547         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_IMG_filter_cubic\0") }
1548     }
1549     pub const SPEC_VERSION: u32 = 1u32;
1550 }
1551 #[derive(Clone)]
1552 pub struct ImgFilterCubicFn {}
1553 unsafe impl Send for ImgFilterCubicFn {}
1554 unsafe impl Sync for ImgFilterCubicFn {}
1555 impl ImgFilterCubicFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1556     pub fn load<F>(mut _f: F) -> Self
1557     where
1558         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1559     {
1560         Self {}
1561     }
1562 }
1563 #[doc = "Generated from 'VK_IMG_filter_cubic'"]
1564 impl Filter {
1565     pub const CUBIC_IMG: Self = Self::CUBIC_EXT;
1566 }
1567 #[doc = "Generated from 'VK_IMG_filter_cubic'"]
1568 impl FormatFeatureFlags {
1569     #[doc = "Format can be filtered with VK_FILTER_CUBIC_IMG when being sampled"]
1570     pub const SAMPLED_IMAGE_FILTER_CUBIC_IMG: Self = Self::SAMPLED_IMAGE_FILTER_CUBIC_EXT;
1571 }
1572 impl AmdExtension17Fn {
1573     #[inline]
name() -> &'static ::std::ffi::CStr1574     pub const fn name() -> &'static ::std::ffi::CStr {
1575         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_17\0") }
1576     }
1577     pub const SPEC_VERSION: u32 = 0u32;
1578 }
1579 #[derive(Clone)]
1580 pub struct AmdExtension17Fn {}
1581 unsafe impl Send for AmdExtension17Fn {}
1582 unsafe impl Sync for AmdExtension17Fn {}
1583 impl AmdExtension17Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1584     pub fn load<F>(mut _f: F) -> Self
1585     where
1586         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1587     {
1588         Self {}
1589     }
1590 }
1591 impl AmdExtension18Fn {
1592     #[inline]
name() -> &'static ::std::ffi::CStr1593     pub const fn name() -> &'static ::std::ffi::CStr {
1594         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_18\0") }
1595     }
1596     pub const SPEC_VERSION: u32 = 0u32;
1597 }
1598 #[derive(Clone)]
1599 pub struct AmdExtension18Fn {}
1600 unsafe impl Send for AmdExtension18Fn {}
1601 unsafe impl Sync for AmdExtension18Fn {}
1602 impl AmdExtension18Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1603     pub fn load<F>(mut _f: F) -> Self
1604     where
1605         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1606     {
1607         Self {}
1608     }
1609 }
1610 impl AmdRasterizationOrderFn {
1611     #[inline]
name() -> &'static ::std::ffi::CStr1612     pub const fn name() -> &'static ::std::ffi::CStr {
1613         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_rasterization_order\0") }
1614     }
1615     pub const SPEC_VERSION: u32 = 1u32;
1616 }
1617 #[derive(Clone)]
1618 pub struct AmdRasterizationOrderFn {}
1619 unsafe impl Send for AmdRasterizationOrderFn {}
1620 unsafe impl Sync for AmdRasterizationOrderFn {}
1621 impl AmdRasterizationOrderFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1622     pub fn load<F>(mut _f: F) -> Self
1623     where
1624         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1625     {
1626         Self {}
1627     }
1628 }
1629 #[doc = "Generated from 'VK_AMD_rasterization_order'"]
1630 impl StructureType {
1631     pub const PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD: Self = Self(1_000_018_000);
1632 }
1633 impl AmdExtension20Fn {
1634     #[inline]
name() -> &'static ::std::ffi::CStr1635     pub const fn name() -> &'static ::std::ffi::CStr {
1636         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_20\0") }
1637     }
1638     pub const SPEC_VERSION: u32 = 0u32;
1639 }
1640 #[derive(Clone)]
1641 pub struct AmdExtension20Fn {}
1642 unsafe impl Send for AmdExtension20Fn {}
1643 unsafe impl Sync for AmdExtension20Fn {}
1644 impl AmdExtension20Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1645     pub fn load<F>(mut _f: F) -> Self
1646     where
1647         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1648     {
1649         Self {}
1650     }
1651 }
1652 impl AmdShaderTrinaryMinmaxFn {
1653     #[inline]
name() -> &'static ::std::ffi::CStr1654     pub const fn name() -> &'static ::std::ffi::CStr {
1655         unsafe {
1656             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_trinary_minmax\0")
1657         }
1658     }
1659     pub const SPEC_VERSION: u32 = 1u32;
1660 }
1661 #[derive(Clone)]
1662 pub struct AmdShaderTrinaryMinmaxFn {}
1663 unsafe impl Send for AmdShaderTrinaryMinmaxFn {}
1664 unsafe impl Sync for AmdShaderTrinaryMinmaxFn {}
1665 impl AmdShaderTrinaryMinmaxFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1666     pub fn load<F>(mut _f: F) -> Self
1667     where
1668         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1669     {
1670         Self {}
1671     }
1672 }
1673 impl AmdShaderExplicitVertexParameterFn {
1674     #[inline]
name() -> &'static ::std::ffi::CStr1675     pub const fn name() -> &'static ::std::ffi::CStr {
1676         unsafe {
1677             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1678                 b"VK_AMD_shader_explicit_vertex_parameter\0",
1679             )
1680         }
1681     }
1682     pub const SPEC_VERSION: u32 = 1u32;
1683 }
1684 #[derive(Clone)]
1685 pub struct AmdShaderExplicitVertexParameterFn {}
1686 unsafe impl Send for AmdShaderExplicitVertexParameterFn {}
1687 unsafe impl Sync for AmdShaderExplicitVertexParameterFn {}
1688 impl AmdShaderExplicitVertexParameterFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1689     pub fn load<F>(mut _f: F) -> Self
1690     where
1691         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1692     {
1693         Self {}
1694     }
1695 }
1696 impl ExtDebugMarkerFn {
1697     #[inline]
name() -> &'static ::std::ffi::CStr1698     pub const fn name() -> &'static ::std::ffi::CStr {
1699         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_debug_marker\0") }
1700     }
1701     pub const SPEC_VERSION: u32 = 4u32;
1702 }
1703 #[allow(non_camel_case_types)]
1704 pub type PFN_vkDebugMarkerSetObjectTagEXT = unsafe extern "system" fn(
1705     device: Device,
1706     p_tag_info: *const DebugMarkerObjectTagInfoEXT,
1707 ) -> Result;
1708 #[allow(non_camel_case_types)]
1709 pub type PFN_vkDebugMarkerSetObjectNameEXT = unsafe extern "system" fn(
1710     device: Device,
1711     p_name_info: *const DebugMarkerObjectNameInfoEXT,
1712 ) -> Result;
1713 #[allow(non_camel_case_types)]
1714 pub type PFN_vkCmdDebugMarkerBeginEXT = unsafe extern "system" fn(
1715     command_buffer: CommandBuffer,
1716     p_marker_info: *const DebugMarkerMarkerInfoEXT,
1717 );
1718 #[allow(non_camel_case_types)]
1719 pub type PFN_vkCmdDebugMarkerEndEXT = unsafe extern "system" fn(command_buffer: CommandBuffer);
1720 #[allow(non_camel_case_types)]
1721 pub type PFN_vkCmdDebugMarkerInsertEXT = unsafe extern "system" fn(
1722     command_buffer: CommandBuffer,
1723     p_marker_info: *const DebugMarkerMarkerInfoEXT,
1724 );
1725 #[derive(Clone)]
1726 pub struct ExtDebugMarkerFn {
1727     pub debug_marker_set_object_tag_ext: PFN_vkDebugMarkerSetObjectTagEXT,
1728     pub debug_marker_set_object_name_ext: PFN_vkDebugMarkerSetObjectNameEXT,
1729     pub cmd_debug_marker_begin_ext: PFN_vkCmdDebugMarkerBeginEXT,
1730     pub cmd_debug_marker_end_ext: PFN_vkCmdDebugMarkerEndEXT,
1731     pub cmd_debug_marker_insert_ext: PFN_vkCmdDebugMarkerInsertEXT,
1732 }
1733 unsafe impl Send for ExtDebugMarkerFn {}
1734 unsafe impl Sync for ExtDebugMarkerFn {}
1735 impl ExtDebugMarkerFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1736     pub fn load<F>(mut _f: F) -> Self
1737     where
1738         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1739     {
1740         Self {
1741             debug_marker_set_object_tag_ext: unsafe {
1742                 unsafe extern "system" fn debug_marker_set_object_tag_ext(
1743                     _device: Device,
1744                     _p_tag_info: *const DebugMarkerObjectTagInfoEXT,
1745                 ) -> Result {
1746                     panic!(concat!(
1747                         "Unable to load ",
1748                         stringify!(debug_marker_set_object_tag_ext)
1749                     ))
1750                 }
1751                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1752                     b"vkDebugMarkerSetObjectTagEXT\0",
1753                 );
1754                 let val = _f(cname);
1755                 if val.is_null() {
1756                     debug_marker_set_object_tag_ext
1757                 } else {
1758                     ::std::mem::transmute(val)
1759                 }
1760             },
1761             debug_marker_set_object_name_ext: unsafe {
1762                 unsafe extern "system" fn debug_marker_set_object_name_ext(
1763                     _device: Device,
1764                     _p_name_info: *const DebugMarkerObjectNameInfoEXT,
1765                 ) -> Result {
1766                     panic!(concat!(
1767                         "Unable to load ",
1768                         stringify!(debug_marker_set_object_name_ext)
1769                     ))
1770                 }
1771                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1772                     b"vkDebugMarkerSetObjectNameEXT\0",
1773                 );
1774                 let val = _f(cname);
1775                 if val.is_null() {
1776                     debug_marker_set_object_name_ext
1777                 } else {
1778                     ::std::mem::transmute(val)
1779                 }
1780             },
1781             cmd_debug_marker_begin_ext: unsafe {
1782                 unsafe extern "system" fn cmd_debug_marker_begin_ext(
1783                     _command_buffer: CommandBuffer,
1784                     _p_marker_info: *const DebugMarkerMarkerInfoEXT,
1785                 ) {
1786                     panic!(concat!(
1787                         "Unable to load ",
1788                         stringify!(cmd_debug_marker_begin_ext)
1789                     ))
1790                 }
1791                 let cname =
1792                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerBeginEXT\0");
1793                 let val = _f(cname);
1794                 if val.is_null() {
1795                     cmd_debug_marker_begin_ext
1796                 } else {
1797                     ::std::mem::transmute(val)
1798                 }
1799             },
1800             cmd_debug_marker_end_ext: unsafe {
1801                 unsafe extern "system" fn cmd_debug_marker_end_ext(_command_buffer: CommandBuffer) {
1802                     panic!(concat!(
1803                         "Unable to load ",
1804                         stringify!(cmd_debug_marker_end_ext)
1805                     ))
1806                 }
1807                 let cname =
1808                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerEndEXT\0");
1809                 let val = _f(cname);
1810                 if val.is_null() {
1811                     cmd_debug_marker_end_ext
1812                 } else {
1813                     ::std::mem::transmute(val)
1814                 }
1815             },
1816             cmd_debug_marker_insert_ext: unsafe {
1817                 unsafe extern "system" fn cmd_debug_marker_insert_ext(
1818                     _command_buffer: CommandBuffer,
1819                     _p_marker_info: *const DebugMarkerMarkerInfoEXT,
1820                 ) {
1821                     panic!(concat!(
1822                         "Unable to load ",
1823                         stringify!(cmd_debug_marker_insert_ext)
1824                     ))
1825                 }
1826                 let cname =
1827                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerInsertEXT\0");
1828                 let val = _f(cname);
1829                 if val.is_null() {
1830                     cmd_debug_marker_insert_ext
1831                 } else {
1832                     ::std::mem::transmute(val)
1833                 }
1834             },
1835         }
1836     }
1837 }
1838 #[doc = "Generated from 'VK_EXT_debug_marker'"]
1839 impl StructureType {
1840     pub const DEBUG_MARKER_OBJECT_NAME_INFO_EXT: Self = Self(1_000_022_000);
1841     pub const DEBUG_MARKER_OBJECT_TAG_INFO_EXT: Self = Self(1_000_022_001);
1842     pub const DEBUG_MARKER_MARKER_INFO_EXT: Self = Self(1_000_022_002);
1843 }
1844 impl KhrVideoQueueFn {
1845     #[inline]
name() -> &'static ::std::ffi::CStr1846     pub const fn name() -> &'static ::std::ffi::CStr {
1847         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_queue\0") }
1848     }
1849     pub const SPEC_VERSION: u32 = 8u32;
1850 }
1851 #[allow(non_camel_case_types)]
1852 pub type PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR = unsafe extern "system" fn(
1853     physical_device: PhysicalDevice,
1854     p_video_profile: *const VideoProfileInfoKHR,
1855     p_capabilities: *mut VideoCapabilitiesKHR,
1856 ) -> Result;
1857 #[allow(non_camel_case_types)]
1858 pub type PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR = unsafe extern "system" fn(
1859     physical_device: PhysicalDevice,
1860     p_video_format_info: *const PhysicalDeviceVideoFormatInfoKHR,
1861     p_video_format_property_count: *mut u32,
1862     p_video_format_properties: *mut VideoFormatPropertiesKHR,
1863 ) -> Result;
1864 #[allow(non_camel_case_types)]
1865 pub type PFN_vkCreateVideoSessionKHR = unsafe extern "system" fn(
1866     device: Device,
1867     p_create_info: *const VideoSessionCreateInfoKHR,
1868     p_allocator: *const AllocationCallbacks,
1869     p_video_session: *mut VideoSessionKHR,
1870 ) -> Result;
1871 #[allow(non_camel_case_types)]
1872 pub type PFN_vkDestroyVideoSessionKHR = unsafe extern "system" fn(
1873     device: Device,
1874     video_session: VideoSessionKHR,
1875     p_allocator: *const AllocationCallbacks,
1876 );
1877 #[allow(non_camel_case_types)]
1878 pub type PFN_vkGetVideoSessionMemoryRequirementsKHR = unsafe extern "system" fn(
1879     device: Device,
1880     video_session: VideoSessionKHR,
1881     p_memory_requirements_count: *mut u32,
1882     p_memory_requirements: *mut VideoSessionMemoryRequirementsKHR,
1883 ) -> Result;
1884 #[allow(non_camel_case_types)]
1885 pub type PFN_vkBindVideoSessionMemoryKHR = unsafe extern "system" fn(
1886     device: Device,
1887     video_session: VideoSessionKHR,
1888     bind_session_memory_info_count: u32,
1889     p_bind_session_memory_infos: *const BindVideoSessionMemoryInfoKHR,
1890 ) -> Result;
1891 #[allow(non_camel_case_types)]
1892 pub type PFN_vkCreateVideoSessionParametersKHR = unsafe extern "system" fn(
1893     device: Device,
1894     p_create_info: *const VideoSessionParametersCreateInfoKHR,
1895     p_allocator: *const AllocationCallbacks,
1896     p_video_session_parameters: *mut VideoSessionParametersKHR,
1897 ) -> Result;
1898 #[allow(non_camel_case_types)]
1899 pub type PFN_vkUpdateVideoSessionParametersKHR = unsafe extern "system" fn(
1900     device: Device,
1901     video_session_parameters: VideoSessionParametersKHR,
1902     p_update_info: *const VideoSessionParametersUpdateInfoKHR,
1903 ) -> Result;
1904 #[allow(non_camel_case_types)]
1905 pub type PFN_vkDestroyVideoSessionParametersKHR = unsafe extern "system" fn(
1906     device: Device,
1907     video_session_parameters: VideoSessionParametersKHR,
1908     p_allocator: *const AllocationCallbacks,
1909 );
1910 #[allow(non_camel_case_types)]
1911 pub type PFN_vkCmdBeginVideoCodingKHR = unsafe extern "system" fn(
1912     command_buffer: CommandBuffer,
1913     p_begin_info: *const VideoBeginCodingInfoKHR,
1914 );
1915 #[allow(non_camel_case_types)]
1916 pub type PFN_vkCmdEndVideoCodingKHR = unsafe extern "system" fn(
1917     command_buffer: CommandBuffer,
1918     p_end_coding_info: *const VideoEndCodingInfoKHR,
1919 );
1920 #[allow(non_camel_case_types)]
1921 pub type PFN_vkCmdControlVideoCodingKHR = unsafe extern "system" fn(
1922     command_buffer: CommandBuffer,
1923     p_coding_control_info: *const VideoCodingControlInfoKHR,
1924 );
1925 #[derive(Clone)]
1926 pub struct KhrVideoQueueFn {
1927     pub get_physical_device_video_capabilities_khr: PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR,
1928     pub get_physical_device_video_format_properties_khr:
1929         PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR,
1930     pub create_video_session_khr: PFN_vkCreateVideoSessionKHR,
1931     pub destroy_video_session_khr: PFN_vkDestroyVideoSessionKHR,
1932     pub get_video_session_memory_requirements_khr: PFN_vkGetVideoSessionMemoryRequirementsKHR,
1933     pub bind_video_session_memory_khr: PFN_vkBindVideoSessionMemoryKHR,
1934     pub create_video_session_parameters_khr: PFN_vkCreateVideoSessionParametersKHR,
1935     pub update_video_session_parameters_khr: PFN_vkUpdateVideoSessionParametersKHR,
1936     pub destroy_video_session_parameters_khr: PFN_vkDestroyVideoSessionParametersKHR,
1937     pub cmd_begin_video_coding_khr: PFN_vkCmdBeginVideoCodingKHR,
1938     pub cmd_end_video_coding_khr: PFN_vkCmdEndVideoCodingKHR,
1939     pub cmd_control_video_coding_khr: PFN_vkCmdControlVideoCodingKHR,
1940 }
1941 unsafe impl Send for KhrVideoQueueFn {}
1942 unsafe impl Sync for KhrVideoQueueFn {}
1943 impl KhrVideoQueueFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1944     pub fn load<F>(mut _f: F) -> Self
1945     where
1946         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1947     {
1948         Self {
1949             get_physical_device_video_capabilities_khr: unsafe {
1950                 unsafe extern "system" fn get_physical_device_video_capabilities_khr(
1951                     _physical_device: PhysicalDevice,
1952                     _p_video_profile: *const VideoProfileInfoKHR,
1953                     _p_capabilities: *mut VideoCapabilitiesKHR,
1954                 ) -> Result {
1955                     panic!(concat!(
1956                         "Unable to load ",
1957                         stringify!(get_physical_device_video_capabilities_khr)
1958                     ))
1959                 }
1960                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1961                     b"vkGetPhysicalDeviceVideoCapabilitiesKHR\0",
1962                 );
1963                 let val = _f(cname);
1964                 if val.is_null() {
1965                     get_physical_device_video_capabilities_khr
1966                 } else {
1967                     ::std::mem::transmute(val)
1968                 }
1969             },
1970             get_physical_device_video_format_properties_khr: unsafe {
1971                 unsafe extern "system" fn get_physical_device_video_format_properties_khr(
1972                     _physical_device: PhysicalDevice,
1973                     _p_video_format_info: *const PhysicalDeviceVideoFormatInfoKHR,
1974                     _p_video_format_property_count: *mut u32,
1975                     _p_video_format_properties: *mut VideoFormatPropertiesKHR,
1976                 ) -> Result {
1977                     panic!(concat!(
1978                         "Unable to load ",
1979                         stringify!(get_physical_device_video_format_properties_khr)
1980                     ))
1981                 }
1982                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1983                     b"vkGetPhysicalDeviceVideoFormatPropertiesKHR\0",
1984                 );
1985                 let val = _f(cname);
1986                 if val.is_null() {
1987                     get_physical_device_video_format_properties_khr
1988                 } else {
1989                     ::std::mem::transmute(val)
1990                 }
1991             },
1992             create_video_session_khr: unsafe {
1993                 unsafe extern "system" fn create_video_session_khr(
1994                     _device: Device,
1995                     _p_create_info: *const VideoSessionCreateInfoKHR,
1996                     _p_allocator: *const AllocationCallbacks,
1997                     _p_video_session: *mut VideoSessionKHR,
1998                 ) -> Result {
1999                     panic!(concat!(
2000                         "Unable to load ",
2001                         stringify!(create_video_session_khr)
2002                     ))
2003                 }
2004                 let cname =
2005                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateVideoSessionKHR\0");
2006                 let val = _f(cname);
2007                 if val.is_null() {
2008                     create_video_session_khr
2009                 } else {
2010                     ::std::mem::transmute(val)
2011                 }
2012             },
2013             destroy_video_session_khr: unsafe {
2014                 unsafe extern "system" fn destroy_video_session_khr(
2015                     _device: Device,
2016                     _video_session: VideoSessionKHR,
2017                     _p_allocator: *const AllocationCallbacks,
2018                 ) {
2019                     panic!(concat!(
2020                         "Unable to load ",
2021                         stringify!(destroy_video_session_khr)
2022                     ))
2023                 }
2024                 let cname =
2025                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroyVideoSessionKHR\0");
2026                 let val = _f(cname);
2027                 if val.is_null() {
2028                     destroy_video_session_khr
2029                 } else {
2030                     ::std::mem::transmute(val)
2031                 }
2032             },
2033             get_video_session_memory_requirements_khr: unsafe {
2034                 unsafe extern "system" fn get_video_session_memory_requirements_khr(
2035                     _device: Device,
2036                     _video_session: VideoSessionKHR,
2037                     _p_memory_requirements_count: *mut u32,
2038                     _p_memory_requirements: *mut VideoSessionMemoryRequirementsKHR,
2039                 ) -> Result {
2040                     panic!(concat!(
2041                         "Unable to load ",
2042                         stringify!(get_video_session_memory_requirements_khr)
2043                     ))
2044                 }
2045                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2046                     b"vkGetVideoSessionMemoryRequirementsKHR\0",
2047                 );
2048                 let val = _f(cname);
2049                 if val.is_null() {
2050                     get_video_session_memory_requirements_khr
2051                 } else {
2052                     ::std::mem::transmute(val)
2053                 }
2054             },
2055             bind_video_session_memory_khr: unsafe {
2056                 unsafe extern "system" fn bind_video_session_memory_khr(
2057                     _device: Device,
2058                     _video_session: VideoSessionKHR,
2059                     _bind_session_memory_info_count: u32,
2060                     _p_bind_session_memory_infos: *const BindVideoSessionMemoryInfoKHR,
2061                 ) -> Result {
2062                     panic!(concat!(
2063                         "Unable to load ",
2064                         stringify!(bind_video_session_memory_khr)
2065                     ))
2066                 }
2067                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2068                     b"vkBindVideoSessionMemoryKHR\0",
2069                 );
2070                 let val = _f(cname);
2071                 if val.is_null() {
2072                     bind_video_session_memory_khr
2073                 } else {
2074                     ::std::mem::transmute(val)
2075                 }
2076             },
2077             create_video_session_parameters_khr: unsafe {
2078                 unsafe extern "system" fn create_video_session_parameters_khr(
2079                     _device: Device,
2080                     _p_create_info: *const VideoSessionParametersCreateInfoKHR,
2081                     _p_allocator: *const AllocationCallbacks,
2082                     _p_video_session_parameters: *mut VideoSessionParametersKHR,
2083                 ) -> Result {
2084                     panic!(concat!(
2085                         "Unable to load ",
2086                         stringify!(create_video_session_parameters_khr)
2087                     ))
2088                 }
2089                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2090                     b"vkCreateVideoSessionParametersKHR\0",
2091                 );
2092                 let val = _f(cname);
2093                 if val.is_null() {
2094                     create_video_session_parameters_khr
2095                 } else {
2096                     ::std::mem::transmute(val)
2097                 }
2098             },
2099             update_video_session_parameters_khr: unsafe {
2100                 unsafe extern "system" fn update_video_session_parameters_khr(
2101                     _device: Device,
2102                     _video_session_parameters: VideoSessionParametersKHR,
2103                     _p_update_info: *const VideoSessionParametersUpdateInfoKHR,
2104                 ) -> Result {
2105                     panic!(concat!(
2106                         "Unable to load ",
2107                         stringify!(update_video_session_parameters_khr)
2108                     ))
2109                 }
2110                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2111                     b"vkUpdateVideoSessionParametersKHR\0",
2112                 );
2113                 let val = _f(cname);
2114                 if val.is_null() {
2115                     update_video_session_parameters_khr
2116                 } else {
2117                     ::std::mem::transmute(val)
2118                 }
2119             },
2120             destroy_video_session_parameters_khr: unsafe {
2121                 unsafe extern "system" fn destroy_video_session_parameters_khr(
2122                     _device: Device,
2123                     _video_session_parameters: VideoSessionParametersKHR,
2124                     _p_allocator: *const AllocationCallbacks,
2125                 ) {
2126                     panic!(concat!(
2127                         "Unable to load ",
2128                         stringify!(destroy_video_session_parameters_khr)
2129                     ))
2130                 }
2131                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2132                     b"vkDestroyVideoSessionParametersKHR\0",
2133                 );
2134                 let val = _f(cname);
2135                 if val.is_null() {
2136                     destroy_video_session_parameters_khr
2137                 } else {
2138                     ::std::mem::transmute(val)
2139                 }
2140             },
2141             cmd_begin_video_coding_khr: unsafe {
2142                 unsafe extern "system" fn cmd_begin_video_coding_khr(
2143                     _command_buffer: CommandBuffer,
2144                     _p_begin_info: *const VideoBeginCodingInfoKHR,
2145                 ) {
2146                     panic!(concat!(
2147                         "Unable to load ",
2148                         stringify!(cmd_begin_video_coding_khr)
2149                     ))
2150                 }
2151                 let cname =
2152                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginVideoCodingKHR\0");
2153                 let val = _f(cname);
2154                 if val.is_null() {
2155                     cmd_begin_video_coding_khr
2156                 } else {
2157                     ::std::mem::transmute(val)
2158                 }
2159             },
2160             cmd_end_video_coding_khr: unsafe {
2161                 unsafe extern "system" fn cmd_end_video_coding_khr(
2162                     _command_buffer: CommandBuffer,
2163                     _p_end_coding_info: *const VideoEndCodingInfoKHR,
2164                 ) {
2165                     panic!(concat!(
2166                         "Unable to load ",
2167                         stringify!(cmd_end_video_coding_khr)
2168                     ))
2169                 }
2170                 let cname =
2171                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdEndVideoCodingKHR\0");
2172                 let val = _f(cname);
2173                 if val.is_null() {
2174                     cmd_end_video_coding_khr
2175                 } else {
2176                     ::std::mem::transmute(val)
2177                 }
2178             },
2179             cmd_control_video_coding_khr: unsafe {
2180                 unsafe extern "system" fn cmd_control_video_coding_khr(
2181                     _command_buffer: CommandBuffer,
2182                     _p_coding_control_info: *const VideoCodingControlInfoKHR,
2183                 ) {
2184                     panic!(concat!(
2185                         "Unable to load ",
2186                         stringify!(cmd_control_video_coding_khr)
2187                     ))
2188                 }
2189                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2190                     b"vkCmdControlVideoCodingKHR\0",
2191                 );
2192                 let val = _f(cname);
2193                 if val.is_null() {
2194                     cmd_control_video_coding_khr
2195                 } else {
2196                     ::std::mem::transmute(val)
2197                 }
2198             },
2199         }
2200     }
2201 }
2202 #[doc = "Generated from 'VK_KHR_video_queue'"]
2203 impl ObjectType {
2204     #[doc = "VkVideoSessionKHR"]
2205     pub const VIDEO_SESSION_KHR: Self = Self(1_000_023_000);
2206     #[doc = "VkVideoSessionParametersKHR"]
2207     pub const VIDEO_SESSION_PARAMETERS_KHR: Self = Self(1_000_023_001);
2208 }
2209 #[doc = "Generated from 'VK_KHR_video_queue'"]
2210 impl QueryResultFlags {
2211     pub const WITH_STATUS_KHR: Self = Self(0b1_0000);
2212 }
2213 #[doc = "Generated from 'VK_KHR_video_queue'"]
2214 impl QueryType {
2215     pub const RESULT_STATUS_ONLY_KHR: Self = Self(1_000_023_000);
2216 }
2217 #[doc = "Generated from 'VK_KHR_video_queue'"]
2218 impl Result {
2219     pub const ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR: Self = Self(-1_000_023_000);
2220     pub const ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR: Self = Self(-1_000_023_001);
2221     pub const ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR: Self = Self(-1_000_023_002);
2222     pub const ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR: Self = Self(-1_000_023_003);
2223     pub const ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR: Self = Self(-1_000_023_004);
2224     pub const ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR: Self = Self(-1_000_023_005);
2225 }
2226 #[doc = "Generated from 'VK_KHR_video_queue'"]
2227 impl StructureType {
2228     pub const VIDEO_PROFILE_INFO_KHR: Self = Self(1_000_023_000);
2229     pub const VIDEO_CAPABILITIES_KHR: Self = Self(1_000_023_001);
2230     pub const VIDEO_PICTURE_RESOURCE_INFO_KHR: Self = Self(1_000_023_002);
2231     pub const VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR: Self = Self(1_000_023_003);
2232     pub const BIND_VIDEO_SESSION_MEMORY_INFO_KHR: Self = Self(1_000_023_004);
2233     pub const VIDEO_SESSION_CREATE_INFO_KHR: Self = Self(1_000_023_005);
2234     pub const VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR: Self = Self(1_000_023_006);
2235     pub const VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR: Self = Self(1_000_023_007);
2236     pub const VIDEO_BEGIN_CODING_INFO_KHR: Self = Self(1_000_023_008);
2237     pub const VIDEO_END_CODING_INFO_KHR: Self = Self(1_000_023_009);
2238     pub const VIDEO_CODING_CONTROL_INFO_KHR: Self = Self(1_000_023_010);
2239     pub const VIDEO_REFERENCE_SLOT_INFO_KHR: Self = Self(1_000_023_011);
2240     pub const QUEUE_FAMILY_VIDEO_PROPERTIES_KHR: Self = Self(1_000_023_012);
2241     pub const VIDEO_PROFILE_LIST_INFO_KHR: Self = Self(1_000_023_013);
2242     pub const PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR: Self = Self(1_000_023_014);
2243     pub const VIDEO_FORMAT_PROPERTIES_KHR: Self = Self(1_000_023_015);
2244     pub const QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR: Self = Self(1_000_023_016);
2245 }
2246 impl KhrVideoDecodeQueueFn {
2247     #[inline]
name() -> &'static ::std::ffi::CStr2248     pub const fn name() -> &'static ::std::ffi::CStr {
2249         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_decode_queue\0") }
2250     }
2251     pub const SPEC_VERSION: u32 = 7u32;
2252 }
2253 #[allow(non_camel_case_types)]
2254 pub type PFN_vkCmdDecodeVideoKHR = unsafe extern "system" fn(
2255     command_buffer: CommandBuffer,
2256     p_decode_info: *const VideoDecodeInfoKHR,
2257 );
2258 #[derive(Clone)]
2259 pub struct KhrVideoDecodeQueueFn {
2260     pub cmd_decode_video_khr: PFN_vkCmdDecodeVideoKHR,
2261 }
2262 unsafe impl Send for KhrVideoDecodeQueueFn {}
2263 unsafe impl Sync for KhrVideoDecodeQueueFn {}
2264 impl KhrVideoDecodeQueueFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2265     pub fn load<F>(mut _f: F) -> Self
2266     where
2267         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2268     {
2269         Self {
2270             cmd_decode_video_khr: unsafe {
2271                 unsafe extern "system" fn cmd_decode_video_khr(
2272                     _command_buffer: CommandBuffer,
2273                     _p_decode_info: *const VideoDecodeInfoKHR,
2274                 ) {
2275                     panic!(concat!("Unable to load ", stringify!(cmd_decode_video_khr)))
2276                 }
2277                 let cname =
2278                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDecodeVideoKHR\0");
2279                 let val = _f(cname);
2280                 if val.is_null() {
2281                     cmd_decode_video_khr
2282                 } else {
2283                     ::std::mem::transmute(val)
2284                 }
2285             },
2286         }
2287     }
2288 }
2289 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
2290 impl AccessFlags2 {
2291     pub const VIDEO_DECODE_READ_KHR: Self = Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000);
2292     pub const VIDEO_DECODE_WRITE_KHR: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000);
2293 }
2294 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
2295 impl BufferUsageFlags {
2296     pub const VIDEO_DECODE_SRC_KHR: Self = Self(0b10_0000_0000_0000);
2297     pub const VIDEO_DECODE_DST_KHR: Self = Self(0b100_0000_0000_0000);
2298 }
2299 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
2300 impl FormatFeatureFlags {
2301     pub const VIDEO_DECODE_OUTPUT_KHR: Self = Self(0b10_0000_0000_0000_0000_0000_0000);
2302     pub const VIDEO_DECODE_DPB_KHR: Self = Self(0b100_0000_0000_0000_0000_0000_0000);
2303 }
2304 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
2305 impl FormatFeatureFlags2 {
2306     pub const VIDEO_DECODE_OUTPUT_KHR: Self = Self(0b10_0000_0000_0000_0000_0000_0000);
2307     pub const VIDEO_DECODE_DPB_KHR: Self = Self(0b100_0000_0000_0000_0000_0000_0000);
2308 }
2309 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
2310 impl ImageLayout {
2311     pub const VIDEO_DECODE_DST_KHR: Self = Self(1_000_024_000);
2312     pub const VIDEO_DECODE_SRC_KHR: Self = Self(1_000_024_001);
2313     pub const VIDEO_DECODE_DPB_KHR: Self = Self(1_000_024_002);
2314 }
2315 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
2316 impl ImageUsageFlags {
2317     pub const VIDEO_DECODE_DST_KHR: Self = Self(0b100_0000_0000);
2318     pub const VIDEO_DECODE_SRC_KHR: Self = Self(0b1000_0000_0000);
2319     pub const VIDEO_DECODE_DPB_KHR: Self = Self(0b1_0000_0000_0000);
2320 }
2321 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
2322 impl PipelineStageFlags2 {
2323     pub const VIDEO_DECODE_KHR: Self = Self(0b100_0000_0000_0000_0000_0000_0000);
2324 }
2325 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
2326 impl QueueFlags {
2327     pub const VIDEO_DECODE_KHR: Self = Self(0b10_0000);
2328 }
2329 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
2330 impl StructureType {
2331     pub const VIDEO_DECODE_INFO_KHR: Self = Self(1_000_024_000);
2332     pub const VIDEO_DECODE_CAPABILITIES_KHR: Self = Self(1_000_024_001);
2333     pub const VIDEO_DECODE_USAGE_INFO_KHR: Self = Self(1_000_024_002);
2334 }
2335 impl AmdGcnShaderFn {
2336     #[inline]
name() -> &'static ::std::ffi::CStr2337     pub const fn name() -> &'static ::std::ffi::CStr {
2338         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_gcn_shader\0") }
2339     }
2340     pub const SPEC_VERSION: u32 = 1u32;
2341 }
2342 #[derive(Clone)]
2343 pub struct AmdGcnShaderFn {}
2344 unsafe impl Send for AmdGcnShaderFn {}
2345 unsafe impl Sync for AmdGcnShaderFn {}
2346 impl AmdGcnShaderFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2347     pub fn load<F>(mut _f: F) -> Self
2348     where
2349         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2350     {
2351         Self {}
2352     }
2353 }
2354 impl NvDedicatedAllocationFn {
2355     #[inline]
name() -> &'static ::std::ffi::CStr2356     pub const fn name() -> &'static ::std::ffi::CStr {
2357         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_dedicated_allocation\0") }
2358     }
2359     pub const SPEC_VERSION: u32 = 1u32;
2360 }
2361 #[derive(Clone)]
2362 pub struct NvDedicatedAllocationFn {}
2363 unsafe impl Send for NvDedicatedAllocationFn {}
2364 unsafe impl Sync for NvDedicatedAllocationFn {}
2365 impl NvDedicatedAllocationFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2366     pub fn load<F>(mut _f: F) -> Self
2367     where
2368         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2369     {
2370         Self {}
2371     }
2372 }
2373 #[doc = "Generated from 'VK_NV_dedicated_allocation'"]
2374 impl StructureType {
2375     pub const DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV: Self = Self(1_000_026_000);
2376     pub const DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV: Self = Self(1_000_026_001);
2377     pub const DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV: Self = Self(1_000_026_002);
2378 }
2379 impl ExtExtension28Fn {
2380     #[inline]
name() -> &'static ::std::ffi::CStr2381     pub const fn name() -> &'static ::std::ffi::CStr {
2382         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_28\0") }
2383     }
2384     pub const SPEC_VERSION: u32 = 0u32;
2385 }
2386 #[derive(Clone)]
2387 pub struct ExtExtension28Fn {}
2388 unsafe impl Send for ExtExtension28Fn {}
2389 unsafe impl Sync for ExtExtension28Fn {}
2390 impl ExtExtension28Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2391     pub fn load<F>(mut _f: F) -> Self
2392     where
2393         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2394     {
2395         Self {}
2396     }
2397 }
2398 impl ExtTransformFeedbackFn {
2399     #[inline]
name() -> &'static ::std::ffi::CStr2400     pub const fn name() -> &'static ::std::ffi::CStr {
2401         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_transform_feedback\0") }
2402     }
2403     pub const SPEC_VERSION: u32 = 1u32;
2404 }
2405 #[allow(non_camel_case_types)]
2406 pub type PFN_vkCmdBindTransformFeedbackBuffersEXT = unsafe extern "system" fn(
2407     command_buffer: CommandBuffer,
2408     first_binding: u32,
2409     binding_count: u32,
2410     p_buffers: *const Buffer,
2411     p_offsets: *const DeviceSize,
2412     p_sizes: *const DeviceSize,
2413 );
2414 #[allow(non_camel_case_types)]
2415 pub type PFN_vkCmdBeginTransformFeedbackEXT = unsafe extern "system" fn(
2416     command_buffer: CommandBuffer,
2417     first_counter_buffer: u32,
2418     counter_buffer_count: u32,
2419     p_counter_buffers: *const Buffer,
2420     p_counter_buffer_offsets: *const DeviceSize,
2421 );
2422 #[allow(non_camel_case_types)]
2423 pub type PFN_vkCmdEndTransformFeedbackEXT = unsafe extern "system" fn(
2424     command_buffer: CommandBuffer,
2425     first_counter_buffer: u32,
2426     counter_buffer_count: u32,
2427     p_counter_buffers: *const Buffer,
2428     p_counter_buffer_offsets: *const DeviceSize,
2429 );
2430 #[allow(non_camel_case_types)]
2431 pub type PFN_vkCmdBeginQueryIndexedEXT = unsafe extern "system" fn(
2432     command_buffer: CommandBuffer,
2433     query_pool: QueryPool,
2434     query: u32,
2435     flags: QueryControlFlags,
2436     index: u32,
2437 );
2438 #[allow(non_camel_case_types)]
2439 pub type PFN_vkCmdEndQueryIndexedEXT = unsafe extern "system" fn(
2440     command_buffer: CommandBuffer,
2441     query_pool: QueryPool,
2442     query: u32,
2443     index: u32,
2444 );
2445 #[allow(non_camel_case_types)]
2446 pub type PFN_vkCmdDrawIndirectByteCountEXT = unsafe extern "system" fn(
2447     command_buffer: CommandBuffer,
2448     instance_count: u32,
2449     first_instance: u32,
2450     counter_buffer: Buffer,
2451     counter_buffer_offset: DeviceSize,
2452     counter_offset: u32,
2453     vertex_stride: u32,
2454 );
2455 #[derive(Clone)]
2456 pub struct ExtTransformFeedbackFn {
2457     pub cmd_bind_transform_feedback_buffers_ext: PFN_vkCmdBindTransformFeedbackBuffersEXT,
2458     pub cmd_begin_transform_feedback_ext: PFN_vkCmdBeginTransformFeedbackEXT,
2459     pub cmd_end_transform_feedback_ext: PFN_vkCmdEndTransformFeedbackEXT,
2460     pub cmd_begin_query_indexed_ext: PFN_vkCmdBeginQueryIndexedEXT,
2461     pub cmd_end_query_indexed_ext: PFN_vkCmdEndQueryIndexedEXT,
2462     pub cmd_draw_indirect_byte_count_ext: PFN_vkCmdDrawIndirectByteCountEXT,
2463 }
2464 unsafe impl Send for ExtTransformFeedbackFn {}
2465 unsafe impl Sync for ExtTransformFeedbackFn {}
2466 impl ExtTransformFeedbackFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2467     pub fn load<F>(mut _f: F) -> Self
2468     where
2469         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2470     {
2471         Self {
2472             cmd_bind_transform_feedback_buffers_ext: unsafe {
2473                 unsafe extern "system" fn cmd_bind_transform_feedback_buffers_ext(
2474                     _command_buffer: CommandBuffer,
2475                     _first_binding: u32,
2476                     _binding_count: u32,
2477                     _p_buffers: *const Buffer,
2478                     _p_offsets: *const DeviceSize,
2479                     _p_sizes: *const DeviceSize,
2480                 ) {
2481                     panic!(concat!(
2482                         "Unable to load ",
2483                         stringify!(cmd_bind_transform_feedback_buffers_ext)
2484                     ))
2485                 }
2486                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2487                     b"vkCmdBindTransformFeedbackBuffersEXT\0",
2488                 );
2489                 let val = _f(cname);
2490                 if val.is_null() {
2491                     cmd_bind_transform_feedback_buffers_ext
2492                 } else {
2493                     ::std::mem::transmute(val)
2494                 }
2495             },
2496             cmd_begin_transform_feedback_ext: unsafe {
2497                 unsafe extern "system" fn cmd_begin_transform_feedback_ext(
2498                     _command_buffer: CommandBuffer,
2499                     _first_counter_buffer: u32,
2500                     _counter_buffer_count: u32,
2501                     _p_counter_buffers: *const Buffer,
2502                     _p_counter_buffer_offsets: *const DeviceSize,
2503                 ) {
2504                     panic!(concat!(
2505                         "Unable to load ",
2506                         stringify!(cmd_begin_transform_feedback_ext)
2507                     ))
2508                 }
2509                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2510                     b"vkCmdBeginTransformFeedbackEXT\0",
2511                 );
2512                 let val = _f(cname);
2513                 if val.is_null() {
2514                     cmd_begin_transform_feedback_ext
2515                 } else {
2516                     ::std::mem::transmute(val)
2517                 }
2518             },
2519             cmd_end_transform_feedback_ext: unsafe {
2520                 unsafe extern "system" fn cmd_end_transform_feedback_ext(
2521                     _command_buffer: CommandBuffer,
2522                     _first_counter_buffer: u32,
2523                     _counter_buffer_count: u32,
2524                     _p_counter_buffers: *const Buffer,
2525                     _p_counter_buffer_offsets: *const DeviceSize,
2526                 ) {
2527                     panic!(concat!(
2528                         "Unable to load ",
2529                         stringify!(cmd_end_transform_feedback_ext)
2530                     ))
2531                 }
2532                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2533                     b"vkCmdEndTransformFeedbackEXT\0",
2534                 );
2535                 let val = _f(cname);
2536                 if val.is_null() {
2537                     cmd_end_transform_feedback_ext
2538                 } else {
2539                     ::std::mem::transmute(val)
2540                 }
2541             },
2542             cmd_begin_query_indexed_ext: unsafe {
2543                 unsafe extern "system" fn cmd_begin_query_indexed_ext(
2544                     _command_buffer: CommandBuffer,
2545                     _query_pool: QueryPool,
2546                     _query: u32,
2547                     _flags: QueryControlFlags,
2548                     _index: u32,
2549                 ) {
2550                     panic!(concat!(
2551                         "Unable to load ",
2552                         stringify!(cmd_begin_query_indexed_ext)
2553                     ))
2554                 }
2555                 let cname =
2556                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginQueryIndexedEXT\0");
2557                 let val = _f(cname);
2558                 if val.is_null() {
2559                     cmd_begin_query_indexed_ext
2560                 } else {
2561                     ::std::mem::transmute(val)
2562                 }
2563             },
2564             cmd_end_query_indexed_ext: unsafe {
2565                 unsafe extern "system" fn cmd_end_query_indexed_ext(
2566                     _command_buffer: CommandBuffer,
2567                     _query_pool: QueryPool,
2568                     _query: u32,
2569                     _index: u32,
2570                 ) {
2571                     panic!(concat!(
2572                         "Unable to load ",
2573                         stringify!(cmd_end_query_indexed_ext)
2574                     ))
2575                 }
2576                 let cname =
2577                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdEndQueryIndexedEXT\0");
2578                 let val = _f(cname);
2579                 if val.is_null() {
2580                     cmd_end_query_indexed_ext
2581                 } else {
2582                     ::std::mem::transmute(val)
2583                 }
2584             },
2585             cmd_draw_indirect_byte_count_ext: unsafe {
2586                 unsafe extern "system" fn cmd_draw_indirect_byte_count_ext(
2587                     _command_buffer: CommandBuffer,
2588                     _instance_count: u32,
2589                     _first_instance: u32,
2590                     _counter_buffer: Buffer,
2591                     _counter_buffer_offset: DeviceSize,
2592                     _counter_offset: u32,
2593                     _vertex_stride: u32,
2594                 ) {
2595                     panic!(concat!(
2596                         "Unable to load ",
2597                         stringify!(cmd_draw_indirect_byte_count_ext)
2598                     ))
2599                 }
2600                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2601                     b"vkCmdDrawIndirectByteCountEXT\0",
2602                 );
2603                 let val = _f(cname);
2604                 if val.is_null() {
2605                     cmd_draw_indirect_byte_count_ext
2606                 } else {
2607                     ::std::mem::transmute(val)
2608                 }
2609             },
2610         }
2611     }
2612 }
2613 #[doc = "Generated from 'VK_EXT_transform_feedback'"]
2614 impl AccessFlags {
2615     pub const TRANSFORM_FEEDBACK_WRITE_EXT: Self = Self(0b10_0000_0000_0000_0000_0000_0000);
2616     pub const TRANSFORM_FEEDBACK_COUNTER_READ_EXT: Self = Self(0b100_0000_0000_0000_0000_0000_0000);
2617     pub const TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT: Self =
2618         Self(0b1000_0000_0000_0000_0000_0000_0000);
2619 }
2620 #[doc = "Generated from 'VK_EXT_transform_feedback'"]
2621 impl BufferUsageFlags {
2622     pub const TRANSFORM_FEEDBACK_BUFFER_EXT: Self = Self(0b1000_0000_0000);
2623     pub const TRANSFORM_FEEDBACK_COUNTER_BUFFER_EXT: Self = Self(0b1_0000_0000_0000);
2624 }
2625 #[doc = "Generated from 'VK_EXT_transform_feedback'"]
2626 impl PipelineStageFlags {
2627     pub const TRANSFORM_FEEDBACK_EXT: Self = Self(0b1_0000_0000_0000_0000_0000_0000);
2628 }
2629 #[doc = "Generated from 'VK_EXT_transform_feedback'"]
2630 impl QueryType {
2631     pub const TRANSFORM_FEEDBACK_STREAM_EXT: Self = Self(1_000_028_004);
2632 }
2633 #[doc = "Generated from 'VK_EXT_transform_feedback'"]
2634 impl StructureType {
2635     pub const PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: Self = Self(1_000_028_000);
2636     pub const PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: Self = Self(1_000_028_001);
2637     pub const PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: Self = Self(1_000_028_002);
2638 }
2639 impl NvxBinaryImportFn {
2640     #[inline]
name() -> &'static ::std::ffi::CStr2641     pub const fn name() -> &'static ::std::ffi::CStr {
2642         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NVX_binary_import\0") }
2643     }
2644     pub const SPEC_VERSION: u32 = 1u32;
2645 }
2646 #[allow(non_camel_case_types)]
2647 pub type PFN_vkCreateCuModuleNVX = unsafe extern "system" fn(
2648     device: Device,
2649     p_create_info: *const CuModuleCreateInfoNVX,
2650     p_allocator: *const AllocationCallbacks,
2651     p_module: *mut CuModuleNVX,
2652 ) -> Result;
2653 #[allow(non_camel_case_types)]
2654 pub type PFN_vkCreateCuFunctionNVX = unsafe extern "system" fn(
2655     device: Device,
2656     p_create_info: *const CuFunctionCreateInfoNVX,
2657     p_allocator: *const AllocationCallbacks,
2658     p_function: *mut CuFunctionNVX,
2659 ) -> Result;
2660 #[allow(non_camel_case_types)]
2661 pub type PFN_vkDestroyCuModuleNVX = unsafe extern "system" fn(
2662     device: Device,
2663     module: CuModuleNVX,
2664     p_allocator: *const AllocationCallbacks,
2665 );
2666 #[allow(non_camel_case_types)]
2667 pub type PFN_vkDestroyCuFunctionNVX = unsafe extern "system" fn(
2668     device: Device,
2669     function: CuFunctionNVX,
2670     p_allocator: *const AllocationCallbacks,
2671 );
2672 #[allow(non_camel_case_types)]
2673 pub type PFN_vkCmdCuLaunchKernelNVX =
2674     unsafe extern "system" fn(command_buffer: CommandBuffer, p_launch_info: *const CuLaunchInfoNVX);
2675 #[derive(Clone)]
2676 pub struct NvxBinaryImportFn {
2677     pub create_cu_module_nvx: PFN_vkCreateCuModuleNVX,
2678     pub create_cu_function_nvx: PFN_vkCreateCuFunctionNVX,
2679     pub destroy_cu_module_nvx: PFN_vkDestroyCuModuleNVX,
2680     pub destroy_cu_function_nvx: PFN_vkDestroyCuFunctionNVX,
2681     pub cmd_cu_launch_kernel_nvx: PFN_vkCmdCuLaunchKernelNVX,
2682 }
2683 unsafe impl Send for NvxBinaryImportFn {}
2684 unsafe impl Sync for NvxBinaryImportFn {}
2685 impl NvxBinaryImportFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2686     pub fn load<F>(mut _f: F) -> Self
2687     where
2688         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2689     {
2690         Self {
2691             create_cu_module_nvx: unsafe {
2692                 unsafe extern "system" fn create_cu_module_nvx(
2693                     _device: Device,
2694                     _p_create_info: *const CuModuleCreateInfoNVX,
2695                     _p_allocator: *const AllocationCallbacks,
2696                     _p_module: *mut CuModuleNVX,
2697                 ) -> Result {
2698                     panic!(concat!("Unable to load ", stringify!(create_cu_module_nvx)))
2699                 }
2700                 let cname =
2701                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateCuModuleNVX\0");
2702                 let val = _f(cname);
2703                 if val.is_null() {
2704                     create_cu_module_nvx
2705                 } else {
2706                     ::std::mem::transmute(val)
2707                 }
2708             },
2709             create_cu_function_nvx: unsafe {
2710                 unsafe extern "system" fn create_cu_function_nvx(
2711                     _device: Device,
2712                     _p_create_info: *const CuFunctionCreateInfoNVX,
2713                     _p_allocator: *const AllocationCallbacks,
2714                     _p_function: *mut CuFunctionNVX,
2715                 ) -> Result {
2716                     panic!(concat!(
2717                         "Unable to load ",
2718                         stringify!(create_cu_function_nvx)
2719                     ))
2720                 }
2721                 let cname =
2722                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateCuFunctionNVX\0");
2723                 let val = _f(cname);
2724                 if val.is_null() {
2725                     create_cu_function_nvx
2726                 } else {
2727                     ::std::mem::transmute(val)
2728                 }
2729             },
2730             destroy_cu_module_nvx: unsafe {
2731                 unsafe extern "system" fn destroy_cu_module_nvx(
2732                     _device: Device,
2733                     _module: CuModuleNVX,
2734                     _p_allocator: *const AllocationCallbacks,
2735                 ) {
2736                     panic!(concat!(
2737                         "Unable to load ",
2738                         stringify!(destroy_cu_module_nvx)
2739                     ))
2740                 }
2741                 let cname =
2742                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroyCuModuleNVX\0");
2743                 let val = _f(cname);
2744                 if val.is_null() {
2745                     destroy_cu_module_nvx
2746                 } else {
2747                     ::std::mem::transmute(val)
2748                 }
2749             },
2750             destroy_cu_function_nvx: unsafe {
2751                 unsafe extern "system" fn destroy_cu_function_nvx(
2752                     _device: Device,
2753                     _function: CuFunctionNVX,
2754                     _p_allocator: *const AllocationCallbacks,
2755                 ) {
2756                     panic!(concat!(
2757                         "Unable to load ",
2758                         stringify!(destroy_cu_function_nvx)
2759                     ))
2760                 }
2761                 let cname =
2762                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroyCuFunctionNVX\0");
2763                 let val = _f(cname);
2764                 if val.is_null() {
2765                     destroy_cu_function_nvx
2766                 } else {
2767                     ::std::mem::transmute(val)
2768                 }
2769             },
2770             cmd_cu_launch_kernel_nvx: unsafe {
2771                 unsafe extern "system" fn cmd_cu_launch_kernel_nvx(
2772                     _command_buffer: CommandBuffer,
2773                     _p_launch_info: *const CuLaunchInfoNVX,
2774                 ) {
2775                     panic!(concat!(
2776                         "Unable to load ",
2777                         stringify!(cmd_cu_launch_kernel_nvx)
2778                     ))
2779                 }
2780                 let cname =
2781                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdCuLaunchKernelNVX\0");
2782                 let val = _f(cname);
2783                 if val.is_null() {
2784                     cmd_cu_launch_kernel_nvx
2785                 } else {
2786                     ::std::mem::transmute(val)
2787                 }
2788             },
2789         }
2790     }
2791 }
2792 #[doc = "Generated from 'VK_NVX_binary_import'"]
2793 impl DebugReportObjectTypeEXT {
2794     pub const CU_MODULE_NVX: Self = Self(1_000_029_000);
2795     pub const CU_FUNCTION_NVX: Self = Self(1_000_029_001);
2796 }
2797 #[doc = "Generated from 'VK_NVX_binary_import'"]
2798 impl ObjectType {
2799     pub const CU_MODULE_NVX: Self = Self(1_000_029_000);
2800     pub const CU_FUNCTION_NVX: Self = Self(1_000_029_001);
2801 }
2802 #[doc = "Generated from 'VK_NVX_binary_import'"]
2803 impl StructureType {
2804     pub const CU_MODULE_CREATE_INFO_NVX: Self = Self(1_000_029_000);
2805     pub const CU_FUNCTION_CREATE_INFO_NVX: Self = Self(1_000_029_001);
2806     pub const CU_LAUNCH_INFO_NVX: Self = Self(1_000_029_002);
2807 }
2808 impl NvxImageViewHandleFn {
2809     #[inline]
name() -> &'static ::std::ffi::CStr2810     pub const fn name() -> &'static ::std::ffi::CStr {
2811         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NVX_image_view_handle\0") }
2812     }
2813     pub const SPEC_VERSION: u32 = 2u32;
2814 }
2815 #[allow(non_camel_case_types)]
2816 pub type PFN_vkGetImageViewHandleNVX =
2817     unsafe extern "system" fn(device: Device, p_info: *const ImageViewHandleInfoNVX) -> u32;
2818 #[allow(non_camel_case_types)]
2819 pub type PFN_vkGetImageViewAddressNVX = unsafe extern "system" fn(
2820     device: Device,
2821     image_view: ImageView,
2822     p_properties: *mut ImageViewAddressPropertiesNVX,
2823 ) -> Result;
2824 #[derive(Clone)]
2825 pub struct NvxImageViewHandleFn {
2826     pub get_image_view_handle_nvx: PFN_vkGetImageViewHandleNVX,
2827     pub get_image_view_address_nvx: PFN_vkGetImageViewAddressNVX,
2828 }
2829 unsafe impl Send for NvxImageViewHandleFn {}
2830 unsafe impl Sync for NvxImageViewHandleFn {}
2831 impl NvxImageViewHandleFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2832     pub fn load<F>(mut _f: F) -> Self
2833     where
2834         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2835     {
2836         Self {
2837             get_image_view_handle_nvx: unsafe {
2838                 unsafe extern "system" fn get_image_view_handle_nvx(
2839                     _device: Device,
2840                     _p_info: *const ImageViewHandleInfoNVX,
2841                 ) -> u32 {
2842                     panic!(concat!(
2843                         "Unable to load ",
2844                         stringify!(get_image_view_handle_nvx)
2845                     ))
2846                 }
2847                 let cname =
2848                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetImageViewHandleNVX\0");
2849                 let val = _f(cname);
2850                 if val.is_null() {
2851                     get_image_view_handle_nvx
2852                 } else {
2853                     ::std::mem::transmute(val)
2854                 }
2855             },
2856             get_image_view_address_nvx: unsafe {
2857                 unsafe extern "system" fn get_image_view_address_nvx(
2858                     _device: Device,
2859                     _image_view: ImageView,
2860                     _p_properties: *mut ImageViewAddressPropertiesNVX,
2861                 ) -> Result {
2862                     panic!(concat!(
2863                         "Unable to load ",
2864                         stringify!(get_image_view_address_nvx)
2865                     ))
2866                 }
2867                 let cname =
2868                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetImageViewAddressNVX\0");
2869                 let val = _f(cname);
2870                 if val.is_null() {
2871                     get_image_view_address_nvx
2872                 } else {
2873                     ::std::mem::transmute(val)
2874                 }
2875             },
2876         }
2877     }
2878 }
2879 #[doc = "Generated from 'VK_NVX_image_view_handle'"]
2880 impl StructureType {
2881     pub const IMAGE_VIEW_HANDLE_INFO_NVX: Self = Self(1_000_030_000);
2882     pub const IMAGE_VIEW_ADDRESS_PROPERTIES_NVX: Self = Self(1_000_030_001);
2883 }
2884 impl AmdExtension32Fn {
2885     #[inline]
name() -> &'static ::std::ffi::CStr2886     pub const fn name() -> &'static ::std::ffi::CStr {
2887         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_32\0") }
2888     }
2889     pub const SPEC_VERSION: u32 = 0u32;
2890 }
2891 #[derive(Clone)]
2892 pub struct AmdExtension32Fn {}
2893 unsafe impl Send for AmdExtension32Fn {}
2894 unsafe impl Sync for AmdExtension32Fn {}
2895 impl AmdExtension32Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2896     pub fn load<F>(mut _f: F) -> Self
2897     where
2898         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2899     {
2900         Self {}
2901     }
2902 }
2903 impl AmdExtension33Fn {
2904     #[inline]
name() -> &'static ::std::ffi::CStr2905     pub const fn name() -> &'static ::std::ffi::CStr {
2906         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_33\0") }
2907     }
2908     pub const SPEC_VERSION: u32 = 0u32;
2909 }
2910 #[derive(Clone)]
2911 pub struct AmdExtension33Fn {}
2912 unsafe impl Send for AmdExtension33Fn {}
2913 unsafe impl Sync for AmdExtension33Fn {}
2914 impl AmdExtension33Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2915     pub fn load<F>(mut _f: F) -> Self
2916     where
2917         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2918     {
2919         Self {}
2920     }
2921 }
2922 impl AmdDrawIndirectCountFn {
2923     #[inline]
name() -> &'static ::std::ffi::CStr2924     pub const fn name() -> &'static ::std::ffi::CStr {
2925         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_draw_indirect_count\0") }
2926     }
2927     pub const SPEC_VERSION: u32 = 2u32;
2928 }
2929 #[allow(non_camel_case_types)]
2930 pub type PFN_vkCmdDrawIndirectCount = unsafe extern "system" fn(
2931     command_buffer: CommandBuffer,
2932     buffer: Buffer,
2933     offset: DeviceSize,
2934     count_buffer: Buffer,
2935     count_buffer_offset: DeviceSize,
2936     max_draw_count: u32,
2937     stride: u32,
2938 );
2939 #[allow(non_camel_case_types)]
2940 pub type PFN_vkCmdDrawIndexedIndirectCount = unsafe extern "system" fn(
2941     command_buffer: CommandBuffer,
2942     buffer: Buffer,
2943     offset: DeviceSize,
2944     count_buffer: Buffer,
2945     count_buffer_offset: DeviceSize,
2946     max_draw_count: u32,
2947     stride: u32,
2948 );
2949 #[derive(Clone)]
2950 pub struct AmdDrawIndirectCountFn {
2951     pub cmd_draw_indirect_count_amd: PFN_vkCmdDrawIndirectCount,
2952     pub cmd_draw_indexed_indirect_count_amd: PFN_vkCmdDrawIndexedIndirectCount,
2953 }
2954 unsafe impl Send for AmdDrawIndirectCountFn {}
2955 unsafe impl Sync for AmdDrawIndirectCountFn {}
2956 impl AmdDrawIndirectCountFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2957     pub fn load<F>(mut _f: F) -> Self
2958     where
2959         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2960     {
2961         Self {
2962             cmd_draw_indirect_count_amd: unsafe {
2963                 unsafe extern "system" fn cmd_draw_indirect_count_amd(
2964                     _command_buffer: CommandBuffer,
2965                     _buffer: Buffer,
2966                     _offset: DeviceSize,
2967                     _count_buffer: Buffer,
2968                     _count_buffer_offset: DeviceSize,
2969                     _max_draw_count: u32,
2970                     _stride: u32,
2971                 ) {
2972                     panic!(concat!(
2973                         "Unable to load ",
2974                         stringify!(cmd_draw_indirect_count_amd)
2975                     ))
2976                 }
2977                 let cname =
2978                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndirectCountAMD\0");
2979                 let val = _f(cname);
2980                 if val.is_null() {
2981                     cmd_draw_indirect_count_amd
2982                 } else {
2983                     ::std::mem::transmute(val)
2984                 }
2985             },
2986             cmd_draw_indexed_indirect_count_amd: unsafe {
2987                 unsafe extern "system" fn cmd_draw_indexed_indirect_count_amd(
2988                     _command_buffer: CommandBuffer,
2989                     _buffer: Buffer,
2990                     _offset: DeviceSize,
2991                     _count_buffer: Buffer,
2992                     _count_buffer_offset: DeviceSize,
2993                     _max_draw_count: u32,
2994                     _stride: u32,
2995                 ) {
2996                     panic!(concat!(
2997                         "Unable to load ",
2998                         stringify!(cmd_draw_indexed_indirect_count_amd)
2999                     ))
3000                 }
3001                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
3002                     b"vkCmdDrawIndexedIndirectCountAMD\0",
3003                 );
3004                 let val = _f(cname);
3005                 if val.is_null() {
3006                     cmd_draw_indexed_indirect_count_amd
3007                 } else {
3008                     ::std::mem::transmute(val)
3009                 }
3010             },
3011         }
3012     }
3013 }
3014 impl AmdExtension35Fn {
3015     #[inline]
name() -> &'static ::std::ffi::CStr3016     pub const fn name() -> &'static ::std::ffi::CStr {
3017         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_35\0") }
3018     }
3019     pub const SPEC_VERSION: u32 = 0u32;
3020 }
3021 #[derive(Clone)]
3022 pub struct AmdExtension35Fn {}
3023 unsafe impl Send for AmdExtension35Fn {}
3024 unsafe impl Sync for AmdExtension35Fn {}
3025 impl AmdExtension35Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3026     pub fn load<F>(mut _f: F) -> Self
3027     where
3028         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3029     {
3030         Self {}
3031     }
3032 }
3033 impl AmdNegativeViewportHeightFn {
3034     #[inline]
name() -> &'static ::std::ffi::CStr3035     pub const fn name() -> &'static ::std::ffi::CStr {
3036         unsafe {
3037             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_negative_viewport_height\0")
3038         }
3039     }
3040     pub const SPEC_VERSION: u32 = 1u32;
3041 }
3042 #[derive(Clone)]
3043 pub struct AmdNegativeViewportHeightFn {}
3044 unsafe impl Send for AmdNegativeViewportHeightFn {}
3045 unsafe impl Sync for AmdNegativeViewportHeightFn {}
3046 impl AmdNegativeViewportHeightFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3047     pub fn load<F>(mut _f: F) -> Self
3048     where
3049         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3050     {
3051         Self {}
3052     }
3053 }
3054 impl AmdGpuShaderHalfFloatFn {
3055     #[inline]
name() -> &'static ::std::ffi::CStr3056     pub const fn name() -> &'static ::std::ffi::CStr {
3057         unsafe {
3058             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_gpu_shader_half_float\0")
3059         }
3060     }
3061     pub const SPEC_VERSION: u32 = 2u32;
3062 }
3063 #[derive(Clone)]
3064 pub struct AmdGpuShaderHalfFloatFn {}
3065 unsafe impl Send for AmdGpuShaderHalfFloatFn {}
3066 unsafe impl Sync for AmdGpuShaderHalfFloatFn {}
3067 impl AmdGpuShaderHalfFloatFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3068     pub fn load<F>(mut _f: F) -> Self
3069     where
3070         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3071     {
3072         Self {}
3073     }
3074 }
3075 impl AmdShaderBallotFn {
3076     #[inline]
name() -> &'static ::std::ffi::CStr3077     pub const fn name() -> &'static ::std::ffi::CStr {
3078         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_ballot\0") }
3079     }
3080     pub const SPEC_VERSION: u32 = 1u32;
3081 }
3082 #[derive(Clone)]
3083 pub struct AmdShaderBallotFn {}
3084 unsafe impl Send for AmdShaderBallotFn {}
3085 unsafe impl Sync for AmdShaderBallotFn {}
3086 impl AmdShaderBallotFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3087     pub fn load<F>(mut _f: F) -> Self
3088     where
3089         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3090     {
3091         Self {}
3092     }
3093 }
3094 impl ExtVideoEncodeH264Fn {
3095     #[inline]
name() -> &'static ::std::ffi::CStr3096     pub const fn name() -> &'static ::std::ffi::CStr {
3097         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_video_encode_h264\0") }
3098     }
3099     pub const SPEC_VERSION: u32 = 10u32;
3100 }
3101 #[derive(Clone)]
3102 pub struct ExtVideoEncodeH264Fn {}
3103 unsafe impl Send for ExtVideoEncodeH264Fn {}
3104 unsafe impl Sync for ExtVideoEncodeH264Fn {}
3105 impl ExtVideoEncodeH264Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3106     pub fn load<F>(mut _f: F) -> Self
3107     where
3108         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3109     {
3110         Self {}
3111     }
3112 }
3113 #[doc = "Generated from 'VK_EXT_video_encode_h264'"]
3114 impl StructureType {
3115     pub const VIDEO_ENCODE_H264_CAPABILITIES_EXT: Self = Self(1_000_038_000);
3116     pub const VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT: Self = Self(1_000_038_001);
3117     pub const VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT: Self = Self(1_000_038_002);
3118     pub const VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT: Self = Self(1_000_038_003);
3119     pub const VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT: Self = Self(1_000_038_004);
3120     pub const VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT: Self = Self(1_000_038_005);
3121     pub const VIDEO_ENCODE_H264_PROFILE_INFO_EXT: Self = Self(1_000_038_007);
3122     pub const VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT: Self = Self(1_000_038_008);
3123     pub const VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT: Self = Self(1_000_038_009);
3124 }
3125 #[doc = "Generated from 'VK_EXT_video_encode_h264'"]
3126 impl VideoCodecOperationFlagsKHR {
3127     pub const ENCODE_H264_EXT: Self = Self(0b1_0000_0000_0000_0000);
3128 }
3129 impl ExtVideoEncodeH265Fn {
3130     #[inline]
name() -> &'static ::std::ffi::CStr3131     pub const fn name() -> &'static ::std::ffi::CStr {
3132         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_video_encode_h265\0") }
3133     }
3134     pub const SPEC_VERSION: u32 = 10u32;
3135 }
3136 #[derive(Clone)]
3137 pub struct ExtVideoEncodeH265Fn {}
3138 unsafe impl Send for ExtVideoEncodeH265Fn {}
3139 unsafe impl Sync for ExtVideoEncodeH265Fn {}
3140 impl ExtVideoEncodeH265Fn {
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         Self {}
3146     }
3147 }
3148 #[doc = "Generated from 'VK_EXT_video_encode_h265'"]
3149 impl StructureType {
3150     pub const VIDEO_ENCODE_H265_CAPABILITIES_EXT: Self = Self(1_000_039_000);
3151     pub const VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT: Self = Self(1_000_039_001);
3152     pub const VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT: Self = Self(1_000_039_002);
3153     pub const VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT: Self = Self(1_000_039_003);
3154     pub const VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT: Self = Self(1_000_039_004);
3155     pub const VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT: Self = Self(1_000_039_005);
3156     pub const VIDEO_ENCODE_H265_PROFILE_INFO_EXT: Self = Self(1_000_039_007);
3157     pub const VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT: Self = Self(1_000_039_009);
3158     pub const VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT: Self = Self(1_000_039_010);
3159 }
3160 #[doc = "Generated from 'VK_EXT_video_encode_h265'"]
3161 impl VideoCodecOperationFlagsKHR {
3162     pub const ENCODE_H265_EXT: Self = Self(0b10_0000_0000_0000_0000);
3163 }
3164 impl KhrVideoDecodeH264Fn {
3165     #[inline]
name() -> &'static ::std::ffi::CStr3166     pub const fn name() -> &'static ::std::ffi::CStr {
3167         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_decode_h264\0") }
3168     }
3169     pub const SPEC_VERSION: u32 = 8u32;
3170 }
3171 #[derive(Clone)]
3172 pub struct KhrVideoDecodeH264Fn {}
3173 unsafe impl Send for KhrVideoDecodeH264Fn {}
3174 unsafe impl Sync for KhrVideoDecodeH264Fn {}
3175 impl KhrVideoDecodeH264Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3176     pub fn load<F>(mut _f: F) -> Self
3177     where
3178         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3179     {
3180         Self {}
3181     }
3182 }
3183 #[doc = "Generated from 'VK_KHR_video_decode_h264'"]
3184 impl StructureType {
3185     pub const VIDEO_DECODE_H264_CAPABILITIES_KHR: Self = Self(1_000_040_000);
3186     pub const VIDEO_DECODE_H264_PICTURE_INFO_KHR: Self = Self(1_000_040_001);
3187     pub const VIDEO_DECODE_H264_PROFILE_INFO_KHR: Self = Self(1_000_040_003);
3188     pub const VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR: Self = Self(1_000_040_004);
3189     pub const VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR: Self = Self(1_000_040_005);
3190     pub const VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR: Self = Self(1_000_040_006);
3191 }
3192 #[doc = "Generated from 'VK_KHR_video_decode_h264'"]
3193 impl VideoCodecOperationFlagsKHR {
3194     pub const DECODE_H264: Self = Self(0b1);
3195 }
3196 impl AmdTextureGatherBiasLodFn {
3197     #[inline]
name() -> &'static ::std::ffi::CStr3198     pub const fn name() -> &'static ::std::ffi::CStr {
3199         unsafe {
3200             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_texture_gather_bias_lod\0")
3201         }
3202     }
3203     pub const SPEC_VERSION: u32 = 1u32;
3204 }
3205 #[derive(Clone)]
3206 pub struct AmdTextureGatherBiasLodFn {}
3207 unsafe impl Send for AmdTextureGatherBiasLodFn {}
3208 unsafe impl Sync for AmdTextureGatherBiasLodFn {}
3209 impl AmdTextureGatherBiasLodFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3210     pub fn load<F>(mut _f: F) -> Self
3211     where
3212         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3213     {
3214         Self {}
3215     }
3216 }
3217 #[doc = "Generated from 'VK_AMD_texture_gather_bias_lod'"]
3218 impl StructureType {
3219     pub const TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD: Self = Self(1_000_041_000);
3220 }
3221 impl AmdShaderInfoFn {
3222     #[inline]
name() -> &'static ::std::ffi::CStr3223     pub const fn name() -> &'static ::std::ffi::CStr {
3224         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_info\0") }
3225     }
3226     pub const SPEC_VERSION: u32 = 1u32;
3227 }
3228 #[allow(non_camel_case_types)]
3229 pub type PFN_vkGetShaderInfoAMD = unsafe extern "system" fn(
3230     device: Device,
3231     pipeline: Pipeline,
3232     shader_stage: ShaderStageFlags,
3233     info_type: ShaderInfoTypeAMD,
3234     p_info_size: *mut usize,
3235     p_info: *mut c_void,
3236 ) -> Result;
3237 #[derive(Clone)]
3238 pub struct AmdShaderInfoFn {
3239     pub get_shader_info_amd: PFN_vkGetShaderInfoAMD,
3240 }
3241 unsafe impl Send for AmdShaderInfoFn {}
3242 unsafe impl Sync for AmdShaderInfoFn {}
3243 impl AmdShaderInfoFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3244     pub fn load<F>(mut _f: F) -> Self
3245     where
3246         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3247     {
3248         Self {
3249             get_shader_info_amd: unsafe {
3250                 unsafe extern "system" fn get_shader_info_amd(
3251                     _device: Device,
3252                     _pipeline: Pipeline,
3253                     _shader_stage: ShaderStageFlags,
3254                     _info_type: ShaderInfoTypeAMD,
3255                     _p_info_size: *mut usize,
3256                     _p_info: *mut c_void,
3257                 ) -> Result {
3258                     panic!(concat!("Unable to load ", stringify!(get_shader_info_amd)))
3259                 }
3260                 let cname =
3261                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetShaderInfoAMD\0");
3262                 let val = _f(cname);
3263                 if val.is_null() {
3264                     get_shader_info_amd
3265                 } else {
3266                     ::std::mem::transmute(val)
3267                 }
3268             },
3269         }
3270     }
3271 }
3272 impl AmdExtension44Fn {
3273     #[inline]
name() -> &'static ::std::ffi::CStr3274     pub const fn name() -> &'static ::std::ffi::CStr {
3275         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_44\0") }
3276     }
3277     pub const SPEC_VERSION: u32 = 0u32;
3278 }
3279 #[derive(Clone)]
3280 pub struct AmdExtension44Fn {}
3281 unsafe impl Send for AmdExtension44Fn {}
3282 unsafe impl Sync for AmdExtension44Fn {}
3283 impl AmdExtension44Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3284     pub fn load<F>(mut _f: F) -> Self
3285     where
3286         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3287     {
3288         Self {}
3289     }
3290 }
3291 impl KhrDynamicRenderingFn {
3292     #[inline]
name() -> &'static ::std::ffi::CStr3293     pub const fn name() -> &'static ::std::ffi::CStr {
3294         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_dynamic_rendering\0") }
3295     }
3296     pub const SPEC_VERSION: u32 = 1u32;
3297 }
3298 #[allow(non_camel_case_types)]
3299 pub type PFN_vkCmdBeginRendering = unsafe extern "system" fn(
3300     command_buffer: CommandBuffer,
3301     p_rendering_info: *const RenderingInfo,
3302 );
3303 #[allow(non_camel_case_types)]
3304 pub type PFN_vkCmdEndRendering = unsafe extern "system" fn(command_buffer: CommandBuffer);
3305 #[derive(Clone)]
3306 pub struct KhrDynamicRenderingFn {
3307     pub cmd_begin_rendering_khr: PFN_vkCmdBeginRendering,
3308     pub cmd_end_rendering_khr: PFN_vkCmdEndRendering,
3309 }
3310 unsafe impl Send for KhrDynamicRenderingFn {}
3311 unsafe impl Sync for KhrDynamicRenderingFn {}
3312 impl KhrDynamicRenderingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3313     pub fn load<F>(mut _f: F) -> Self
3314     where
3315         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3316     {
3317         Self {
3318             cmd_begin_rendering_khr: unsafe {
3319                 unsafe extern "system" fn cmd_begin_rendering_khr(
3320                     _command_buffer: CommandBuffer,
3321                     _p_rendering_info: *const RenderingInfo,
3322                 ) {
3323                     panic!(concat!(
3324                         "Unable to load ",
3325                         stringify!(cmd_begin_rendering_khr)
3326                     ))
3327                 }
3328                 let cname =
3329                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginRenderingKHR\0");
3330                 let val = _f(cname);
3331                 if val.is_null() {
3332                     cmd_begin_rendering_khr
3333                 } else {
3334                     ::std::mem::transmute(val)
3335                 }
3336             },
3337             cmd_end_rendering_khr: unsafe {
3338                 unsafe extern "system" fn cmd_end_rendering_khr(_command_buffer: CommandBuffer) {
3339                     panic!(concat!(
3340                         "Unable to load ",
3341                         stringify!(cmd_end_rendering_khr)
3342                     ))
3343                 }
3344                 let cname =
3345                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdEndRenderingKHR\0");
3346                 let val = _f(cname);
3347                 if val.is_null() {
3348                     cmd_end_rendering_khr
3349                 } else {
3350                     ::std::mem::transmute(val)
3351                 }
3352             },
3353         }
3354     }
3355 }
3356 #[doc = "Generated from 'VK_KHR_dynamic_rendering'"]
3357 impl AttachmentStoreOp {
3358     pub const NONE_KHR: Self = Self::NONE;
3359 }
3360 #[doc = "Generated from 'VK_KHR_dynamic_rendering'"]
3361 impl PipelineCreateFlags {
3362     pub const RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_KHR: Self =
3363         Self(0b10_0000_0000_0000_0000_0000);
3364     pub const RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT: Self =
3365         Self(0b100_0000_0000_0000_0000_0000);
3366 }
3367 #[doc = "Generated from 'VK_KHR_dynamic_rendering'"]
3368 impl StructureType {
3369     pub const RENDERING_INFO_KHR: Self = Self::RENDERING_INFO;
3370     pub const RENDERING_ATTACHMENT_INFO_KHR: Self = Self::RENDERING_ATTACHMENT_INFO;
3371     pub const PIPELINE_RENDERING_CREATE_INFO_KHR: Self = Self::PIPELINE_RENDERING_CREATE_INFO;
3372     pub const PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR: Self =
3373         Self::PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES;
3374     pub const COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR: Self =
3375         Self::COMMAND_BUFFER_INHERITANCE_RENDERING_INFO;
3376     pub const RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: Self = Self(1_000_044_006);
3377     pub const RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: Self = Self(1_000_044_007);
3378     pub const ATTACHMENT_SAMPLE_COUNT_INFO_AMD: Self = Self(1_000_044_008);
3379     pub const ATTACHMENT_SAMPLE_COUNT_INFO_NV: Self = Self::ATTACHMENT_SAMPLE_COUNT_INFO_AMD;
3380     pub const MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: Self = Self(1_000_044_009);
3381 }
3382 impl AmdExtension46Fn {
3383     #[inline]
name() -> &'static ::std::ffi::CStr3384     pub const fn name() -> &'static ::std::ffi::CStr {
3385         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_46\0") }
3386     }
3387     pub const SPEC_VERSION: u32 = 0u32;
3388 }
3389 #[derive(Clone)]
3390 pub struct AmdExtension46Fn {}
3391 unsafe impl Send for AmdExtension46Fn {}
3392 unsafe impl Sync for AmdExtension46Fn {}
3393 impl AmdExtension46Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3394     pub fn load<F>(mut _f: F) -> Self
3395     where
3396         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3397     {
3398         Self {}
3399     }
3400 }
3401 impl AmdShaderImageLoadStoreLodFn {
3402     #[inline]
name() -> &'static ::std::ffi::CStr3403     pub const fn name() -> &'static ::std::ffi::CStr {
3404         unsafe {
3405             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_image_load_store_lod\0")
3406         }
3407     }
3408     pub const SPEC_VERSION: u32 = 1u32;
3409 }
3410 #[derive(Clone)]
3411 pub struct AmdShaderImageLoadStoreLodFn {}
3412 unsafe impl Send for AmdShaderImageLoadStoreLodFn {}
3413 unsafe impl Sync for AmdShaderImageLoadStoreLodFn {}
3414 impl AmdShaderImageLoadStoreLodFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3415     pub fn load<F>(mut _f: F) -> Self
3416     where
3417         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3418     {
3419         Self {}
3420     }
3421 }
3422 impl NvxExtension48Fn {
3423     #[inline]
name() -> &'static ::std::ffi::CStr3424     pub const fn name() -> &'static ::std::ffi::CStr {
3425         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NVX_extension_48\0") }
3426     }
3427     pub const SPEC_VERSION: u32 = 0u32;
3428 }
3429 #[derive(Clone)]
3430 pub struct NvxExtension48Fn {}
3431 unsafe impl Send for NvxExtension48Fn {}
3432 unsafe impl Sync for NvxExtension48Fn {}
3433 impl NvxExtension48Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3434     pub fn load<F>(mut _f: F) -> Self
3435     where
3436         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3437     {
3438         Self {}
3439     }
3440 }
3441 impl GoogleExtension49Fn {
3442     #[inline]
name() -> &'static ::std::ffi::CStr3443     pub const fn name() -> &'static ::std::ffi::CStr {
3444         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_extension_49\0") }
3445     }
3446     pub const SPEC_VERSION: u32 = 0u32;
3447 }
3448 #[derive(Clone)]
3449 pub struct GoogleExtension49Fn {}
3450 unsafe impl Send for GoogleExtension49Fn {}
3451 unsafe impl Sync for GoogleExtension49Fn {}
3452 impl GoogleExtension49Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3453     pub fn load<F>(mut _f: F) -> Self
3454     where
3455         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3456     {
3457         Self {}
3458     }
3459 }
3460 impl GgpStreamDescriptorSurfaceFn {
3461     #[inline]
name() -> &'static ::std::ffi::CStr3462     pub const fn name() -> &'static ::std::ffi::CStr {
3463         unsafe {
3464             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GGP_stream_descriptor_surface\0")
3465         }
3466     }
3467     pub const SPEC_VERSION: u32 = 1u32;
3468 }
3469 #[allow(non_camel_case_types)]
3470 pub type PFN_vkCreateStreamDescriptorSurfaceGGP = unsafe extern "system" fn(
3471     instance: Instance,
3472     p_create_info: *const StreamDescriptorSurfaceCreateInfoGGP,
3473     p_allocator: *const AllocationCallbacks,
3474     p_surface: *mut SurfaceKHR,
3475 ) -> Result;
3476 #[derive(Clone)]
3477 pub struct GgpStreamDescriptorSurfaceFn {
3478     pub create_stream_descriptor_surface_ggp: PFN_vkCreateStreamDescriptorSurfaceGGP,
3479 }
3480 unsafe impl Send for GgpStreamDescriptorSurfaceFn {}
3481 unsafe impl Sync for GgpStreamDescriptorSurfaceFn {}
3482 impl GgpStreamDescriptorSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3483     pub fn load<F>(mut _f: F) -> Self
3484     where
3485         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3486     {
3487         Self {
3488             create_stream_descriptor_surface_ggp: unsafe {
3489                 unsafe extern "system" fn create_stream_descriptor_surface_ggp(
3490                     _instance: Instance,
3491                     _p_create_info: *const StreamDescriptorSurfaceCreateInfoGGP,
3492                     _p_allocator: *const AllocationCallbacks,
3493                     _p_surface: *mut SurfaceKHR,
3494                 ) -> Result {
3495                     panic!(concat!(
3496                         "Unable to load ",
3497                         stringify!(create_stream_descriptor_surface_ggp)
3498                     ))
3499                 }
3500                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
3501                     b"vkCreateStreamDescriptorSurfaceGGP\0",
3502                 );
3503                 let val = _f(cname);
3504                 if val.is_null() {
3505                     create_stream_descriptor_surface_ggp
3506                 } else {
3507                     ::std::mem::transmute(val)
3508                 }
3509             },
3510         }
3511     }
3512 }
3513 #[doc = "Generated from 'VK_GGP_stream_descriptor_surface'"]
3514 impl StructureType {
3515     pub const STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP: Self = Self(1_000_049_000);
3516 }
3517 impl NvCornerSampledImageFn {
3518     #[inline]
name() -> &'static ::std::ffi::CStr3519     pub const fn name() -> &'static ::std::ffi::CStr {
3520         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_corner_sampled_image\0") }
3521     }
3522     pub const SPEC_VERSION: u32 = 2u32;
3523 }
3524 #[derive(Clone)]
3525 pub struct NvCornerSampledImageFn {}
3526 unsafe impl Send for NvCornerSampledImageFn {}
3527 unsafe impl Sync for NvCornerSampledImageFn {}
3528 impl NvCornerSampledImageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3529     pub fn load<F>(mut _f: F) -> Self
3530     where
3531         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3532     {
3533         Self {}
3534     }
3535 }
3536 #[doc = "Generated from 'VK_NV_corner_sampled_image'"]
3537 impl ImageCreateFlags {
3538     pub const CORNER_SAMPLED_NV: Self = Self(0b10_0000_0000_0000);
3539 }
3540 #[doc = "Generated from 'VK_NV_corner_sampled_image'"]
3541 impl StructureType {
3542     pub const PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV: Self = Self(1_000_050_000);
3543 }
3544 impl NvExtension53Fn {
3545     #[inline]
name() -> &'static ::std::ffi::CStr3546     pub const fn name() -> &'static ::std::ffi::CStr {
3547         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_53\0") }
3548     }
3549     pub const SPEC_VERSION: u32 = 0u32;
3550 }
3551 #[derive(Clone)]
3552 pub struct NvExtension53Fn {}
3553 unsafe impl Send for NvExtension53Fn {}
3554 unsafe impl Sync for NvExtension53Fn {}
3555 impl NvExtension53Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3556     pub fn load<F>(mut _f: F) -> Self
3557     where
3558         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3559     {
3560         Self {}
3561     }
3562 }
3563 impl KhrMultiviewFn {
3564     #[inline]
name() -> &'static ::std::ffi::CStr3565     pub const fn name() -> &'static ::std::ffi::CStr {
3566         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_multiview\0") }
3567     }
3568     pub const SPEC_VERSION: u32 = 1u32;
3569 }
3570 #[derive(Clone)]
3571 pub struct KhrMultiviewFn {}
3572 unsafe impl Send for KhrMultiviewFn {}
3573 unsafe impl Sync for KhrMultiviewFn {}
3574 impl KhrMultiviewFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3575     pub fn load<F>(mut _f: F) -> Self
3576     where
3577         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3578     {
3579         Self {}
3580     }
3581 }
3582 #[doc = "Generated from 'VK_KHR_multiview'"]
3583 impl DependencyFlags {
3584     pub const VIEW_LOCAL_KHR: Self = Self::VIEW_LOCAL;
3585 }
3586 #[doc = "Generated from 'VK_KHR_multiview'"]
3587 impl StructureType {
3588     pub const RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR: Self = Self::RENDER_PASS_MULTIVIEW_CREATE_INFO;
3589     pub const PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR: Self =
3590         Self::PHYSICAL_DEVICE_MULTIVIEW_FEATURES;
3591     pub const PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR: Self =
3592         Self::PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES;
3593 }
3594 impl ImgFormatPvrtcFn {
3595     #[inline]
name() -> &'static ::std::ffi::CStr3596     pub const fn name() -> &'static ::std::ffi::CStr {
3597         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_IMG_format_pvrtc\0") }
3598     }
3599     pub const SPEC_VERSION: u32 = 1u32;
3600 }
3601 #[derive(Clone)]
3602 pub struct ImgFormatPvrtcFn {}
3603 unsafe impl Send for ImgFormatPvrtcFn {}
3604 unsafe impl Sync for ImgFormatPvrtcFn {}
3605 impl ImgFormatPvrtcFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3606     pub fn load<F>(mut _f: F) -> Self
3607     where
3608         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3609     {
3610         Self {}
3611     }
3612 }
3613 #[doc = "Generated from 'VK_IMG_format_pvrtc'"]
3614 impl Format {
3615     pub const PVRTC1_2BPP_UNORM_BLOCK_IMG: Self = Self(1_000_054_000);
3616     pub const PVRTC1_4BPP_UNORM_BLOCK_IMG: Self = Self(1_000_054_001);
3617     pub const PVRTC2_2BPP_UNORM_BLOCK_IMG: Self = Self(1_000_054_002);
3618     pub const PVRTC2_4BPP_UNORM_BLOCK_IMG: Self = Self(1_000_054_003);
3619     pub const PVRTC1_2BPP_SRGB_BLOCK_IMG: Self = Self(1_000_054_004);
3620     pub const PVRTC1_4BPP_SRGB_BLOCK_IMG: Self = Self(1_000_054_005);
3621     pub const PVRTC2_2BPP_SRGB_BLOCK_IMG: Self = Self(1_000_054_006);
3622     pub const PVRTC2_4BPP_SRGB_BLOCK_IMG: Self = Self(1_000_054_007);
3623 }
3624 impl NvExternalMemoryCapabilitiesFn {
3625     #[inline]
name() -> &'static ::std::ffi::CStr3626     pub const fn name() -> &'static ::std::ffi::CStr {
3627         unsafe {
3628             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_external_memory_capabilities\0")
3629         }
3630     }
3631     pub const SPEC_VERSION: u32 = 1u32;
3632 }
3633 #[allow(non_camel_case_types)]
3634 pub type PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV =
3635     unsafe extern "system" fn(
3636         physical_device: PhysicalDevice,
3637         format: Format,
3638         ty: ImageType,
3639         tiling: ImageTiling,
3640         usage: ImageUsageFlags,
3641         flags: ImageCreateFlags,
3642         external_handle_type: ExternalMemoryHandleTypeFlagsNV,
3643         p_external_image_format_properties: *mut ExternalImageFormatPropertiesNV,
3644     ) -> Result;
3645 #[derive(Clone)]
3646 pub struct NvExternalMemoryCapabilitiesFn {
3647     pub get_physical_device_external_image_format_properties_nv:
3648         PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV,
3649 }
3650 unsafe impl Send for NvExternalMemoryCapabilitiesFn {}
3651 unsafe impl Sync for NvExternalMemoryCapabilitiesFn {}
3652 impl NvExternalMemoryCapabilitiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3653     pub fn load<F>(mut _f: F) -> Self
3654     where
3655         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3656     {
3657         Self {
3658             get_physical_device_external_image_format_properties_nv: unsafe {
3659                 unsafe extern "system" fn get_physical_device_external_image_format_properties_nv(
3660                     _physical_device: PhysicalDevice,
3661                     _format: Format,
3662                     _ty: ImageType,
3663                     _tiling: ImageTiling,
3664                     _usage: ImageUsageFlags,
3665                     _flags: ImageCreateFlags,
3666                     _external_handle_type: ExternalMemoryHandleTypeFlagsNV,
3667                     _p_external_image_format_properties: *mut ExternalImageFormatPropertiesNV,
3668                 ) -> Result {
3669                     panic!(concat!(
3670                         "Unable to load ",
3671                         stringify!(get_physical_device_external_image_format_properties_nv)
3672                     ))
3673                 }
3674                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
3675                     b"vkGetPhysicalDeviceExternalImageFormatPropertiesNV\0",
3676                 );
3677                 let val = _f(cname);
3678                 if val.is_null() {
3679                     get_physical_device_external_image_format_properties_nv
3680                 } else {
3681                     ::std::mem::transmute(val)
3682                 }
3683             },
3684         }
3685     }
3686 }
3687 impl NvExternalMemoryFn {
3688     #[inline]
name() -> &'static ::std::ffi::CStr3689     pub const fn name() -> &'static ::std::ffi::CStr {
3690         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_external_memory\0") }
3691     }
3692     pub const SPEC_VERSION: u32 = 1u32;
3693 }
3694 #[derive(Clone)]
3695 pub struct NvExternalMemoryFn {}
3696 unsafe impl Send for NvExternalMemoryFn {}
3697 unsafe impl Sync for NvExternalMemoryFn {}
3698 impl NvExternalMemoryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3699     pub fn load<F>(mut _f: F) -> Self
3700     where
3701         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3702     {
3703         Self {}
3704     }
3705 }
3706 #[doc = "Generated from 'VK_NV_external_memory'"]
3707 impl StructureType {
3708     pub const EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV: Self = Self(1_000_056_000);
3709     pub const EXPORT_MEMORY_ALLOCATE_INFO_NV: Self = Self(1_000_056_001);
3710 }
3711 impl NvExternalMemoryWin32Fn {
3712     #[inline]
name() -> &'static ::std::ffi::CStr3713     pub const fn name() -> &'static ::std::ffi::CStr {
3714         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_external_memory_win32\0") }
3715     }
3716     pub const SPEC_VERSION: u32 = 1u32;
3717 }
3718 #[allow(non_camel_case_types)]
3719 pub type PFN_vkGetMemoryWin32HandleNV = unsafe extern "system" fn(
3720     device: Device,
3721     memory: DeviceMemory,
3722     handle_type: ExternalMemoryHandleTypeFlagsNV,
3723     p_handle: *mut HANDLE,
3724 ) -> Result;
3725 #[derive(Clone)]
3726 pub struct NvExternalMemoryWin32Fn {
3727     pub get_memory_win32_handle_nv: PFN_vkGetMemoryWin32HandleNV,
3728 }
3729 unsafe impl Send for NvExternalMemoryWin32Fn {}
3730 unsafe impl Sync for NvExternalMemoryWin32Fn {}
3731 impl NvExternalMemoryWin32Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3732     pub fn load<F>(mut _f: F) -> Self
3733     where
3734         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3735     {
3736         Self {
3737             get_memory_win32_handle_nv: unsafe {
3738                 unsafe extern "system" fn get_memory_win32_handle_nv(
3739                     _device: Device,
3740                     _memory: DeviceMemory,
3741                     _handle_type: ExternalMemoryHandleTypeFlagsNV,
3742                     _p_handle: *mut HANDLE,
3743                 ) -> Result {
3744                     panic!(concat!(
3745                         "Unable to load ",
3746                         stringify!(get_memory_win32_handle_nv)
3747                     ))
3748                 }
3749                 let cname =
3750                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryWin32HandleNV\0");
3751                 let val = _f(cname);
3752                 if val.is_null() {
3753                     get_memory_win32_handle_nv
3754                 } else {
3755                     ::std::mem::transmute(val)
3756                 }
3757             },
3758         }
3759     }
3760 }
3761 #[doc = "Generated from 'VK_NV_external_memory_win32'"]
3762 impl StructureType {
3763     pub const IMPORT_MEMORY_WIN32_HANDLE_INFO_NV: Self = Self(1_000_057_000);
3764     pub const EXPORT_MEMORY_WIN32_HANDLE_INFO_NV: Self = Self(1_000_057_001);
3765 }
3766 impl NvWin32KeyedMutexFn {
3767     #[inline]
name() -> &'static ::std::ffi::CStr3768     pub const fn name() -> &'static ::std::ffi::CStr {
3769         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_win32_keyed_mutex\0") }
3770     }
3771     pub const SPEC_VERSION: u32 = 2u32;
3772 }
3773 #[derive(Clone)]
3774 pub struct NvWin32KeyedMutexFn {}
3775 unsafe impl Send for NvWin32KeyedMutexFn {}
3776 unsafe impl Sync for NvWin32KeyedMutexFn {}
3777 impl NvWin32KeyedMutexFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3778     pub fn load<F>(mut _f: F) -> Self
3779     where
3780         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3781     {
3782         Self {}
3783     }
3784 }
3785 #[doc = "Generated from 'VK_NV_win32_keyed_mutex'"]
3786 impl StructureType {
3787     pub const WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV: Self = Self(1_000_058_000);
3788 }
3789 impl KhrGetPhysicalDeviceProperties2Fn {
3790     #[inline]
name() -> &'static ::std::ffi::CStr3791     pub const fn name() -> &'static ::std::ffi::CStr {
3792         unsafe {
3793             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
3794                 b"VK_KHR_get_physical_device_properties2\0",
3795             )
3796         }
3797     }
3798     pub const SPEC_VERSION: u32 = 2u32;
3799 }
3800 #[allow(non_camel_case_types)]
3801 pub type PFN_vkGetPhysicalDeviceFeatures2 = unsafe extern "system" fn(
3802     physical_device: PhysicalDevice,
3803     p_features: *mut PhysicalDeviceFeatures2,
3804 );
3805 #[allow(non_camel_case_types)]
3806 pub type PFN_vkGetPhysicalDeviceProperties2 = unsafe extern "system" fn(
3807     physical_device: PhysicalDevice,
3808     p_properties: *mut PhysicalDeviceProperties2,
3809 );
3810 #[allow(non_camel_case_types)]
3811 pub type PFN_vkGetPhysicalDeviceFormatProperties2 = unsafe extern "system" fn(
3812     physical_device: PhysicalDevice,
3813     format: Format,
3814     p_format_properties: *mut FormatProperties2,
3815 );
3816 #[allow(non_camel_case_types)]
3817 pub type PFN_vkGetPhysicalDeviceImageFormatProperties2 = unsafe extern "system" fn(
3818     physical_device: PhysicalDevice,
3819     p_image_format_info: *const PhysicalDeviceImageFormatInfo2,
3820     p_image_format_properties: *mut ImageFormatProperties2,
3821 ) -> Result;
3822 #[allow(non_camel_case_types)]
3823 pub type PFN_vkGetPhysicalDeviceQueueFamilyProperties2 = unsafe extern "system" fn(
3824     physical_device: PhysicalDevice,
3825     p_queue_family_property_count: *mut u32,
3826     p_queue_family_properties: *mut QueueFamilyProperties2,
3827 );
3828 #[allow(non_camel_case_types)]
3829 pub type PFN_vkGetPhysicalDeviceMemoryProperties2 = unsafe extern "system" fn(
3830     physical_device: PhysicalDevice,
3831     p_memory_properties: *mut PhysicalDeviceMemoryProperties2,
3832 );
3833 #[allow(non_camel_case_types)]
3834 pub type PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 = unsafe extern "system" fn(
3835     physical_device: PhysicalDevice,
3836     p_format_info: *const PhysicalDeviceSparseImageFormatInfo2,
3837     p_property_count: *mut u32,
3838     p_properties: *mut SparseImageFormatProperties2,
3839 );
3840 #[derive(Clone)]
3841 pub struct KhrGetPhysicalDeviceProperties2Fn {
3842     pub get_physical_device_features2_khr: PFN_vkGetPhysicalDeviceFeatures2,
3843     pub get_physical_device_properties2_khr: PFN_vkGetPhysicalDeviceProperties2,
3844     pub get_physical_device_format_properties2_khr: PFN_vkGetPhysicalDeviceFormatProperties2,
3845     pub get_physical_device_image_format_properties2_khr:
3846         PFN_vkGetPhysicalDeviceImageFormatProperties2,
3847     pub get_physical_device_queue_family_properties2_khr:
3848         PFN_vkGetPhysicalDeviceQueueFamilyProperties2,
3849     pub get_physical_device_memory_properties2_khr: PFN_vkGetPhysicalDeviceMemoryProperties2,
3850     pub get_physical_device_sparse_image_format_properties2_khr:
3851         PFN_vkGetPhysicalDeviceSparseImageFormatProperties2,
3852 }
3853 unsafe impl Send for KhrGetPhysicalDeviceProperties2Fn {}
3854 unsafe impl Sync for KhrGetPhysicalDeviceProperties2Fn {}
3855 impl KhrGetPhysicalDeviceProperties2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3856     pub fn load<F>(mut _f: F) -> Self
3857     where
3858         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3859     {
3860         Self {
3861             get_physical_device_features2_khr: unsafe {
3862                 unsafe extern "system" fn get_physical_device_features2_khr(
3863                     _physical_device: PhysicalDevice,
3864                     _p_features: *mut PhysicalDeviceFeatures2,
3865                 ) {
3866                     panic!(concat!(
3867                         "Unable to load ",
3868                         stringify!(get_physical_device_features2_khr)
3869                     ))
3870                 }
3871                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
3872                     b"vkGetPhysicalDeviceFeatures2KHR\0",
3873                 );
3874                 let val = _f(cname);
3875                 if val.is_null() {
3876                     get_physical_device_features2_khr
3877                 } else {
3878                     ::std::mem::transmute(val)
3879                 }
3880             },
3881             get_physical_device_properties2_khr: unsafe {
3882                 unsafe extern "system" fn get_physical_device_properties2_khr(
3883                     _physical_device: PhysicalDevice,
3884                     _p_properties: *mut PhysicalDeviceProperties2,
3885                 ) {
3886                     panic!(concat!(
3887                         "Unable to load ",
3888                         stringify!(get_physical_device_properties2_khr)
3889                     ))
3890                 }
3891                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
3892                     b"vkGetPhysicalDeviceProperties2KHR\0",
3893                 );
3894                 let val = _f(cname);
3895                 if val.is_null() {
3896                     get_physical_device_properties2_khr
3897                 } else {
3898                     ::std::mem::transmute(val)
3899                 }
3900             },
3901             get_physical_device_format_properties2_khr: unsafe {
3902                 unsafe extern "system" fn get_physical_device_format_properties2_khr(
3903                     _physical_device: PhysicalDevice,
3904                     _format: Format,
3905                     _p_format_properties: *mut FormatProperties2,
3906                 ) {
3907                     panic!(concat!(
3908                         "Unable to load ",
3909                         stringify!(get_physical_device_format_properties2_khr)
3910                     ))
3911                 }
3912                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
3913                     b"vkGetPhysicalDeviceFormatProperties2KHR\0",
3914                 );
3915                 let val = _f(cname);
3916                 if val.is_null() {
3917                     get_physical_device_format_properties2_khr
3918                 } else {
3919                     ::std::mem::transmute(val)
3920                 }
3921             },
3922             get_physical_device_image_format_properties2_khr: unsafe {
3923                 unsafe extern "system" fn get_physical_device_image_format_properties2_khr(
3924                     _physical_device: PhysicalDevice,
3925                     _p_image_format_info: *const PhysicalDeviceImageFormatInfo2,
3926                     _p_image_format_properties: *mut ImageFormatProperties2,
3927                 ) -> Result {
3928                     panic!(concat!(
3929                         "Unable to load ",
3930                         stringify!(get_physical_device_image_format_properties2_khr)
3931                     ))
3932                 }
3933                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
3934                     b"vkGetPhysicalDeviceImageFormatProperties2KHR\0",
3935                 );
3936                 let val = _f(cname);
3937                 if val.is_null() {
3938                     get_physical_device_image_format_properties2_khr
3939                 } else {
3940                     ::std::mem::transmute(val)
3941                 }
3942             },
3943             get_physical_device_queue_family_properties2_khr: unsafe {
3944                 unsafe extern "system" fn get_physical_device_queue_family_properties2_khr(
3945                     _physical_device: PhysicalDevice,
3946                     _p_queue_family_property_count: *mut u32,
3947                     _p_queue_family_properties: *mut QueueFamilyProperties2,
3948                 ) {
3949                     panic!(concat!(
3950                         "Unable to load ",
3951                         stringify!(get_physical_device_queue_family_properties2_khr)
3952                     ))
3953                 }
3954                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
3955                     b"vkGetPhysicalDeviceQueueFamilyProperties2KHR\0",
3956                 );
3957                 let val = _f(cname);
3958                 if val.is_null() {
3959                     get_physical_device_queue_family_properties2_khr
3960                 } else {
3961                     ::std::mem::transmute(val)
3962                 }
3963             },
3964             get_physical_device_memory_properties2_khr: unsafe {
3965                 unsafe extern "system" fn get_physical_device_memory_properties2_khr(
3966                     _physical_device: PhysicalDevice,
3967                     _p_memory_properties: *mut PhysicalDeviceMemoryProperties2,
3968                 ) {
3969                     panic!(concat!(
3970                         "Unable to load ",
3971                         stringify!(get_physical_device_memory_properties2_khr)
3972                     ))
3973                 }
3974                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
3975                     b"vkGetPhysicalDeviceMemoryProperties2KHR\0",
3976                 );
3977                 let val = _f(cname);
3978                 if val.is_null() {
3979                     get_physical_device_memory_properties2_khr
3980                 } else {
3981                     ::std::mem::transmute(val)
3982                 }
3983             },
3984             get_physical_device_sparse_image_format_properties2_khr: unsafe {
3985                 unsafe extern "system" fn get_physical_device_sparse_image_format_properties2_khr(
3986                     _physical_device: PhysicalDevice,
3987                     _p_format_info: *const PhysicalDeviceSparseImageFormatInfo2,
3988                     _p_property_count: *mut u32,
3989                     _p_properties: *mut SparseImageFormatProperties2,
3990                 ) {
3991                     panic!(concat!(
3992                         "Unable to load ",
3993                         stringify!(get_physical_device_sparse_image_format_properties2_khr)
3994                     ))
3995                 }
3996                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
3997                     b"vkGetPhysicalDeviceSparseImageFormatProperties2KHR\0",
3998                 );
3999                 let val = _f(cname);
4000                 if val.is_null() {
4001                     get_physical_device_sparse_image_format_properties2_khr
4002                 } else {
4003                     ::std::mem::transmute(val)
4004                 }
4005             },
4006         }
4007     }
4008 }
4009 #[doc = "Generated from 'VK_KHR_get_physical_device_properties2'"]
4010 impl StructureType {
4011     pub const PHYSICAL_DEVICE_FEATURES_2_KHR: Self = Self::PHYSICAL_DEVICE_FEATURES_2;
4012     pub const PHYSICAL_DEVICE_PROPERTIES_2_KHR: Self = Self::PHYSICAL_DEVICE_PROPERTIES_2;
4013     pub const FORMAT_PROPERTIES_2_KHR: Self = Self::FORMAT_PROPERTIES_2;
4014     pub const IMAGE_FORMAT_PROPERTIES_2_KHR: Self = Self::IMAGE_FORMAT_PROPERTIES_2;
4015     pub const PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR: Self =
4016         Self::PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2;
4017     pub const QUEUE_FAMILY_PROPERTIES_2_KHR: Self = Self::QUEUE_FAMILY_PROPERTIES_2;
4018     pub const PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR: Self =
4019         Self::PHYSICAL_DEVICE_MEMORY_PROPERTIES_2;
4020     pub const SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR: Self = Self::SPARSE_IMAGE_FORMAT_PROPERTIES_2;
4021     pub const PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR: Self =
4022         Self::PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2;
4023 }
4024 impl KhrDeviceGroupFn {
4025     #[inline]
name() -> &'static ::std::ffi::CStr4026     pub const fn name() -> &'static ::std::ffi::CStr {
4027         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_device_group\0") }
4028     }
4029     pub const SPEC_VERSION: u32 = 4u32;
4030 }
4031 #[allow(non_camel_case_types)]
4032 pub type PFN_vkGetDeviceGroupPeerMemoryFeatures = unsafe extern "system" fn(
4033     device: Device,
4034     heap_index: u32,
4035     local_device_index: u32,
4036     remote_device_index: u32,
4037     p_peer_memory_features: *mut PeerMemoryFeatureFlags,
4038 );
4039 #[allow(non_camel_case_types)]
4040 pub type PFN_vkCmdSetDeviceMask =
4041     unsafe extern "system" fn(command_buffer: CommandBuffer, device_mask: u32);
4042 #[allow(non_camel_case_types)]
4043 pub type PFN_vkCmdDispatchBase = unsafe extern "system" fn(
4044     command_buffer: CommandBuffer,
4045     base_group_x: u32,
4046     base_group_y: u32,
4047     base_group_z: u32,
4048     group_count_x: u32,
4049     group_count_y: u32,
4050     group_count_z: u32,
4051 );
4052 #[derive(Clone)]
4053 pub struct KhrDeviceGroupFn {
4054     pub get_device_group_peer_memory_features_khr: PFN_vkGetDeviceGroupPeerMemoryFeatures,
4055     pub cmd_set_device_mask_khr: PFN_vkCmdSetDeviceMask,
4056     pub cmd_dispatch_base_khr: PFN_vkCmdDispatchBase,
4057     pub get_device_group_present_capabilities_khr:
4058         crate::vk::PFN_vkGetDeviceGroupPresentCapabilitiesKHR,
4059     pub get_device_group_surface_present_modes_khr:
4060         crate::vk::PFN_vkGetDeviceGroupSurfacePresentModesKHR,
4061     pub get_physical_device_present_rectangles_khr:
4062         crate::vk::PFN_vkGetPhysicalDevicePresentRectanglesKHR,
4063     pub acquire_next_image2_khr: crate::vk::PFN_vkAcquireNextImage2KHR,
4064 }
4065 unsafe impl Send for KhrDeviceGroupFn {}
4066 unsafe impl Sync for KhrDeviceGroupFn {}
4067 impl KhrDeviceGroupFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4068     pub fn load<F>(mut _f: F) -> Self
4069     where
4070         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4071     {
4072         Self {
4073             get_device_group_peer_memory_features_khr: unsafe {
4074                 unsafe extern "system" fn get_device_group_peer_memory_features_khr(
4075                     _device: Device,
4076                     _heap_index: u32,
4077                     _local_device_index: u32,
4078                     _remote_device_index: u32,
4079                     _p_peer_memory_features: *mut PeerMemoryFeatureFlags,
4080                 ) {
4081                     panic!(concat!(
4082                         "Unable to load ",
4083                         stringify!(get_device_group_peer_memory_features_khr)
4084                     ))
4085                 }
4086                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4087                     b"vkGetDeviceGroupPeerMemoryFeaturesKHR\0",
4088                 );
4089                 let val = _f(cname);
4090                 if val.is_null() {
4091                     get_device_group_peer_memory_features_khr
4092                 } else {
4093                     ::std::mem::transmute(val)
4094                 }
4095             },
4096             cmd_set_device_mask_khr: unsafe {
4097                 unsafe extern "system" fn cmd_set_device_mask_khr(
4098                     _command_buffer: CommandBuffer,
4099                     _device_mask: u32,
4100                 ) {
4101                     panic!(concat!(
4102                         "Unable to load ",
4103                         stringify!(cmd_set_device_mask_khr)
4104                     ))
4105                 }
4106                 let cname =
4107                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDeviceMaskKHR\0");
4108                 let val = _f(cname);
4109                 if val.is_null() {
4110                     cmd_set_device_mask_khr
4111                 } else {
4112                     ::std::mem::transmute(val)
4113                 }
4114             },
4115             cmd_dispatch_base_khr: unsafe {
4116                 unsafe extern "system" fn cmd_dispatch_base_khr(
4117                     _command_buffer: CommandBuffer,
4118                     _base_group_x: u32,
4119                     _base_group_y: u32,
4120                     _base_group_z: u32,
4121                     _group_count_x: u32,
4122                     _group_count_y: u32,
4123                     _group_count_z: u32,
4124                 ) {
4125                     panic!(concat!(
4126                         "Unable to load ",
4127                         stringify!(cmd_dispatch_base_khr)
4128                     ))
4129                 }
4130                 let cname =
4131                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDispatchBaseKHR\0");
4132                 let val = _f(cname);
4133                 if val.is_null() {
4134                     cmd_dispatch_base_khr
4135                 } else {
4136                     ::std::mem::transmute(val)
4137                 }
4138             },
4139             get_device_group_present_capabilities_khr: unsafe {
4140                 unsafe extern "system" fn get_device_group_present_capabilities_khr(
4141                     _device: Device,
4142                     _p_device_group_present_capabilities: *mut DeviceGroupPresentCapabilitiesKHR,
4143                 ) -> Result {
4144                     panic!(concat!(
4145                         "Unable to load ",
4146                         stringify!(get_device_group_present_capabilities_khr)
4147                     ))
4148                 }
4149                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4150                     b"vkGetDeviceGroupPresentCapabilitiesKHR\0",
4151                 );
4152                 let val = _f(cname);
4153                 if val.is_null() {
4154                     get_device_group_present_capabilities_khr
4155                 } else {
4156                     ::std::mem::transmute(val)
4157                 }
4158             },
4159             get_device_group_surface_present_modes_khr: unsafe {
4160                 unsafe extern "system" fn get_device_group_surface_present_modes_khr(
4161                     _device: Device,
4162                     _surface: SurfaceKHR,
4163                     _p_modes: *mut DeviceGroupPresentModeFlagsKHR,
4164                 ) -> Result {
4165                     panic!(concat!(
4166                         "Unable to load ",
4167                         stringify!(get_device_group_surface_present_modes_khr)
4168                     ))
4169                 }
4170                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4171                     b"vkGetDeviceGroupSurfacePresentModesKHR\0",
4172                 );
4173                 let val = _f(cname);
4174                 if val.is_null() {
4175                     get_device_group_surface_present_modes_khr
4176                 } else {
4177                     ::std::mem::transmute(val)
4178                 }
4179             },
4180             get_physical_device_present_rectangles_khr: unsafe {
4181                 unsafe extern "system" fn get_physical_device_present_rectangles_khr(
4182                     _physical_device: PhysicalDevice,
4183                     _surface: SurfaceKHR,
4184                     _p_rect_count: *mut u32,
4185                     _p_rects: *mut Rect2D,
4186                 ) -> Result {
4187                     panic!(concat!(
4188                         "Unable to load ",
4189                         stringify!(get_physical_device_present_rectangles_khr)
4190                     ))
4191                 }
4192                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4193                     b"vkGetPhysicalDevicePresentRectanglesKHR\0",
4194                 );
4195                 let val = _f(cname);
4196                 if val.is_null() {
4197                     get_physical_device_present_rectangles_khr
4198                 } else {
4199                     ::std::mem::transmute(val)
4200                 }
4201             },
4202             acquire_next_image2_khr: unsafe {
4203                 unsafe extern "system" fn acquire_next_image2_khr(
4204                     _device: Device,
4205                     _p_acquire_info: *const AcquireNextImageInfoKHR,
4206                     _p_image_index: *mut u32,
4207                 ) -> Result {
4208                     panic!(concat!(
4209                         "Unable to load ",
4210                         stringify!(acquire_next_image2_khr)
4211                     ))
4212                 }
4213                 let cname =
4214                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireNextImage2KHR\0");
4215                 let val = _f(cname);
4216                 if val.is_null() {
4217                     acquire_next_image2_khr
4218                 } else {
4219                     ::std::mem::transmute(val)
4220                 }
4221             },
4222         }
4223     }
4224 }
4225 #[doc = "Generated from 'VK_KHR_device_group'"]
4226 impl DependencyFlags {
4227     pub const DEVICE_GROUP_KHR: Self = Self::DEVICE_GROUP;
4228 }
4229 #[doc = "Generated from 'VK_KHR_device_group'"]
4230 impl ImageCreateFlags {
4231     pub const SPLIT_INSTANCE_BIND_REGIONS_KHR: Self = Self::SPLIT_INSTANCE_BIND_REGIONS;
4232 }
4233 #[doc = "Generated from 'VK_KHR_device_group'"]
4234 impl MemoryAllocateFlags {
4235     pub const DEVICE_MASK_KHR: Self = Self::DEVICE_MASK;
4236 }
4237 #[doc = "Generated from 'VK_KHR_device_group'"]
4238 impl PeerMemoryFeatureFlags {
4239     pub const COPY_SRC_KHR: Self = Self::COPY_SRC;
4240     pub const COPY_DST_KHR: Self = Self::COPY_DST;
4241     pub const GENERIC_SRC_KHR: Self = Self::GENERIC_SRC;
4242     pub const GENERIC_DST_KHR: Self = Self::GENERIC_DST;
4243 }
4244 #[doc = "Generated from 'VK_KHR_device_group'"]
4245 impl PipelineCreateFlags {
4246     pub const VIEW_INDEX_FROM_DEVICE_INDEX_KHR: Self = Self::VIEW_INDEX_FROM_DEVICE_INDEX;
4247 }
4248 #[doc = "Generated from 'VK_KHR_device_group'"]
4249 impl StructureType {
4250     pub const MEMORY_ALLOCATE_FLAGS_INFO_KHR: Self = Self::MEMORY_ALLOCATE_FLAGS_INFO;
4251     pub const DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR: Self =
4252         Self::DEVICE_GROUP_RENDER_PASS_BEGIN_INFO;
4253     pub const DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR: Self =
4254         Self::DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO;
4255     pub const DEVICE_GROUP_SUBMIT_INFO_KHR: Self = Self::DEVICE_GROUP_SUBMIT_INFO;
4256     pub const DEVICE_GROUP_BIND_SPARSE_INFO_KHR: Self = Self::DEVICE_GROUP_BIND_SPARSE_INFO;
4257     pub const BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR: Self =
4258         Self::BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO;
4259     pub const BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR: Self =
4260         Self::BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO;
4261 }
4262 impl ExtValidationFlagsFn {
4263     #[inline]
name() -> &'static ::std::ffi::CStr4264     pub const fn name() -> &'static ::std::ffi::CStr {
4265         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_validation_flags\0") }
4266     }
4267     pub const SPEC_VERSION: u32 = 2u32;
4268 }
4269 #[derive(Clone)]
4270 pub struct ExtValidationFlagsFn {}
4271 unsafe impl Send for ExtValidationFlagsFn {}
4272 unsafe impl Sync for ExtValidationFlagsFn {}
4273 impl ExtValidationFlagsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4274     pub fn load<F>(mut _f: F) -> Self
4275     where
4276         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4277     {
4278         Self {}
4279     }
4280 }
4281 #[doc = "Generated from 'VK_EXT_validation_flags'"]
4282 impl StructureType {
4283     pub const VALIDATION_FLAGS_EXT: Self = Self(1_000_061_000);
4284 }
4285 impl NnViSurfaceFn {
4286     #[inline]
name() -> &'static ::std::ffi::CStr4287     pub const fn name() -> &'static ::std::ffi::CStr {
4288         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NN_vi_surface\0") }
4289     }
4290     pub const SPEC_VERSION: u32 = 1u32;
4291 }
4292 #[allow(non_camel_case_types)]
4293 pub type PFN_vkCreateViSurfaceNN = unsafe extern "system" fn(
4294     instance: Instance,
4295     p_create_info: *const ViSurfaceCreateInfoNN,
4296     p_allocator: *const AllocationCallbacks,
4297     p_surface: *mut SurfaceKHR,
4298 ) -> Result;
4299 #[derive(Clone)]
4300 pub struct NnViSurfaceFn {
4301     pub create_vi_surface_nn: PFN_vkCreateViSurfaceNN,
4302 }
4303 unsafe impl Send for NnViSurfaceFn {}
4304 unsafe impl Sync for NnViSurfaceFn {}
4305 impl NnViSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4306     pub fn load<F>(mut _f: F) -> Self
4307     where
4308         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4309     {
4310         Self {
4311             create_vi_surface_nn: unsafe {
4312                 unsafe extern "system" fn create_vi_surface_nn(
4313                     _instance: Instance,
4314                     _p_create_info: *const ViSurfaceCreateInfoNN,
4315                     _p_allocator: *const AllocationCallbacks,
4316                     _p_surface: *mut SurfaceKHR,
4317                 ) -> Result {
4318                     panic!(concat!("Unable to load ", stringify!(create_vi_surface_nn)))
4319                 }
4320                 let cname =
4321                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateViSurfaceNN\0");
4322                 let val = _f(cname);
4323                 if val.is_null() {
4324                     create_vi_surface_nn
4325                 } else {
4326                     ::std::mem::transmute(val)
4327                 }
4328             },
4329         }
4330     }
4331 }
4332 #[doc = "Generated from 'VK_NN_vi_surface'"]
4333 impl StructureType {
4334     pub const VI_SURFACE_CREATE_INFO_NN: Self = Self(1_000_062_000);
4335 }
4336 impl KhrShaderDrawParametersFn {
4337     #[inline]
name() -> &'static ::std::ffi::CStr4338     pub const fn name() -> &'static ::std::ffi::CStr {
4339         unsafe {
4340             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_draw_parameters\0")
4341         }
4342     }
4343     pub const SPEC_VERSION: u32 = 1u32;
4344 }
4345 #[derive(Clone)]
4346 pub struct KhrShaderDrawParametersFn {}
4347 unsafe impl Send for KhrShaderDrawParametersFn {}
4348 unsafe impl Sync for KhrShaderDrawParametersFn {}
4349 impl KhrShaderDrawParametersFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4350     pub fn load<F>(mut _f: F) -> Self
4351     where
4352         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4353     {
4354         Self {}
4355     }
4356 }
4357 impl ExtShaderSubgroupBallotFn {
4358     #[inline]
name() -> &'static ::std::ffi::CStr4359     pub const fn name() -> &'static ::std::ffi::CStr {
4360         unsafe {
4361             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_subgroup_ballot\0")
4362         }
4363     }
4364     pub const SPEC_VERSION: u32 = 1u32;
4365 }
4366 #[derive(Clone)]
4367 pub struct ExtShaderSubgroupBallotFn {}
4368 unsafe impl Send for ExtShaderSubgroupBallotFn {}
4369 unsafe impl Sync for ExtShaderSubgroupBallotFn {}
4370 impl ExtShaderSubgroupBallotFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4371     pub fn load<F>(mut _f: F) -> Self
4372     where
4373         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4374     {
4375         Self {}
4376     }
4377 }
4378 impl ExtShaderSubgroupVoteFn {
4379     #[inline]
name() -> &'static ::std::ffi::CStr4380     pub const fn name() -> &'static ::std::ffi::CStr {
4381         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_subgroup_vote\0") }
4382     }
4383     pub const SPEC_VERSION: u32 = 1u32;
4384 }
4385 #[derive(Clone)]
4386 pub struct ExtShaderSubgroupVoteFn {}
4387 unsafe impl Send for ExtShaderSubgroupVoteFn {}
4388 unsafe impl Sync for ExtShaderSubgroupVoteFn {}
4389 impl ExtShaderSubgroupVoteFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4390     pub fn load<F>(mut _f: F) -> Self
4391     where
4392         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4393     {
4394         Self {}
4395     }
4396 }
4397 impl ExtTextureCompressionAstcHdrFn {
4398     #[inline]
name() -> &'static ::std::ffi::CStr4399     pub const fn name() -> &'static ::std::ffi::CStr {
4400         unsafe {
4401             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4402                 b"VK_EXT_texture_compression_astc_hdr\0",
4403             )
4404         }
4405     }
4406     pub const SPEC_VERSION: u32 = 1u32;
4407 }
4408 #[derive(Clone)]
4409 pub struct ExtTextureCompressionAstcHdrFn {}
4410 unsafe impl Send for ExtTextureCompressionAstcHdrFn {}
4411 unsafe impl Sync for ExtTextureCompressionAstcHdrFn {}
4412 impl ExtTextureCompressionAstcHdrFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4413     pub fn load<F>(mut _f: F) -> Self
4414     where
4415         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4416     {
4417         Self {}
4418     }
4419 }
4420 #[doc = "Generated from 'VK_EXT_texture_compression_astc_hdr'"]
4421 impl Format {
4422     pub const ASTC_4X4_SFLOAT_BLOCK_EXT: Self = Self::ASTC_4X4_SFLOAT_BLOCK;
4423     pub const ASTC_5X4_SFLOAT_BLOCK_EXT: Self = Self::ASTC_5X4_SFLOAT_BLOCK;
4424     pub const ASTC_5X5_SFLOAT_BLOCK_EXT: Self = Self::ASTC_5X5_SFLOAT_BLOCK;
4425     pub const ASTC_6X5_SFLOAT_BLOCK_EXT: Self = Self::ASTC_6X5_SFLOAT_BLOCK;
4426     pub const ASTC_6X6_SFLOAT_BLOCK_EXT: Self = Self::ASTC_6X6_SFLOAT_BLOCK;
4427     pub const ASTC_8X5_SFLOAT_BLOCK_EXT: Self = Self::ASTC_8X5_SFLOAT_BLOCK;
4428     pub const ASTC_8X6_SFLOAT_BLOCK_EXT: Self = Self::ASTC_8X6_SFLOAT_BLOCK;
4429     pub const ASTC_8X8_SFLOAT_BLOCK_EXT: Self = Self::ASTC_8X8_SFLOAT_BLOCK;
4430     pub const ASTC_10X5_SFLOAT_BLOCK_EXT: Self = Self::ASTC_10X5_SFLOAT_BLOCK;
4431     pub const ASTC_10X6_SFLOAT_BLOCK_EXT: Self = Self::ASTC_10X6_SFLOAT_BLOCK;
4432     pub const ASTC_10X8_SFLOAT_BLOCK_EXT: Self = Self::ASTC_10X8_SFLOAT_BLOCK;
4433     pub const ASTC_10X10_SFLOAT_BLOCK_EXT: Self = Self::ASTC_10X10_SFLOAT_BLOCK;
4434     pub const ASTC_12X10_SFLOAT_BLOCK_EXT: Self = Self::ASTC_12X10_SFLOAT_BLOCK;
4435     pub const ASTC_12X12_SFLOAT_BLOCK_EXT: Self = Self::ASTC_12X12_SFLOAT_BLOCK;
4436 }
4437 #[doc = "Generated from 'VK_EXT_texture_compression_astc_hdr'"]
4438 impl StructureType {
4439     pub const PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT: Self =
4440         Self::PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES;
4441 }
4442 impl ExtAstcDecodeModeFn {
4443     #[inline]
name() -> &'static ::std::ffi::CStr4444     pub const fn name() -> &'static ::std::ffi::CStr {
4445         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_astc_decode_mode\0") }
4446     }
4447     pub const SPEC_VERSION: u32 = 1u32;
4448 }
4449 #[derive(Clone)]
4450 pub struct ExtAstcDecodeModeFn {}
4451 unsafe impl Send for ExtAstcDecodeModeFn {}
4452 unsafe impl Sync for ExtAstcDecodeModeFn {}
4453 impl ExtAstcDecodeModeFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4454     pub fn load<F>(mut _f: F) -> Self
4455     where
4456         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4457     {
4458         Self {}
4459     }
4460 }
4461 #[doc = "Generated from 'VK_EXT_astc_decode_mode'"]
4462 impl StructureType {
4463     pub const IMAGE_VIEW_ASTC_DECODE_MODE_EXT: Self = Self(1_000_067_000);
4464     pub const PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT: Self = Self(1_000_067_001);
4465 }
4466 impl ExtPipelineRobustnessFn {
4467     #[inline]
name() -> &'static ::std::ffi::CStr4468     pub const fn name() -> &'static ::std::ffi::CStr {
4469         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pipeline_robustness\0") }
4470     }
4471     pub const SPEC_VERSION: u32 = 1u32;
4472 }
4473 #[derive(Clone)]
4474 pub struct ExtPipelineRobustnessFn {}
4475 unsafe impl Send for ExtPipelineRobustnessFn {}
4476 unsafe impl Sync for ExtPipelineRobustnessFn {}
4477 impl ExtPipelineRobustnessFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4478     pub fn load<F>(mut _f: F) -> Self
4479     where
4480         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4481     {
4482         Self {}
4483     }
4484 }
4485 #[doc = "Generated from 'VK_EXT_pipeline_robustness'"]
4486 impl StructureType {
4487     pub const PIPELINE_ROBUSTNESS_CREATE_INFO_EXT: Self = Self(1_000_068_000);
4488     pub const PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT: Self = Self(1_000_068_001);
4489     pub const PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT: Self = Self(1_000_068_002);
4490 }
4491 impl KhrMaintenance1Fn {
4492     #[inline]
name() -> &'static ::std::ffi::CStr4493     pub const fn name() -> &'static ::std::ffi::CStr {
4494         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance1\0") }
4495     }
4496     pub const SPEC_VERSION: u32 = 2u32;
4497 }
4498 #[allow(non_camel_case_types)]
4499 pub type PFN_vkTrimCommandPool = unsafe extern "system" fn(
4500     device: Device,
4501     command_pool: CommandPool,
4502     flags: CommandPoolTrimFlags,
4503 );
4504 #[derive(Clone)]
4505 pub struct KhrMaintenance1Fn {
4506     pub trim_command_pool_khr: PFN_vkTrimCommandPool,
4507 }
4508 unsafe impl Send for KhrMaintenance1Fn {}
4509 unsafe impl Sync for KhrMaintenance1Fn {}
4510 impl KhrMaintenance1Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4511     pub fn load<F>(mut _f: F) -> Self
4512     where
4513         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4514     {
4515         Self {
4516             trim_command_pool_khr: unsafe {
4517                 unsafe extern "system" fn trim_command_pool_khr(
4518                     _device: Device,
4519                     _command_pool: CommandPool,
4520                     _flags: CommandPoolTrimFlags,
4521                 ) {
4522                     panic!(concat!(
4523                         "Unable to load ",
4524                         stringify!(trim_command_pool_khr)
4525                     ))
4526                 }
4527                 let cname =
4528                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkTrimCommandPoolKHR\0");
4529                 let val = _f(cname);
4530                 if val.is_null() {
4531                     trim_command_pool_khr
4532                 } else {
4533                     ::std::mem::transmute(val)
4534                 }
4535             },
4536         }
4537     }
4538 }
4539 #[doc = "Generated from 'VK_KHR_maintenance1'"]
4540 impl FormatFeatureFlags {
4541     pub const TRANSFER_SRC_KHR: Self = Self::TRANSFER_SRC;
4542     pub const TRANSFER_DST_KHR: Self = Self::TRANSFER_DST;
4543 }
4544 #[doc = "Generated from 'VK_KHR_maintenance1'"]
4545 impl ImageCreateFlags {
4546     pub const TYPE_2D_ARRAY_COMPATIBLE_KHR: Self = Self::TYPE_2D_ARRAY_COMPATIBLE;
4547 }
4548 #[doc = "Generated from 'VK_KHR_maintenance1'"]
4549 impl Result {
4550     pub const ERROR_OUT_OF_POOL_MEMORY_KHR: Self = Self::ERROR_OUT_OF_POOL_MEMORY;
4551 }
4552 impl KhrDeviceGroupCreationFn {
4553     #[inline]
name() -> &'static ::std::ffi::CStr4554     pub const fn name() -> &'static ::std::ffi::CStr {
4555         unsafe {
4556             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_device_group_creation\0")
4557         }
4558     }
4559     pub const SPEC_VERSION: u32 = 1u32;
4560 }
4561 #[allow(non_camel_case_types)]
4562 pub type PFN_vkEnumeratePhysicalDeviceGroups = unsafe extern "system" fn(
4563     instance: Instance,
4564     p_physical_device_group_count: *mut u32,
4565     p_physical_device_group_properties: *mut PhysicalDeviceGroupProperties,
4566 ) -> Result;
4567 #[derive(Clone)]
4568 pub struct KhrDeviceGroupCreationFn {
4569     pub enumerate_physical_device_groups_khr: PFN_vkEnumeratePhysicalDeviceGroups,
4570 }
4571 unsafe impl Send for KhrDeviceGroupCreationFn {}
4572 unsafe impl Sync for KhrDeviceGroupCreationFn {}
4573 impl KhrDeviceGroupCreationFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4574     pub fn load<F>(mut _f: F) -> Self
4575     where
4576         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4577     {
4578         Self {
4579             enumerate_physical_device_groups_khr: unsafe {
4580                 unsafe extern "system" fn enumerate_physical_device_groups_khr(
4581                     _instance: Instance,
4582                     _p_physical_device_group_count: *mut u32,
4583                     _p_physical_device_group_properties: *mut PhysicalDeviceGroupProperties,
4584                 ) -> Result {
4585                     panic!(concat!(
4586                         "Unable to load ",
4587                         stringify!(enumerate_physical_device_groups_khr)
4588                     ))
4589                 }
4590                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4591                     b"vkEnumeratePhysicalDeviceGroupsKHR\0",
4592                 );
4593                 let val = _f(cname);
4594                 if val.is_null() {
4595                     enumerate_physical_device_groups_khr
4596                 } else {
4597                     ::std::mem::transmute(val)
4598                 }
4599             },
4600         }
4601     }
4602 }
4603 #[doc = "Generated from 'VK_KHR_device_group_creation'"]
4604 impl MemoryHeapFlags {
4605     pub const MULTI_INSTANCE_KHR: Self = Self::MULTI_INSTANCE;
4606 }
4607 #[doc = "Generated from 'VK_KHR_device_group_creation'"]
4608 impl StructureType {
4609     pub const PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR: Self = Self::PHYSICAL_DEVICE_GROUP_PROPERTIES;
4610     pub const DEVICE_GROUP_DEVICE_CREATE_INFO_KHR: Self = Self::DEVICE_GROUP_DEVICE_CREATE_INFO;
4611 }
4612 impl KhrExternalMemoryCapabilitiesFn {
4613     #[inline]
name() -> &'static ::std::ffi::CStr4614     pub const fn name() -> &'static ::std::ffi::CStr {
4615         unsafe {
4616             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4617                 b"VK_KHR_external_memory_capabilities\0",
4618             )
4619         }
4620     }
4621     pub const SPEC_VERSION: u32 = 1u32;
4622 }
4623 #[allow(non_camel_case_types)]
4624 pub type PFN_vkGetPhysicalDeviceExternalBufferProperties = unsafe extern "system" fn(
4625     physical_device: PhysicalDevice,
4626     p_external_buffer_info: *const PhysicalDeviceExternalBufferInfo,
4627     p_external_buffer_properties: *mut ExternalBufferProperties,
4628 );
4629 #[derive(Clone)]
4630 pub struct KhrExternalMemoryCapabilitiesFn {
4631     pub get_physical_device_external_buffer_properties_khr:
4632         PFN_vkGetPhysicalDeviceExternalBufferProperties,
4633 }
4634 unsafe impl Send for KhrExternalMemoryCapabilitiesFn {}
4635 unsafe impl Sync for KhrExternalMemoryCapabilitiesFn {}
4636 impl KhrExternalMemoryCapabilitiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4637     pub fn load<F>(mut _f: F) -> Self
4638     where
4639         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4640     {
4641         Self {
4642             get_physical_device_external_buffer_properties_khr: unsafe {
4643                 unsafe extern "system" fn get_physical_device_external_buffer_properties_khr(
4644                     _physical_device: PhysicalDevice,
4645                     _p_external_buffer_info: *const PhysicalDeviceExternalBufferInfo,
4646                     _p_external_buffer_properties: *mut ExternalBufferProperties,
4647                 ) {
4648                     panic!(concat!(
4649                         "Unable to load ",
4650                         stringify!(get_physical_device_external_buffer_properties_khr)
4651                     ))
4652                 }
4653                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4654                     b"vkGetPhysicalDeviceExternalBufferPropertiesKHR\0",
4655                 );
4656                 let val = _f(cname);
4657                 if val.is_null() {
4658                     get_physical_device_external_buffer_properties_khr
4659                 } else {
4660                     ::std::mem::transmute(val)
4661                 }
4662             },
4663         }
4664     }
4665 }
4666 #[doc = "Generated from 'VK_KHR_external_memory_capabilities'"]
4667 impl ExternalMemoryFeatureFlags {
4668     pub const DEDICATED_ONLY_KHR: Self = Self::DEDICATED_ONLY;
4669     pub const EXPORTABLE_KHR: Self = Self::EXPORTABLE;
4670     pub const IMPORTABLE_KHR: Self = Self::IMPORTABLE;
4671 }
4672 #[doc = "Generated from 'VK_KHR_external_memory_capabilities'"]
4673 impl ExternalMemoryHandleTypeFlags {
4674     pub const OPAQUE_FD_KHR: Self = Self::OPAQUE_FD;
4675     pub const OPAQUE_WIN32_KHR: Self = Self::OPAQUE_WIN32;
4676     pub const OPAQUE_WIN32_KMT_KHR: Self = Self::OPAQUE_WIN32_KMT;
4677     pub const D3D11_TEXTURE_KHR: Self = Self::D3D11_TEXTURE;
4678     pub const D3D11_TEXTURE_KMT_KHR: Self = Self::D3D11_TEXTURE_KMT;
4679     pub const D3D12_HEAP_KHR: Self = Self::D3D12_HEAP;
4680     pub const D3D12_RESOURCE_KHR: Self = Self::D3D12_RESOURCE;
4681 }
4682 #[doc = "Generated from 'VK_KHR_external_memory_capabilities'"]
4683 impl StructureType {
4684     pub const PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR: Self =
4685         Self::PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO;
4686     pub const EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR: Self = Self::EXTERNAL_IMAGE_FORMAT_PROPERTIES;
4687     pub const PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR: Self =
4688         Self::PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO;
4689     pub const EXTERNAL_BUFFER_PROPERTIES_KHR: Self = Self::EXTERNAL_BUFFER_PROPERTIES;
4690     pub const PHYSICAL_DEVICE_ID_PROPERTIES_KHR: Self = Self::PHYSICAL_DEVICE_ID_PROPERTIES;
4691 }
4692 impl KhrExternalMemoryFn {
4693     #[inline]
name() -> &'static ::std::ffi::CStr4694     pub const fn name() -> &'static ::std::ffi::CStr {
4695         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_memory\0") }
4696     }
4697     pub const SPEC_VERSION: u32 = 1u32;
4698 }
4699 #[derive(Clone)]
4700 pub struct KhrExternalMemoryFn {}
4701 unsafe impl Send for KhrExternalMemoryFn {}
4702 unsafe impl Sync for KhrExternalMemoryFn {}
4703 impl KhrExternalMemoryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4704     pub fn load<F>(mut _f: F) -> Self
4705     where
4706         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4707     {
4708         Self {}
4709     }
4710 }
4711 #[doc = "Generated from 'VK_KHR_external_memory'"]
4712 impl Result {
4713     pub const ERROR_INVALID_EXTERNAL_HANDLE_KHR: Self = Self::ERROR_INVALID_EXTERNAL_HANDLE;
4714 }
4715 #[doc = "Generated from 'VK_KHR_external_memory'"]
4716 impl StructureType {
4717     pub const EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR: Self =
4718         Self::EXTERNAL_MEMORY_BUFFER_CREATE_INFO;
4719     pub const EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR: Self = Self::EXTERNAL_MEMORY_IMAGE_CREATE_INFO;
4720     pub const EXPORT_MEMORY_ALLOCATE_INFO_KHR: Self = Self::EXPORT_MEMORY_ALLOCATE_INFO;
4721 }
4722 impl KhrExternalMemoryWin32Fn {
4723     #[inline]
name() -> &'static ::std::ffi::CStr4724     pub const fn name() -> &'static ::std::ffi::CStr {
4725         unsafe {
4726             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_memory_win32\0")
4727         }
4728     }
4729     pub const SPEC_VERSION: u32 = 1u32;
4730 }
4731 #[allow(non_camel_case_types)]
4732 pub type PFN_vkGetMemoryWin32HandleKHR = unsafe extern "system" fn(
4733     device: Device,
4734     p_get_win32_handle_info: *const MemoryGetWin32HandleInfoKHR,
4735     p_handle: *mut HANDLE,
4736 ) -> Result;
4737 #[allow(non_camel_case_types)]
4738 pub type PFN_vkGetMemoryWin32HandlePropertiesKHR = unsafe extern "system" fn(
4739     device: Device,
4740     handle_type: ExternalMemoryHandleTypeFlags,
4741     handle: HANDLE,
4742     p_memory_win32_handle_properties: *mut MemoryWin32HandlePropertiesKHR,
4743 ) -> Result;
4744 #[derive(Clone)]
4745 pub struct KhrExternalMemoryWin32Fn {
4746     pub get_memory_win32_handle_khr: PFN_vkGetMemoryWin32HandleKHR,
4747     pub get_memory_win32_handle_properties_khr: PFN_vkGetMemoryWin32HandlePropertiesKHR,
4748 }
4749 unsafe impl Send for KhrExternalMemoryWin32Fn {}
4750 unsafe impl Sync for KhrExternalMemoryWin32Fn {}
4751 impl KhrExternalMemoryWin32Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4752     pub fn load<F>(mut _f: F) -> Self
4753     where
4754         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4755     {
4756         Self {
4757             get_memory_win32_handle_khr: unsafe {
4758                 unsafe extern "system" fn get_memory_win32_handle_khr(
4759                     _device: Device,
4760                     _p_get_win32_handle_info: *const MemoryGetWin32HandleInfoKHR,
4761                     _p_handle: *mut HANDLE,
4762                 ) -> Result {
4763                     panic!(concat!(
4764                         "Unable to load ",
4765                         stringify!(get_memory_win32_handle_khr)
4766                     ))
4767                 }
4768                 let cname =
4769                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryWin32HandleKHR\0");
4770                 let val = _f(cname);
4771                 if val.is_null() {
4772                     get_memory_win32_handle_khr
4773                 } else {
4774                     ::std::mem::transmute(val)
4775                 }
4776             },
4777             get_memory_win32_handle_properties_khr: unsafe {
4778                 unsafe extern "system" fn get_memory_win32_handle_properties_khr(
4779                     _device: Device,
4780                     _handle_type: ExternalMemoryHandleTypeFlags,
4781                     _handle: HANDLE,
4782                     _p_memory_win32_handle_properties: *mut MemoryWin32HandlePropertiesKHR,
4783                 ) -> Result {
4784                     panic!(concat!(
4785                         "Unable to load ",
4786                         stringify!(get_memory_win32_handle_properties_khr)
4787                     ))
4788                 }
4789                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4790                     b"vkGetMemoryWin32HandlePropertiesKHR\0",
4791                 );
4792                 let val = _f(cname);
4793                 if val.is_null() {
4794                     get_memory_win32_handle_properties_khr
4795                 } else {
4796                     ::std::mem::transmute(val)
4797                 }
4798             },
4799         }
4800     }
4801 }
4802 #[doc = "Generated from 'VK_KHR_external_memory_win32'"]
4803 impl StructureType {
4804     pub const IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_073_000);
4805     pub const EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_073_001);
4806     pub const MEMORY_WIN32_HANDLE_PROPERTIES_KHR: Self = Self(1_000_073_002);
4807     pub const MEMORY_GET_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_073_003);
4808 }
4809 impl KhrExternalMemoryFdFn {
4810     #[inline]
name() -> &'static ::std::ffi::CStr4811     pub const fn name() -> &'static ::std::ffi::CStr {
4812         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_memory_fd\0") }
4813     }
4814     pub const SPEC_VERSION: u32 = 1u32;
4815 }
4816 #[allow(non_camel_case_types)]
4817 pub type PFN_vkGetMemoryFdKHR = unsafe extern "system" fn(
4818     device: Device,
4819     p_get_fd_info: *const MemoryGetFdInfoKHR,
4820     p_fd: *mut c_int,
4821 ) -> Result;
4822 #[allow(non_camel_case_types)]
4823 pub type PFN_vkGetMemoryFdPropertiesKHR = unsafe extern "system" fn(
4824     device: Device,
4825     handle_type: ExternalMemoryHandleTypeFlags,
4826     fd: c_int,
4827     p_memory_fd_properties: *mut MemoryFdPropertiesKHR,
4828 ) -> Result;
4829 #[derive(Clone)]
4830 pub struct KhrExternalMemoryFdFn {
4831     pub get_memory_fd_khr: PFN_vkGetMemoryFdKHR,
4832     pub get_memory_fd_properties_khr: PFN_vkGetMemoryFdPropertiesKHR,
4833 }
4834 unsafe impl Send for KhrExternalMemoryFdFn {}
4835 unsafe impl Sync for KhrExternalMemoryFdFn {}
4836 impl KhrExternalMemoryFdFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4837     pub fn load<F>(mut _f: F) -> Self
4838     where
4839         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4840     {
4841         Self {
4842             get_memory_fd_khr: unsafe {
4843                 unsafe extern "system" fn get_memory_fd_khr(
4844                     _device: Device,
4845                     _p_get_fd_info: *const MemoryGetFdInfoKHR,
4846                     _p_fd: *mut c_int,
4847                 ) -> Result {
4848                     panic!(concat!("Unable to load ", stringify!(get_memory_fd_khr)))
4849                 }
4850                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryFdKHR\0");
4851                 let val = _f(cname);
4852                 if val.is_null() {
4853                     get_memory_fd_khr
4854                 } else {
4855                     ::std::mem::transmute(val)
4856                 }
4857             },
4858             get_memory_fd_properties_khr: unsafe {
4859                 unsafe extern "system" fn get_memory_fd_properties_khr(
4860                     _device: Device,
4861                     _handle_type: ExternalMemoryHandleTypeFlags,
4862                     _fd: c_int,
4863                     _p_memory_fd_properties: *mut MemoryFdPropertiesKHR,
4864                 ) -> Result {
4865                     panic!(concat!(
4866                         "Unable to load ",
4867                         stringify!(get_memory_fd_properties_khr)
4868                     ))
4869                 }
4870                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4871                     b"vkGetMemoryFdPropertiesKHR\0",
4872                 );
4873                 let val = _f(cname);
4874                 if val.is_null() {
4875                     get_memory_fd_properties_khr
4876                 } else {
4877                     ::std::mem::transmute(val)
4878                 }
4879             },
4880         }
4881     }
4882 }
4883 #[doc = "Generated from 'VK_KHR_external_memory_fd'"]
4884 impl StructureType {
4885     pub const IMPORT_MEMORY_FD_INFO_KHR: Self = Self(1_000_074_000);
4886     pub const MEMORY_FD_PROPERTIES_KHR: Self = Self(1_000_074_001);
4887     pub const MEMORY_GET_FD_INFO_KHR: Self = Self(1_000_074_002);
4888 }
4889 impl KhrWin32KeyedMutexFn {
4890     #[inline]
name() -> &'static ::std::ffi::CStr4891     pub const fn name() -> &'static ::std::ffi::CStr {
4892         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_win32_keyed_mutex\0") }
4893     }
4894     pub const SPEC_VERSION: u32 = 1u32;
4895 }
4896 #[derive(Clone)]
4897 pub struct KhrWin32KeyedMutexFn {}
4898 unsafe impl Send for KhrWin32KeyedMutexFn {}
4899 unsafe impl Sync for KhrWin32KeyedMutexFn {}
4900 impl KhrWin32KeyedMutexFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4901     pub fn load<F>(mut _f: F) -> Self
4902     where
4903         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4904     {
4905         Self {}
4906     }
4907 }
4908 #[doc = "Generated from 'VK_KHR_win32_keyed_mutex'"]
4909 impl StructureType {
4910     pub const WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR: Self = Self(1_000_075_000);
4911 }
4912 impl KhrExternalSemaphoreCapabilitiesFn {
4913     #[inline]
name() -> &'static ::std::ffi::CStr4914     pub const fn name() -> &'static ::std::ffi::CStr {
4915         unsafe {
4916             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4917                 b"VK_KHR_external_semaphore_capabilities\0",
4918             )
4919         }
4920     }
4921     pub const SPEC_VERSION: u32 = 1u32;
4922 }
4923 #[allow(non_camel_case_types)]
4924 pub type PFN_vkGetPhysicalDeviceExternalSemaphoreProperties = unsafe extern "system" fn(
4925     physical_device: PhysicalDevice,
4926     p_external_semaphore_info: *const PhysicalDeviceExternalSemaphoreInfo,
4927     p_external_semaphore_properties: *mut ExternalSemaphoreProperties,
4928 );
4929 #[derive(Clone)]
4930 pub struct KhrExternalSemaphoreCapabilitiesFn {
4931     pub get_physical_device_external_semaphore_properties_khr:
4932         PFN_vkGetPhysicalDeviceExternalSemaphoreProperties,
4933 }
4934 unsafe impl Send for KhrExternalSemaphoreCapabilitiesFn {}
4935 unsafe impl Sync for KhrExternalSemaphoreCapabilitiesFn {}
4936 impl KhrExternalSemaphoreCapabilitiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4937     pub fn load<F>(mut _f: F) -> Self
4938     where
4939         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4940     {
4941         Self {
4942             get_physical_device_external_semaphore_properties_khr: unsafe {
4943                 unsafe extern "system" fn get_physical_device_external_semaphore_properties_khr(
4944                     _physical_device: PhysicalDevice,
4945                     _p_external_semaphore_info: *const PhysicalDeviceExternalSemaphoreInfo,
4946                     _p_external_semaphore_properties: *mut ExternalSemaphoreProperties,
4947                 ) {
4948                     panic!(concat!(
4949                         "Unable to load ",
4950                         stringify!(get_physical_device_external_semaphore_properties_khr)
4951                     ))
4952                 }
4953                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4954                     b"vkGetPhysicalDeviceExternalSemaphorePropertiesKHR\0",
4955                 );
4956                 let val = _f(cname);
4957                 if val.is_null() {
4958                     get_physical_device_external_semaphore_properties_khr
4959                 } else {
4960                     ::std::mem::transmute(val)
4961                 }
4962             },
4963         }
4964     }
4965 }
4966 #[doc = "Generated from 'VK_KHR_external_semaphore_capabilities'"]
4967 impl ExternalSemaphoreFeatureFlags {
4968     pub const EXPORTABLE_KHR: Self = Self::EXPORTABLE;
4969     pub const IMPORTABLE_KHR: Self = Self::IMPORTABLE;
4970 }
4971 #[doc = "Generated from 'VK_KHR_external_semaphore_capabilities'"]
4972 impl ExternalSemaphoreHandleTypeFlags {
4973     pub const OPAQUE_FD_KHR: Self = Self::OPAQUE_FD;
4974     pub const OPAQUE_WIN32_KHR: Self = Self::OPAQUE_WIN32;
4975     pub const OPAQUE_WIN32_KMT_KHR: Self = Self::OPAQUE_WIN32_KMT;
4976     pub const D3D12_FENCE_KHR: Self = Self::D3D12_FENCE;
4977     pub const SYNC_FD_KHR: Self = Self::SYNC_FD;
4978 }
4979 #[doc = "Generated from 'VK_KHR_external_semaphore_capabilities'"]
4980 impl StructureType {
4981     pub const PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR: Self =
4982         Self::PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO;
4983     pub const EXTERNAL_SEMAPHORE_PROPERTIES_KHR: Self = Self::EXTERNAL_SEMAPHORE_PROPERTIES;
4984 }
4985 impl KhrExternalSemaphoreFn {
4986     #[inline]
name() -> &'static ::std::ffi::CStr4987     pub const fn name() -> &'static ::std::ffi::CStr {
4988         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_semaphore\0") }
4989     }
4990     pub const SPEC_VERSION: u32 = 1u32;
4991 }
4992 #[derive(Clone)]
4993 pub struct KhrExternalSemaphoreFn {}
4994 unsafe impl Send for KhrExternalSemaphoreFn {}
4995 unsafe impl Sync for KhrExternalSemaphoreFn {}
4996 impl KhrExternalSemaphoreFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4997     pub fn load<F>(mut _f: F) -> Self
4998     where
4999         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5000     {
5001         Self {}
5002     }
5003 }
5004 #[doc = "Generated from 'VK_KHR_external_semaphore'"]
5005 impl SemaphoreImportFlags {
5006     pub const TEMPORARY_KHR: Self = Self::TEMPORARY;
5007 }
5008 #[doc = "Generated from 'VK_KHR_external_semaphore'"]
5009 impl StructureType {
5010     pub const EXPORT_SEMAPHORE_CREATE_INFO_KHR: Self = Self::EXPORT_SEMAPHORE_CREATE_INFO;
5011 }
5012 impl KhrExternalSemaphoreWin32Fn {
5013     #[inline]
name() -> &'static ::std::ffi::CStr5014     pub const fn name() -> &'static ::std::ffi::CStr {
5015         unsafe {
5016             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_semaphore_win32\0")
5017         }
5018     }
5019     pub const SPEC_VERSION: u32 = 1u32;
5020 }
5021 #[allow(non_camel_case_types)]
5022 pub type PFN_vkImportSemaphoreWin32HandleKHR = unsafe extern "system" fn(
5023     device: Device,
5024     p_import_semaphore_win32_handle_info: *const ImportSemaphoreWin32HandleInfoKHR,
5025 ) -> Result;
5026 #[allow(non_camel_case_types)]
5027 pub type PFN_vkGetSemaphoreWin32HandleKHR = unsafe extern "system" fn(
5028     device: Device,
5029     p_get_win32_handle_info: *const SemaphoreGetWin32HandleInfoKHR,
5030     p_handle: *mut HANDLE,
5031 ) -> Result;
5032 #[derive(Clone)]
5033 pub struct KhrExternalSemaphoreWin32Fn {
5034     pub import_semaphore_win32_handle_khr: PFN_vkImportSemaphoreWin32HandleKHR,
5035     pub get_semaphore_win32_handle_khr: PFN_vkGetSemaphoreWin32HandleKHR,
5036 }
5037 unsafe impl Send for KhrExternalSemaphoreWin32Fn {}
5038 unsafe impl Sync for KhrExternalSemaphoreWin32Fn {}
5039 impl KhrExternalSemaphoreWin32Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5040     pub fn load<F>(mut _f: F) -> Self
5041     where
5042         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5043     {
5044         Self {
5045             import_semaphore_win32_handle_khr: unsafe {
5046                 unsafe extern "system" fn import_semaphore_win32_handle_khr(
5047                     _device: Device,
5048                     _p_import_semaphore_win32_handle_info: *const ImportSemaphoreWin32HandleInfoKHR,
5049                 ) -> Result {
5050                     panic!(concat!(
5051                         "Unable to load ",
5052                         stringify!(import_semaphore_win32_handle_khr)
5053                     ))
5054                 }
5055                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5056                     b"vkImportSemaphoreWin32HandleKHR\0",
5057                 );
5058                 let val = _f(cname);
5059                 if val.is_null() {
5060                     import_semaphore_win32_handle_khr
5061                 } else {
5062                     ::std::mem::transmute(val)
5063                 }
5064             },
5065             get_semaphore_win32_handle_khr: unsafe {
5066                 unsafe extern "system" fn get_semaphore_win32_handle_khr(
5067                     _device: Device,
5068                     _p_get_win32_handle_info: *const SemaphoreGetWin32HandleInfoKHR,
5069                     _p_handle: *mut HANDLE,
5070                 ) -> Result {
5071                     panic!(concat!(
5072                         "Unable to load ",
5073                         stringify!(get_semaphore_win32_handle_khr)
5074                     ))
5075                 }
5076                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5077                     b"vkGetSemaphoreWin32HandleKHR\0",
5078                 );
5079                 let val = _f(cname);
5080                 if val.is_null() {
5081                     get_semaphore_win32_handle_khr
5082                 } else {
5083                     ::std::mem::transmute(val)
5084                 }
5085             },
5086         }
5087     }
5088 }
5089 #[doc = "Generated from 'VK_KHR_external_semaphore_win32'"]
5090 impl StructureType {
5091     pub const IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_078_000);
5092     pub const EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_078_001);
5093     pub const D3D12_FENCE_SUBMIT_INFO_KHR: Self = Self(1_000_078_002);
5094     pub const SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_078_003);
5095 }
5096 impl KhrExternalSemaphoreFdFn {
5097     #[inline]
name() -> &'static ::std::ffi::CStr5098     pub const fn name() -> &'static ::std::ffi::CStr {
5099         unsafe {
5100             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_semaphore_fd\0")
5101         }
5102     }
5103     pub const SPEC_VERSION: u32 = 1u32;
5104 }
5105 #[allow(non_camel_case_types)]
5106 pub type PFN_vkImportSemaphoreFdKHR = unsafe extern "system" fn(
5107     device: Device,
5108     p_import_semaphore_fd_info: *const ImportSemaphoreFdInfoKHR,
5109 ) -> Result;
5110 #[allow(non_camel_case_types)]
5111 pub type PFN_vkGetSemaphoreFdKHR = unsafe extern "system" fn(
5112     device: Device,
5113     p_get_fd_info: *const SemaphoreGetFdInfoKHR,
5114     p_fd: *mut c_int,
5115 ) -> Result;
5116 #[derive(Clone)]
5117 pub struct KhrExternalSemaphoreFdFn {
5118     pub import_semaphore_fd_khr: PFN_vkImportSemaphoreFdKHR,
5119     pub get_semaphore_fd_khr: PFN_vkGetSemaphoreFdKHR,
5120 }
5121 unsafe impl Send for KhrExternalSemaphoreFdFn {}
5122 unsafe impl Sync for KhrExternalSemaphoreFdFn {}
5123 impl KhrExternalSemaphoreFdFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5124     pub fn load<F>(mut _f: F) -> Self
5125     where
5126         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5127     {
5128         Self {
5129             import_semaphore_fd_khr: unsafe {
5130                 unsafe extern "system" fn import_semaphore_fd_khr(
5131                     _device: Device,
5132                     _p_import_semaphore_fd_info: *const ImportSemaphoreFdInfoKHR,
5133                 ) -> Result {
5134                     panic!(concat!(
5135                         "Unable to load ",
5136                         stringify!(import_semaphore_fd_khr)
5137                     ))
5138                 }
5139                 let cname =
5140                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkImportSemaphoreFdKHR\0");
5141                 let val = _f(cname);
5142                 if val.is_null() {
5143                     import_semaphore_fd_khr
5144                 } else {
5145                     ::std::mem::transmute(val)
5146                 }
5147             },
5148             get_semaphore_fd_khr: unsafe {
5149                 unsafe extern "system" fn get_semaphore_fd_khr(
5150                     _device: Device,
5151                     _p_get_fd_info: *const SemaphoreGetFdInfoKHR,
5152                     _p_fd: *mut c_int,
5153                 ) -> Result {
5154                     panic!(concat!("Unable to load ", stringify!(get_semaphore_fd_khr)))
5155                 }
5156                 let cname =
5157                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetSemaphoreFdKHR\0");
5158                 let val = _f(cname);
5159                 if val.is_null() {
5160                     get_semaphore_fd_khr
5161                 } else {
5162                     ::std::mem::transmute(val)
5163                 }
5164             },
5165         }
5166     }
5167 }
5168 #[doc = "Generated from 'VK_KHR_external_semaphore_fd'"]
5169 impl StructureType {
5170     pub const IMPORT_SEMAPHORE_FD_INFO_KHR: Self = Self(1_000_079_000);
5171     pub const SEMAPHORE_GET_FD_INFO_KHR: Self = Self(1_000_079_001);
5172 }
5173 impl KhrPushDescriptorFn {
5174     #[inline]
name() -> &'static ::std::ffi::CStr5175     pub const fn name() -> &'static ::std::ffi::CStr {
5176         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_push_descriptor\0") }
5177     }
5178     pub const SPEC_VERSION: u32 = 2u32;
5179 }
5180 #[allow(non_camel_case_types)]
5181 pub type PFN_vkCmdPushDescriptorSetKHR = unsafe extern "system" fn(
5182     command_buffer: CommandBuffer,
5183     pipeline_bind_point: PipelineBindPoint,
5184     layout: PipelineLayout,
5185     set: u32,
5186     descriptor_write_count: u32,
5187     p_descriptor_writes: *const WriteDescriptorSet,
5188 );
5189 #[allow(non_camel_case_types)]
5190 pub type PFN_vkCmdPushDescriptorSetWithTemplateKHR = unsafe extern "system" fn(
5191     command_buffer: CommandBuffer,
5192     descriptor_update_template: DescriptorUpdateTemplate,
5193     layout: PipelineLayout,
5194     set: u32,
5195     p_data: *const c_void,
5196 );
5197 #[derive(Clone)]
5198 pub struct KhrPushDescriptorFn {
5199     pub cmd_push_descriptor_set_khr: PFN_vkCmdPushDescriptorSetKHR,
5200     pub cmd_push_descriptor_set_with_template_khr: PFN_vkCmdPushDescriptorSetWithTemplateKHR,
5201 }
5202 unsafe impl Send for KhrPushDescriptorFn {}
5203 unsafe impl Sync for KhrPushDescriptorFn {}
5204 impl KhrPushDescriptorFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5205     pub fn load<F>(mut _f: F) -> Self
5206     where
5207         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5208     {
5209         Self {
5210             cmd_push_descriptor_set_khr: unsafe {
5211                 unsafe extern "system" fn cmd_push_descriptor_set_khr(
5212                     _command_buffer: CommandBuffer,
5213                     _pipeline_bind_point: PipelineBindPoint,
5214                     _layout: PipelineLayout,
5215                     _set: u32,
5216                     _descriptor_write_count: u32,
5217                     _p_descriptor_writes: *const WriteDescriptorSet,
5218                 ) {
5219                     panic!(concat!(
5220                         "Unable to load ",
5221                         stringify!(cmd_push_descriptor_set_khr)
5222                     ))
5223                 }
5224                 let cname =
5225                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdPushDescriptorSetKHR\0");
5226                 let val = _f(cname);
5227                 if val.is_null() {
5228                     cmd_push_descriptor_set_khr
5229                 } else {
5230                     ::std::mem::transmute(val)
5231                 }
5232             },
5233             cmd_push_descriptor_set_with_template_khr: unsafe {
5234                 unsafe extern "system" fn cmd_push_descriptor_set_with_template_khr(
5235                     _command_buffer: CommandBuffer,
5236                     _descriptor_update_template: DescriptorUpdateTemplate,
5237                     _layout: PipelineLayout,
5238                     _set: u32,
5239                     _p_data: *const c_void,
5240                 ) {
5241                     panic!(concat!(
5242                         "Unable to load ",
5243                         stringify!(cmd_push_descriptor_set_with_template_khr)
5244                     ))
5245                 }
5246                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5247                     b"vkCmdPushDescriptorSetWithTemplateKHR\0",
5248                 );
5249                 let val = _f(cname);
5250                 if val.is_null() {
5251                     cmd_push_descriptor_set_with_template_khr
5252                 } else {
5253                     ::std::mem::transmute(val)
5254                 }
5255             },
5256         }
5257     }
5258 }
5259 #[doc = "Generated from 'VK_KHR_push_descriptor'"]
5260 impl DescriptorSetLayoutCreateFlags {
5261     #[doc = "Descriptors are pushed via flink:vkCmdPushDescriptorSetKHR"]
5262     pub const PUSH_DESCRIPTOR_KHR: Self = Self(0b1);
5263 }
5264 #[doc = "Generated from 'VK_KHR_push_descriptor'"]
5265 impl DescriptorUpdateTemplateType {
5266     #[doc = "Create descriptor update template for pushed descriptor updates"]
5267     pub const PUSH_DESCRIPTORS_KHR: Self = Self(1);
5268 }
5269 #[doc = "Generated from 'VK_KHR_push_descriptor'"]
5270 impl StructureType {
5271     pub const PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR: Self = Self(1_000_080_000);
5272 }
5273 impl ExtConditionalRenderingFn {
5274     #[inline]
name() -> &'static ::std::ffi::CStr5275     pub const fn name() -> &'static ::std::ffi::CStr {
5276         unsafe {
5277             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_conditional_rendering\0")
5278         }
5279     }
5280     pub const SPEC_VERSION: u32 = 2u32;
5281 }
5282 #[allow(non_camel_case_types)]
5283 pub type PFN_vkCmdBeginConditionalRenderingEXT = unsafe extern "system" fn(
5284     command_buffer: CommandBuffer,
5285     p_conditional_rendering_begin: *const ConditionalRenderingBeginInfoEXT,
5286 );
5287 #[allow(non_camel_case_types)]
5288 pub type PFN_vkCmdEndConditionalRenderingEXT =
5289     unsafe extern "system" fn(command_buffer: CommandBuffer);
5290 #[derive(Clone)]
5291 pub struct ExtConditionalRenderingFn {
5292     pub cmd_begin_conditional_rendering_ext: PFN_vkCmdBeginConditionalRenderingEXT,
5293     pub cmd_end_conditional_rendering_ext: PFN_vkCmdEndConditionalRenderingEXT,
5294 }
5295 unsafe impl Send for ExtConditionalRenderingFn {}
5296 unsafe impl Sync for ExtConditionalRenderingFn {}
5297 impl ExtConditionalRenderingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5298     pub fn load<F>(mut _f: F) -> Self
5299     where
5300         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5301     {
5302         Self {
5303             cmd_begin_conditional_rendering_ext: unsafe {
5304                 unsafe extern "system" fn cmd_begin_conditional_rendering_ext(
5305                     _command_buffer: CommandBuffer,
5306                     _p_conditional_rendering_begin: *const ConditionalRenderingBeginInfoEXT,
5307                 ) {
5308                     panic!(concat!(
5309                         "Unable to load ",
5310                         stringify!(cmd_begin_conditional_rendering_ext)
5311                     ))
5312                 }
5313                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5314                     b"vkCmdBeginConditionalRenderingEXT\0",
5315                 );
5316                 let val = _f(cname);
5317                 if val.is_null() {
5318                     cmd_begin_conditional_rendering_ext
5319                 } else {
5320                     ::std::mem::transmute(val)
5321                 }
5322             },
5323             cmd_end_conditional_rendering_ext: unsafe {
5324                 unsafe extern "system" fn cmd_end_conditional_rendering_ext(
5325                     _command_buffer: CommandBuffer,
5326                 ) {
5327                     panic!(concat!(
5328                         "Unable to load ",
5329                         stringify!(cmd_end_conditional_rendering_ext)
5330                     ))
5331                 }
5332                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5333                     b"vkCmdEndConditionalRenderingEXT\0",
5334                 );
5335                 let val = _f(cname);
5336                 if val.is_null() {
5337                     cmd_end_conditional_rendering_ext
5338                 } else {
5339                     ::std::mem::transmute(val)
5340                 }
5341             },
5342         }
5343     }
5344 }
5345 #[doc = "Generated from 'VK_EXT_conditional_rendering'"]
5346 impl AccessFlags {
5347     #[doc = "read access flag for reading conditional rendering predicate"]
5348     pub const CONDITIONAL_RENDERING_READ_EXT: Self = Self(0b1_0000_0000_0000_0000_0000);
5349 }
5350 #[doc = "Generated from 'VK_EXT_conditional_rendering'"]
5351 impl BufferUsageFlags {
5352     #[doc = "Specifies the buffer can be used as predicate in conditional rendering"]
5353     pub const CONDITIONAL_RENDERING_EXT: Self = Self(0b10_0000_0000);
5354 }
5355 #[doc = "Generated from 'VK_EXT_conditional_rendering'"]
5356 impl PipelineStageFlags {
5357     #[doc = "A pipeline stage for conditional rendering predicate fetch"]
5358     pub const CONDITIONAL_RENDERING_EXT: Self = Self(0b100_0000_0000_0000_0000);
5359 }
5360 #[doc = "Generated from 'VK_EXT_conditional_rendering'"]
5361 impl StructureType {
5362     pub const COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT: Self = Self(1_000_081_000);
5363     pub const PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT: Self = Self(1_000_081_001);
5364     pub const CONDITIONAL_RENDERING_BEGIN_INFO_EXT: Self = Self(1_000_081_002);
5365 }
5366 impl KhrShaderFloat16Int8Fn {
5367     #[inline]
name() -> &'static ::std::ffi::CStr5368     pub const fn name() -> &'static ::std::ffi::CStr {
5369         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_float16_int8\0") }
5370     }
5371     pub const SPEC_VERSION: u32 = 1u32;
5372 }
5373 #[derive(Clone)]
5374 pub struct KhrShaderFloat16Int8Fn {}
5375 unsafe impl Send for KhrShaderFloat16Int8Fn {}
5376 unsafe impl Sync for KhrShaderFloat16Int8Fn {}
5377 impl KhrShaderFloat16Int8Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5378     pub fn load<F>(mut _f: F) -> Self
5379     where
5380         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5381     {
5382         Self {}
5383     }
5384 }
5385 #[doc = "Generated from 'VK_KHR_shader_float16_int8'"]
5386 impl StructureType {
5387     pub const PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR: Self =
5388         Self::PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
5389     pub const PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR: Self =
5390         Self::PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
5391 }
5392 impl Khr16bitStorageFn {
5393     #[inline]
name() -> &'static ::std::ffi::CStr5394     pub const fn name() -> &'static ::std::ffi::CStr {
5395         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_16bit_storage\0") }
5396     }
5397     pub const SPEC_VERSION: u32 = 1u32;
5398 }
5399 #[derive(Clone)]
5400 pub struct Khr16bitStorageFn {}
5401 unsafe impl Send for Khr16bitStorageFn {}
5402 unsafe impl Sync for Khr16bitStorageFn {}
5403 impl Khr16bitStorageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5404     pub fn load<F>(mut _f: F) -> Self
5405     where
5406         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5407     {
5408         Self {}
5409     }
5410 }
5411 #[doc = "Generated from 'VK_KHR_16bit_storage'"]
5412 impl StructureType {
5413     pub const PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR: Self =
5414         Self::PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES;
5415 }
5416 impl KhrIncrementalPresentFn {
5417     #[inline]
name() -> &'static ::std::ffi::CStr5418     pub const fn name() -> &'static ::std::ffi::CStr {
5419         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_incremental_present\0") }
5420     }
5421     pub const SPEC_VERSION: u32 = 2u32;
5422 }
5423 #[derive(Clone)]
5424 pub struct KhrIncrementalPresentFn {}
5425 unsafe impl Send for KhrIncrementalPresentFn {}
5426 unsafe impl Sync for KhrIncrementalPresentFn {}
5427 impl KhrIncrementalPresentFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5428     pub fn load<F>(mut _f: F) -> Self
5429     where
5430         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5431     {
5432         Self {}
5433     }
5434 }
5435 #[doc = "Generated from 'VK_KHR_incremental_present'"]
5436 impl StructureType {
5437     pub const PRESENT_REGIONS_KHR: Self = Self(1_000_084_000);
5438 }
5439 impl KhrDescriptorUpdateTemplateFn {
5440     #[inline]
name() -> &'static ::std::ffi::CStr5441     pub const fn name() -> &'static ::std::ffi::CStr {
5442         unsafe {
5443             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_descriptor_update_template\0")
5444         }
5445     }
5446     pub const SPEC_VERSION: u32 = 1u32;
5447 }
5448 #[allow(non_camel_case_types)]
5449 pub type PFN_vkCreateDescriptorUpdateTemplate = unsafe extern "system" fn(
5450     device: Device,
5451     p_create_info: *const DescriptorUpdateTemplateCreateInfo,
5452     p_allocator: *const AllocationCallbacks,
5453     p_descriptor_update_template: *mut DescriptorUpdateTemplate,
5454 ) -> Result;
5455 #[allow(non_camel_case_types)]
5456 pub type PFN_vkDestroyDescriptorUpdateTemplate = unsafe extern "system" fn(
5457     device: Device,
5458     descriptor_update_template: DescriptorUpdateTemplate,
5459     p_allocator: *const AllocationCallbacks,
5460 );
5461 #[allow(non_camel_case_types)]
5462 pub type PFN_vkUpdateDescriptorSetWithTemplate = unsafe extern "system" fn(
5463     device: Device,
5464     descriptor_set: DescriptorSet,
5465     descriptor_update_template: DescriptorUpdateTemplate,
5466     p_data: *const c_void,
5467 );
5468 #[derive(Clone)]
5469 pub struct KhrDescriptorUpdateTemplateFn {
5470     pub create_descriptor_update_template_khr: PFN_vkCreateDescriptorUpdateTemplate,
5471     pub destroy_descriptor_update_template_khr: PFN_vkDestroyDescriptorUpdateTemplate,
5472     pub update_descriptor_set_with_template_khr: PFN_vkUpdateDescriptorSetWithTemplate,
5473     pub cmd_push_descriptor_set_with_template_khr:
5474         crate::vk::PFN_vkCmdPushDescriptorSetWithTemplateKHR,
5475 }
5476 unsafe impl Send for KhrDescriptorUpdateTemplateFn {}
5477 unsafe impl Sync for KhrDescriptorUpdateTemplateFn {}
5478 impl KhrDescriptorUpdateTemplateFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5479     pub fn load<F>(mut _f: F) -> Self
5480     where
5481         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5482     {
5483         Self {
5484             create_descriptor_update_template_khr: unsafe {
5485                 unsafe extern "system" fn create_descriptor_update_template_khr(
5486                     _device: Device,
5487                     _p_create_info: *const DescriptorUpdateTemplateCreateInfo,
5488                     _p_allocator: *const AllocationCallbacks,
5489                     _p_descriptor_update_template: *mut DescriptorUpdateTemplate,
5490                 ) -> Result {
5491                     panic!(concat!(
5492                         "Unable to load ",
5493                         stringify!(create_descriptor_update_template_khr)
5494                     ))
5495                 }
5496                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5497                     b"vkCreateDescriptorUpdateTemplateKHR\0",
5498                 );
5499                 let val = _f(cname);
5500                 if val.is_null() {
5501                     create_descriptor_update_template_khr
5502                 } else {
5503                     ::std::mem::transmute(val)
5504                 }
5505             },
5506             destroy_descriptor_update_template_khr: unsafe {
5507                 unsafe extern "system" fn destroy_descriptor_update_template_khr(
5508                     _device: Device,
5509                     _descriptor_update_template: DescriptorUpdateTemplate,
5510                     _p_allocator: *const AllocationCallbacks,
5511                 ) {
5512                     panic!(concat!(
5513                         "Unable to load ",
5514                         stringify!(destroy_descriptor_update_template_khr)
5515                     ))
5516                 }
5517                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5518                     b"vkDestroyDescriptorUpdateTemplateKHR\0",
5519                 );
5520                 let val = _f(cname);
5521                 if val.is_null() {
5522                     destroy_descriptor_update_template_khr
5523                 } else {
5524                     ::std::mem::transmute(val)
5525                 }
5526             },
5527             update_descriptor_set_with_template_khr: unsafe {
5528                 unsafe extern "system" fn update_descriptor_set_with_template_khr(
5529                     _device: Device,
5530                     _descriptor_set: DescriptorSet,
5531                     _descriptor_update_template: DescriptorUpdateTemplate,
5532                     _p_data: *const c_void,
5533                 ) {
5534                     panic!(concat!(
5535                         "Unable to load ",
5536                         stringify!(update_descriptor_set_with_template_khr)
5537                     ))
5538                 }
5539                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5540                     b"vkUpdateDescriptorSetWithTemplateKHR\0",
5541                 );
5542                 let val = _f(cname);
5543                 if val.is_null() {
5544                     update_descriptor_set_with_template_khr
5545                 } else {
5546                     ::std::mem::transmute(val)
5547                 }
5548             },
5549             cmd_push_descriptor_set_with_template_khr: unsafe {
5550                 unsafe extern "system" fn cmd_push_descriptor_set_with_template_khr(
5551                     _command_buffer: CommandBuffer,
5552                     _descriptor_update_template: DescriptorUpdateTemplate,
5553                     _layout: PipelineLayout,
5554                     _set: u32,
5555                     _p_data: *const c_void,
5556                 ) {
5557                     panic!(concat!(
5558                         "Unable to load ",
5559                         stringify!(cmd_push_descriptor_set_with_template_khr)
5560                     ))
5561                 }
5562                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5563                     b"vkCmdPushDescriptorSetWithTemplateKHR\0",
5564                 );
5565                 let val = _f(cname);
5566                 if val.is_null() {
5567                     cmd_push_descriptor_set_with_template_khr
5568                 } else {
5569                     ::std::mem::transmute(val)
5570                 }
5571             },
5572         }
5573     }
5574 }
5575 #[doc = "Generated from 'VK_KHR_descriptor_update_template'"]
5576 impl DebugReportObjectTypeEXT {
5577     pub const DESCRIPTOR_UPDATE_TEMPLATE_KHR: Self = Self::DESCRIPTOR_UPDATE_TEMPLATE;
5578 }
5579 #[doc = "Generated from 'VK_KHR_descriptor_update_template'"]
5580 impl DescriptorUpdateTemplateType {
5581     pub const DESCRIPTOR_SET_KHR: Self = Self::DESCRIPTOR_SET;
5582 }
5583 #[doc = "Generated from 'VK_KHR_descriptor_update_template'"]
5584 impl ObjectType {
5585     pub const DESCRIPTOR_UPDATE_TEMPLATE_KHR: Self = Self::DESCRIPTOR_UPDATE_TEMPLATE;
5586 }
5587 #[doc = "Generated from 'VK_KHR_descriptor_update_template'"]
5588 impl StructureType {
5589     pub const DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR: Self =
5590         Self::DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO;
5591 }
5592 impl NvxDeviceGeneratedCommandsFn {
5593     #[inline]
name() -> &'static ::std::ffi::CStr5594     pub const fn name() -> &'static ::std::ffi::CStr {
5595         unsafe {
5596             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NVX_device_generated_commands\0")
5597         }
5598     }
5599     pub const SPEC_VERSION: u32 = 3u32;
5600 }
5601 #[derive(Clone)]
5602 pub struct NvxDeviceGeneratedCommandsFn {}
5603 unsafe impl Send for NvxDeviceGeneratedCommandsFn {}
5604 unsafe impl Sync for NvxDeviceGeneratedCommandsFn {}
5605 impl NvxDeviceGeneratedCommandsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5606     pub fn load<F>(mut _f: F) -> Self
5607     where
5608         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5609     {
5610         Self {}
5611     }
5612 }
5613 impl NvClipSpaceWScalingFn {
5614     #[inline]
name() -> &'static ::std::ffi::CStr5615     pub const fn name() -> &'static ::std::ffi::CStr {
5616         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_clip_space_w_scaling\0") }
5617     }
5618     pub const SPEC_VERSION: u32 = 1u32;
5619 }
5620 #[allow(non_camel_case_types)]
5621 pub type PFN_vkCmdSetViewportWScalingNV = unsafe extern "system" fn(
5622     command_buffer: CommandBuffer,
5623     first_viewport: u32,
5624     viewport_count: u32,
5625     p_viewport_w_scalings: *const ViewportWScalingNV,
5626 );
5627 #[derive(Clone)]
5628 pub struct NvClipSpaceWScalingFn {
5629     pub cmd_set_viewport_w_scaling_nv: PFN_vkCmdSetViewportWScalingNV,
5630 }
5631 unsafe impl Send for NvClipSpaceWScalingFn {}
5632 unsafe impl Sync for NvClipSpaceWScalingFn {}
5633 impl NvClipSpaceWScalingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5634     pub fn load<F>(mut _f: F) -> Self
5635     where
5636         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5637     {
5638         Self {
5639             cmd_set_viewport_w_scaling_nv: unsafe {
5640                 unsafe extern "system" fn cmd_set_viewport_w_scaling_nv(
5641                     _command_buffer: CommandBuffer,
5642                     _first_viewport: u32,
5643                     _viewport_count: u32,
5644                     _p_viewport_w_scalings: *const ViewportWScalingNV,
5645                 ) {
5646                     panic!(concat!(
5647                         "Unable to load ",
5648                         stringify!(cmd_set_viewport_w_scaling_nv)
5649                     ))
5650                 }
5651                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5652                     b"vkCmdSetViewportWScalingNV\0",
5653                 );
5654                 let val = _f(cname);
5655                 if val.is_null() {
5656                     cmd_set_viewport_w_scaling_nv
5657                 } else {
5658                     ::std::mem::transmute(val)
5659                 }
5660             },
5661         }
5662     }
5663 }
5664 #[doc = "Generated from 'VK_NV_clip_space_w_scaling'"]
5665 impl DynamicState {
5666     pub const VIEWPORT_W_SCALING_NV: Self = Self(1_000_087_000);
5667 }
5668 #[doc = "Generated from 'VK_NV_clip_space_w_scaling'"]
5669 impl StructureType {
5670     pub const PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV: Self = Self(1_000_087_000);
5671 }
5672 impl ExtDirectModeDisplayFn {
5673     #[inline]
name() -> &'static ::std::ffi::CStr5674     pub const fn name() -> &'static ::std::ffi::CStr {
5675         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_direct_mode_display\0") }
5676     }
5677     pub const SPEC_VERSION: u32 = 1u32;
5678 }
5679 #[allow(non_camel_case_types)]
5680 pub type PFN_vkReleaseDisplayEXT =
5681     unsafe extern "system" fn(physical_device: PhysicalDevice, display: DisplayKHR) -> Result;
5682 #[derive(Clone)]
5683 pub struct ExtDirectModeDisplayFn {
5684     pub release_display_ext: PFN_vkReleaseDisplayEXT,
5685 }
5686 unsafe impl Send for ExtDirectModeDisplayFn {}
5687 unsafe impl Sync for ExtDirectModeDisplayFn {}
5688 impl ExtDirectModeDisplayFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5689     pub fn load<F>(mut _f: F) -> Self
5690     where
5691         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5692     {
5693         Self {
5694             release_display_ext: unsafe {
5695                 unsafe extern "system" fn release_display_ext(
5696                     _physical_device: PhysicalDevice,
5697                     _display: DisplayKHR,
5698                 ) -> Result {
5699                     panic!(concat!("Unable to load ", stringify!(release_display_ext)))
5700                 }
5701                 let cname =
5702                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkReleaseDisplayEXT\0");
5703                 let val = _f(cname);
5704                 if val.is_null() {
5705                     release_display_ext
5706                 } else {
5707                     ::std::mem::transmute(val)
5708                 }
5709             },
5710         }
5711     }
5712 }
5713 impl ExtAcquireXlibDisplayFn {
5714     #[inline]
name() -> &'static ::std::ffi::CStr5715     pub const fn name() -> &'static ::std::ffi::CStr {
5716         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_acquire_xlib_display\0") }
5717     }
5718     pub const SPEC_VERSION: u32 = 1u32;
5719 }
5720 #[allow(non_camel_case_types)]
5721 pub type PFN_vkAcquireXlibDisplayEXT = unsafe extern "system" fn(
5722     physical_device: PhysicalDevice,
5723     dpy: *mut Display,
5724     display: DisplayKHR,
5725 ) -> Result;
5726 #[allow(non_camel_case_types)]
5727 pub type PFN_vkGetRandROutputDisplayEXT = unsafe extern "system" fn(
5728     physical_device: PhysicalDevice,
5729     dpy: *mut Display,
5730     rr_output: RROutput,
5731     p_display: *mut DisplayKHR,
5732 ) -> Result;
5733 #[derive(Clone)]
5734 pub struct ExtAcquireXlibDisplayFn {
5735     pub acquire_xlib_display_ext: PFN_vkAcquireXlibDisplayEXT,
5736     pub get_rand_r_output_display_ext: PFN_vkGetRandROutputDisplayEXT,
5737 }
5738 unsafe impl Send for ExtAcquireXlibDisplayFn {}
5739 unsafe impl Sync for ExtAcquireXlibDisplayFn {}
5740 impl ExtAcquireXlibDisplayFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5741     pub fn load<F>(mut _f: F) -> Self
5742     where
5743         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5744     {
5745         Self {
5746             acquire_xlib_display_ext: unsafe {
5747                 unsafe extern "system" fn acquire_xlib_display_ext(
5748                     _physical_device: PhysicalDevice,
5749                     _dpy: *mut Display,
5750                     _display: DisplayKHR,
5751                 ) -> Result {
5752                     panic!(concat!(
5753                         "Unable to load ",
5754                         stringify!(acquire_xlib_display_ext)
5755                     ))
5756                 }
5757                 let cname =
5758                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireXlibDisplayEXT\0");
5759                 let val = _f(cname);
5760                 if val.is_null() {
5761                     acquire_xlib_display_ext
5762                 } else {
5763                     ::std::mem::transmute(val)
5764                 }
5765             },
5766             get_rand_r_output_display_ext: unsafe {
5767                 unsafe extern "system" fn get_rand_r_output_display_ext(
5768                     _physical_device: PhysicalDevice,
5769                     _dpy: *mut Display,
5770                     _rr_output: RROutput,
5771                     _p_display: *mut DisplayKHR,
5772                 ) -> Result {
5773                     panic!(concat!(
5774                         "Unable to load ",
5775                         stringify!(get_rand_r_output_display_ext)
5776                     ))
5777                 }
5778                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5779                     b"vkGetRandROutputDisplayEXT\0",
5780                 );
5781                 let val = _f(cname);
5782                 if val.is_null() {
5783                     get_rand_r_output_display_ext
5784                 } else {
5785                     ::std::mem::transmute(val)
5786                 }
5787             },
5788         }
5789     }
5790 }
5791 impl ExtDisplaySurfaceCounterFn {
5792     #[inline]
name() -> &'static ::std::ffi::CStr5793     pub const fn name() -> &'static ::std::ffi::CStr {
5794         unsafe {
5795             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_display_surface_counter\0")
5796         }
5797     }
5798     pub const SPEC_VERSION: u32 = 1u32;
5799 }
5800 #[allow(non_camel_case_types)]
5801 pub type PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = unsafe extern "system" fn(
5802     physical_device: PhysicalDevice,
5803     surface: SurfaceKHR,
5804     p_surface_capabilities: *mut SurfaceCapabilities2EXT,
5805 ) -> Result;
5806 #[derive(Clone)]
5807 pub struct ExtDisplaySurfaceCounterFn {
5808     pub get_physical_device_surface_capabilities2_ext:
5809         PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT,
5810 }
5811 unsafe impl Send for ExtDisplaySurfaceCounterFn {}
5812 unsafe impl Sync for ExtDisplaySurfaceCounterFn {}
5813 impl ExtDisplaySurfaceCounterFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5814     pub fn load<F>(mut _f: F) -> Self
5815     where
5816         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5817     {
5818         Self {
5819             get_physical_device_surface_capabilities2_ext: unsafe {
5820                 unsafe extern "system" fn get_physical_device_surface_capabilities2_ext(
5821                     _physical_device: PhysicalDevice,
5822                     _surface: SurfaceKHR,
5823                     _p_surface_capabilities: *mut SurfaceCapabilities2EXT,
5824                 ) -> Result {
5825                     panic!(concat!(
5826                         "Unable to load ",
5827                         stringify!(get_physical_device_surface_capabilities2_ext)
5828                     ))
5829                 }
5830                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5831                     b"vkGetPhysicalDeviceSurfaceCapabilities2EXT\0",
5832                 );
5833                 let val = _f(cname);
5834                 if val.is_null() {
5835                     get_physical_device_surface_capabilities2_ext
5836                 } else {
5837                     ::std::mem::transmute(val)
5838                 }
5839             },
5840         }
5841     }
5842 }
5843 #[doc = "Generated from 'VK_EXT_display_surface_counter'"]
5844 impl StructureType {
5845     pub const SURFACE_CAPABILITIES_2_EXT: Self = Self(1_000_090_000);
5846 }
5847 impl ExtDisplayControlFn {
5848     #[inline]
name() -> &'static ::std::ffi::CStr5849     pub const fn name() -> &'static ::std::ffi::CStr {
5850         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_display_control\0") }
5851     }
5852     pub const SPEC_VERSION: u32 = 1u32;
5853 }
5854 #[allow(non_camel_case_types)]
5855 pub type PFN_vkDisplayPowerControlEXT = unsafe extern "system" fn(
5856     device: Device,
5857     display: DisplayKHR,
5858     p_display_power_info: *const DisplayPowerInfoEXT,
5859 ) -> Result;
5860 #[allow(non_camel_case_types)]
5861 pub type PFN_vkRegisterDeviceEventEXT = unsafe extern "system" fn(
5862     device: Device,
5863     p_device_event_info: *const DeviceEventInfoEXT,
5864     p_allocator: *const AllocationCallbacks,
5865     p_fence: *mut Fence,
5866 ) -> Result;
5867 #[allow(non_camel_case_types)]
5868 pub type PFN_vkRegisterDisplayEventEXT = unsafe extern "system" fn(
5869     device: Device,
5870     display: DisplayKHR,
5871     p_display_event_info: *const DisplayEventInfoEXT,
5872     p_allocator: *const AllocationCallbacks,
5873     p_fence: *mut Fence,
5874 ) -> Result;
5875 #[allow(non_camel_case_types)]
5876 pub type PFN_vkGetSwapchainCounterEXT = unsafe extern "system" fn(
5877     device: Device,
5878     swapchain: SwapchainKHR,
5879     counter: SurfaceCounterFlagsEXT,
5880     p_counter_value: *mut u64,
5881 ) -> Result;
5882 #[derive(Clone)]
5883 pub struct ExtDisplayControlFn {
5884     pub display_power_control_ext: PFN_vkDisplayPowerControlEXT,
5885     pub register_device_event_ext: PFN_vkRegisterDeviceEventEXT,
5886     pub register_display_event_ext: PFN_vkRegisterDisplayEventEXT,
5887     pub get_swapchain_counter_ext: PFN_vkGetSwapchainCounterEXT,
5888 }
5889 unsafe impl Send for ExtDisplayControlFn {}
5890 unsafe impl Sync for ExtDisplayControlFn {}
5891 impl ExtDisplayControlFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5892     pub fn load<F>(mut _f: F) -> Self
5893     where
5894         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5895     {
5896         Self {
5897             display_power_control_ext: unsafe {
5898                 unsafe extern "system" fn display_power_control_ext(
5899                     _device: Device,
5900                     _display: DisplayKHR,
5901                     _p_display_power_info: *const DisplayPowerInfoEXT,
5902                 ) -> Result {
5903                     panic!(concat!(
5904                         "Unable to load ",
5905                         stringify!(display_power_control_ext)
5906                     ))
5907                 }
5908                 let cname =
5909                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDisplayPowerControlEXT\0");
5910                 let val = _f(cname);
5911                 if val.is_null() {
5912                     display_power_control_ext
5913                 } else {
5914                     ::std::mem::transmute(val)
5915                 }
5916             },
5917             register_device_event_ext: unsafe {
5918                 unsafe extern "system" fn register_device_event_ext(
5919                     _device: Device,
5920                     _p_device_event_info: *const DeviceEventInfoEXT,
5921                     _p_allocator: *const AllocationCallbacks,
5922                     _p_fence: *mut Fence,
5923                 ) -> Result {
5924                     panic!(concat!(
5925                         "Unable to load ",
5926                         stringify!(register_device_event_ext)
5927                     ))
5928                 }
5929                 let cname =
5930                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkRegisterDeviceEventEXT\0");
5931                 let val = _f(cname);
5932                 if val.is_null() {
5933                     register_device_event_ext
5934                 } else {
5935                     ::std::mem::transmute(val)
5936                 }
5937             },
5938             register_display_event_ext: unsafe {
5939                 unsafe extern "system" fn register_display_event_ext(
5940                     _device: Device,
5941                     _display: DisplayKHR,
5942                     _p_display_event_info: *const DisplayEventInfoEXT,
5943                     _p_allocator: *const AllocationCallbacks,
5944                     _p_fence: *mut Fence,
5945                 ) -> Result {
5946                     panic!(concat!(
5947                         "Unable to load ",
5948                         stringify!(register_display_event_ext)
5949                     ))
5950                 }
5951                 let cname =
5952                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkRegisterDisplayEventEXT\0");
5953                 let val = _f(cname);
5954                 if val.is_null() {
5955                     register_display_event_ext
5956                 } else {
5957                     ::std::mem::transmute(val)
5958                 }
5959             },
5960             get_swapchain_counter_ext: unsafe {
5961                 unsafe extern "system" fn get_swapchain_counter_ext(
5962                     _device: Device,
5963                     _swapchain: SwapchainKHR,
5964                     _counter: SurfaceCounterFlagsEXT,
5965                     _p_counter_value: *mut u64,
5966                 ) -> Result {
5967                     panic!(concat!(
5968                         "Unable to load ",
5969                         stringify!(get_swapchain_counter_ext)
5970                     ))
5971                 }
5972                 let cname =
5973                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetSwapchainCounterEXT\0");
5974                 let val = _f(cname);
5975                 if val.is_null() {
5976                     get_swapchain_counter_ext
5977                 } else {
5978                     ::std::mem::transmute(val)
5979                 }
5980             },
5981         }
5982     }
5983 }
5984 #[doc = "Generated from 'VK_EXT_display_control'"]
5985 impl StructureType {
5986     pub const DISPLAY_POWER_INFO_EXT: Self = Self(1_000_091_000);
5987     pub const DEVICE_EVENT_INFO_EXT: Self = Self(1_000_091_001);
5988     pub const DISPLAY_EVENT_INFO_EXT: Self = Self(1_000_091_002);
5989     pub const SWAPCHAIN_COUNTER_CREATE_INFO_EXT: Self = Self(1_000_091_003);
5990 }
5991 impl GoogleDisplayTimingFn {
5992     #[inline]
name() -> &'static ::std::ffi::CStr5993     pub const fn name() -> &'static ::std::ffi::CStr {
5994         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_display_timing\0") }
5995     }
5996     pub const SPEC_VERSION: u32 = 1u32;
5997 }
5998 #[allow(non_camel_case_types)]
5999 pub type PFN_vkGetRefreshCycleDurationGOOGLE = unsafe extern "system" fn(
6000     device: Device,
6001     swapchain: SwapchainKHR,
6002     p_display_timing_properties: *mut RefreshCycleDurationGOOGLE,
6003 ) -> Result;
6004 #[allow(non_camel_case_types)]
6005 pub type PFN_vkGetPastPresentationTimingGOOGLE = unsafe extern "system" fn(
6006     device: Device,
6007     swapchain: SwapchainKHR,
6008     p_presentation_timing_count: *mut u32,
6009     p_presentation_timings: *mut PastPresentationTimingGOOGLE,
6010 ) -> Result;
6011 #[derive(Clone)]
6012 pub struct GoogleDisplayTimingFn {
6013     pub get_refresh_cycle_duration_google: PFN_vkGetRefreshCycleDurationGOOGLE,
6014     pub get_past_presentation_timing_google: PFN_vkGetPastPresentationTimingGOOGLE,
6015 }
6016 unsafe impl Send for GoogleDisplayTimingFn {}
6017 unsafe impl Sync for GoogleDisplayTimingFn {}
6018 impl GoogleDisplayTimingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6019     pub fn load<F>(mut _f: F) -> Self
6020     where
6021         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6022     {
6023         Self {
6024             get_refresh_cycle_duration_google: unsafe {
6025                 unsafe extern "system" fn get_refresh_cycle_duration_google(
6026                     _device: Device,
6027                     _swapchain: SwapchainKHR,
6028                     _p_display_timing_properties: *mut RefreshCycleDurationGOOGLE,
6029                 ) -> Result {
6030                     panic!(concat!(
6031                         "Unable to load ",
6032                         stringify!(get_refresh_cycle_duration_google)
6033                     ))
6034                 }
6035                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6036                     b"vkGetRefreshCycleDurationGOOGLE\0",
6037                 );
6038                 let val = _f(cname);
6039                 if val.is_null() {
6040                     get_refresh_cycle_duration_google
6041                 } else {
6042                     ::std::mem::transmute(val)
6043                 }
6044             },
6045             get_past_presentation_timing_google: unsafe {
6046                 unsafe extern "system" fn get_past_presentation_timing_google(
6047                     _device: Device,
6048                     _swapchain: SwapchainKHR,
6049                     _p_presentation_timing_count: *mut u32,
6050                     _p_presentation_timings: *mut PastPresentationTimingGOOGLE,
6051                 ) -> Result {
6052                     panic!(concat!(
6053                         "Unable to load ",
6054                         stringify!(get_past_presentation_timing_google)
6055                     ))
6056                 }
6057                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6058                     b"vkGetPastPresentationTimingGOOGLE\0",
6059                 );
6060                 let val = _f(cname);
6061                 if val.is_null() {
6062                     get_past_presentation_timing_google
6063                 } else {
6064                     ::std::mem::transmute(val)
6065                 }
6066             },
6067         }
6068     }
6069 }
6070 #[doc = "Generated from 'VK_GOOGLE_display_timing'"]
6071 impl StructureType {
6072     pub const PRESENT_TIMES_INFO_GOOGLE: Self = Self(1_000_092_000);
6073 }
6074 impl ReservedDoNotUse94Fn {
6075     #[inline]
name() -> &'static ::std::ffi::CStr6076     pub const fn name() -> &'static ::std::ffi::CStr {
6077         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_RESERVED_do_not_use_94\0") }
6078     }
6079     pub const SPEC_VERSION: u32 = 1u32;
6080 }
6081 #[derive(Clone)]
6082 pub struct ReservedDoNotUse94Fn {}
6083 unsafe impl Send for ReservedDoNotUse94Fn {}
6084 unsafe impl Sync for ReservedDoNotUse94Fn {}
6085 impl ReservedDoNotUse94Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6086     pub fn load<F>(mut _f: F) -> Self
6087     where
6088         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6089     {
6090         Self {}
6091     }
6092 }
6093 impl NvSampleMaskOverrideCoverageFn {
6094     #[inline]
name() -> &'static ::std::ffi::CStr6095     pub const fn name() -> &'static ::std::ffi::CStr {
6096         unsafe {
6097             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6098                 b"VK_NV_sample_mask_override_coverage\0",
6099             )
6100         }
6101     }
6102     pub const SPEC_VERSION: u32 = 1u32;
6103 }
6104 #[derive(Clone)]
6105 pub struct NvSampleMaskOverrideCoverageFn {}
6106 unsafe impl Send for NvSampleMaskOverrideCoverageFn {}
6107 unsafe impl Sync for NvSampleMaskOverrideCoverageFn {}
6108 impl NvSampleMaskOverrideCoverageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6109     pub fn load<F>(mut _f: F) -> Self
6110     where
6111         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6112     {
6113         Self {}
6114     }
6115 }
6116 impl NvGeometryShaderPassthroughFn {
6117     #[inline]
name() -> &'static ::std::ffi::CStr6118     pub const fn name() -> &'static ::std::ffi::CStr {
6119         unsafe {
6120             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_geometry_shader_passthrough\0")
6121         }
6122     }
6123     pub const SPEC_VERSION: u32 = 1u32;
6124 }
6125 #[derive(Clone)]
6126 pub struct NvGeometryShaderPassthroughFn {}
6127 unsafe impl Send for NvGeometryShaderPassthroughFn {}
6128 unsafe impl Sync for NvGeometryShaderPassthroughFn {}
6129 impl NvGeometryShaderPassthroughFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6130     pub fn load<F>(mut _f: F) -> Self
6131     where
6132         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6133     {
6134         Self {}
6135     }
6136 }
6137 impl NvViewportArray2Fn {
6138     #[inline]
name() -> &'static ::std::ffi::CStr6139     pub const fn name() -> &'static ::std::ffi::CStr {
6140         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_viewport_array2\0") }
6141     }
6142     pub const SPEC_VERSION: u32 = 1u32;
6143 }
6144 #[derive(Clone)]
6145 pub struct NvViewportArray2Fn {}
6146 unsafe impl Send for NvViewportArray2Fn {}
6147 unsafe impl Sync for NvViewportArray2Fn {}
6148 impl NvViewportArray2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6149     pub fn load<F>(mut _f: F) -> Self
6150     where
6151         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6152     {
6153         Self {}
6154     }
6155 }
6156 impl NvxMultiviewPerViewAttributesFn {
6157     #[inline]
name() -> &'static ::std::ffi::CStr6158     pub const fn name() -> &'static ::std::ffi::CStr {
6159         unsafe {
6160             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6161                 b"VK_NVX_multiview_per_view_attributes\0",
6162             )
6163         }
6164     }
6165     pub const SPEC_VERSION: u32 = 1u32;
6166 }
6167 #[derive(Clone)]
6168 pub struct NvxMultiviewPerViewAttributesFn {}
6169 unsafe impl Send for NvxMultiviewPerViewAttributesFn {}
6170 unsafe impl Sync for NvxMultiviewPerViewAttributesFn {}
6171 impl NvxMultiviewPerViewAttributesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6172     pub fn load<F>(mut _f: F) -> Self
6173     where
6174         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6175     {
6176         Self {}
6177     }
6178 }
6179 #[doc = "Generated from 'VK_NVX_multiview_per_view_attributes'"]
6180 impl StructureType {
6181     pub const PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX: Self =
6182         Self(1_000_097_000);
6183 }
6184 #[doc = "Generated from 'VK_NVX_multiview_per_view_attributes'"]
6185 impl SubpassDescriptionFlags {
6186     pub const PER_VIEW_ATTRIBUTES_NVX: Self = Self(0b1);
6187     pub const PER_VIEW_POSITION_X_ONLY_NVX: Self = Self(0b10);
6188 }
6189 impl NvViewportSwizzleFn {
6190     #[inline]
name() -> &'static ::std::ffi::CStr6191     pub const fn name() -> &'static ::std::ffi::CStr {
6192         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_viewport_swizzle\0") }
6193     }
6194     pub const SPEC_VERSION: u32 = 1u32;
6195 }
6196 #[derive(Clone)]
6197 pub struct NvViewportSwizzleFn {}
6198 unsafe impl Send for NvViewportSwizzleFn {}
6199 unsafe impl Sync for NvViewportSwizzleFn {}
6200 impl NvViewportSwizzleFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6201     pub fn load<F>(mut _f: F) -> Self
6202     where
6203         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6204     {
6205         Self {}
6206     }
6207 }
6208 #[doc = "Generated from 'VK_NV_viewport_swizzle'"]
6209 impl StructureType {
6210     pub const PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV: Self = Self(1_000_098_000);
6211 }
6212 impl ExtDiscardRectanglesFn {
6213     #[inline]
name() -> &'static ::std::ffi::CStr6214     pub const fn name() -> &'static ::std::ffi::CStr {
6215         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_discard_rectangles\0") }
6216     }
6217     pub const SPEC_VERSION: u32 = 2u32;
6218 }
6219 #[allow(non_camel_case_types)]
6220 pub type PFN_vkCmdSetDiscardRectangleEXT = unsafe extern "system" fn(
6221     command_buffer: CommandBuffer,
6222     first_discard_rectangle: u32,
6223     discard_rectangle_count: u32,
6224     p_discard_rectangles: *const Rect2D,
6225 );
6226 #[allow(non_camel_case_types)]
6227 pub type PFN_vkCmdSetDiscardRectangleEnableEXT =
6228     unsafe extern "system" fn(command_buffer: CommandBuffer, discard_rectangle_enable: Bool32);
6229 #[allow(non_camel_case_types)]
6230 pub type PFN_vkCmdSetDiscardRectangleModeEXT = unsafe extern "system" fn(
6231     command_buffer: CommandBuffer,
6232     discard_rectangle_mode: DiscardRectangleModeEXT,
6233 );
6234 #[derive(Clone)]
6235 pub struct ExtDiscardRectanglesFn {
6236     pub cmd_set_discard_rectangle_ext: PFN_vkCmdSetDiscardRectangleEXT,
6237     pub cmd_set_discard_rectangle_enable_ext: PFN_vkCmdSetDiscardRectangleEnableEXT,
6238     pub cmd_set_discard_rectangle_mode_ext: PFN_vkCmdSetDiscardRectangleModeEXT,
6239 }
6240 unsafe impl Send for ExtDiscardRectanglesFn {}
6241 unsafe impl Sync for ExtDiscardRectanglesFn {}
6242 impl ExtDiscardRectanglesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6243     pub fn load<F>(mut _f: F) -> Self
6244     where
6245         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6246     {
6247         Self {
6248             cmd_set_discard_rectangle_ext: unsafe {
6249                 unsafe extern "system" fn cmd_set_discard_rectangle_ext(
6250                     _command_buffer: CommandBuffer,
6251                     _first_discard_rectangle: u32,
6252                     _discard_rectangle_count: u32,
6253                     _p_discard_rectangles: *const Rect2D,
6254                 ) {
6255                     panic!(concat!(
6256                         "Unable to load ",
6257                         stringify!(cmd_set_discard_rectangle_ext)
6258                     ))
6259                 }
6260                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6261                     b"vkCmdSetDiscardRectangleEXT\0",
6262                 );
6263                 let val = _f(cname);
6264                 if val.is_null() {
6265                     cmd_set_discard_rectangle_ext
6266                 } else {
6267                     ::std::mem::transmute(val)
6268                 }
6269             },
6270             cmd_set_discard_rectangle_enable_ext: unsafe {
6271                 unsafe extern "system" fn cmd_set_discard_rectangle_enable_ext(
6272                     _command_buffer: CommandBuffer,
6273                     _discard_rectangle_enable: Bool32,
6274                 ) {
6275                     panic!(concat!(
6276                         "Unable to load ",
6277                         stringify!(cmd_set_discard_rectangle_enable_ext)
6278                     ))
6279                 }
6280                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6281                     b"vkCmdSetDiscardRectangleEnableEXT\0",
6282                 );
6283                 let val = _f(cname);
6284                 if val.is_null() {
6285                     cmd_set_discard_rectangle_enable_ext
6286                 } else {
6287                     ::std::mem::transmute(val)
6288                 }
6289             },
6290             cmd_set_discard_rectangle_mode_ext: unsafe {
6291                 unsafe extern "system" fn cmd_set_discard_rectangle_mode_ext(
6292                     _command_buffer: CommandBuffer,
6293                     _discard_rectangle_mode: DiscardRectangleModeEXT,
6294                 ) {
6295                     panic!(concat!(
6296                         "Unable to load ",
6297                         stringify!(cmd_set_discard_rectangle_mode_ext)
6298                     ))
6299                 }
6300                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6301                     b"vkCmdSetDiscardRectangleModeEXT\0",
6302                 );
6303                 let val = _f(cname);
6304                 if val.is_null() {
6305                     cmd_set_discard_rectangle_mode_ext
6306                 } else {
6307                     ::std::mem::transmute(val)
6308                 }
6309             },
6310         }
6311     }
6312 }
6313 #[doc = "Generated from 'VK_EXT_discard_rectangles'"]
6314 impl DynamicState {
6315     pub const DISCARD_RECTANGLE_EXT: Self = Self(1_000_099_000);
6316     pub const DISCARD_RECTANGLE_ENABLE_EXT: Self = Self(1_000_099_001);
6317     pub const DISCARD_RECTANGLE_MODE_EXT: Self = Self(1_000_099_002);
6318 }
6319 #[doc = "Generated from 'VK_EXT_discard_rectangles'"]
6320 impl StructureType {
6321     pub const PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT: Self = Self(1_000_099_000);
6322     pub const PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT: Self = Self(1_000_099_001);
6323 }
6324 impl NvExtension101Fn {
6325     #[inline]
name() -> &'static ::std::ffi::CStr6326     pub const fn name() -> &'static ::std::ffi::CStr {
6327         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_101\0") }
6328     }
6329     pub const SPEC_VERSION: u32 = 0u32;
6330 }
6331 #[derive(Clone)]
6332 pub struct NvExtension101Fn {}
6333 unsafe impl Send for NvExtension101Fn {}
6334 unsafe impl Sync for NvExtension101Fn {}
6335 impl NvExtension101Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6336     pub fn load<F>(mut _f: F) -> Self
6337     where
6338         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6339     {
6340         Self {}
6341     }
6342 }
6343 impl ExtConservativeRasterizationFn {
6344     #[inline]
name() -> &'static ::std::ffi::CStr6345     pub const fn name() -> &'static ::std::ffi::CStr {
6346         unsafe {
6347             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_conservative_rasterization\0")
6348         }
6349     }
6350     pub const SPEC_VERSION: u32 = 1u32;
6351 }
6352 #[derive(Clone)]
6353 pub struct ExtConservativeRasterizationFn {}
6354 unsafe impl Send for ExtConservativeRasterizationFn {}
6355 unsafe impl Sync for ExtConservativeRasterizationFn {}
6356 impl ExtConservativeRasterizationFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6357     pub fn load<F>(mut _f: F) -> Self
6358     where
6359         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6360     {
6361         Self {}
6362     }
6363 }
6364 #[doc = "Generated from 'VK_EXT_conservative_rasterization'"]
6365 impl StructureType {
6366     pub const PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT: Self = Self(1_000_101_000);
6367     pub const PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT: Self = Self(1_000_101_001);
6368 }
6369 impl ExtDepthClipEnableFn {
6370     #[inline]
name() -> &'static ::std::ffi::CStr6371     pub const fn name() -> &'static ::std::ffi::CStr {
6372         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_depth_clip_enable\0") }
6373     }
6374     pub const SPEC_VERSION: u32 = 1u32;
6375 }
6376 #[derive(Clone)]
6377 pub struct ExtDepthClipEnableFn {}
6378 unsafe impl Send for ExtDepthClipEnableFn {}
6379 unsafe impl Sync for ExtDepthClipEnableFn {}
6380 impl ExtDepthClipEnableFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6381     pub fn load<F>(mut _f: F) -> Self
6382     where
6383         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6384     {
6385         Self {}
6386     }
6387 }
6388 #[doc = "Generated from 'VK_EXT_depth_clip_enable'"]
6389 impl StructureType {
6390     pub const PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: Self = Self(1_000_102_000);
6391     pub const PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: Self = Self(1_000_102_001);
6392 }
6393 impl NvExtension104Fn {
6394     #[inline]
name() -> &'static ::std::ffi::CStr6395     pub const fn name() -> &'static ::std::ffi::CStr {
6396         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_104\0") }
6397     }
6398     pub const SPEC_VERSION: u32 = 0u32;
6399 }
6400 #[derive(Clone)]
6401 pub struct NvExtension104Fn {}
6402 unsafe impl Send for NvExtension104Fn {}
6403 unsafe impl Sync for NvExtension104Fn {}
6404 impl NvExtension104Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6405     pub fn load<F>(mut _f: F) -> Self
6406     where
6407         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6408     {
6409         Self {}
6410     }
6411 }
6412 #[doc = "Generated from 'VK_NV_extension_104'"]
6413 impl PrivateDataSlotCreateFlags {
6414     pub const RESERVED_0_NV: Self = Self(0b1);
6415 }
6416 impl ExtSwapchainColorspaceFn {
6417     #[inline]
name() -> &'static ::std::ffi::CStr6418     pub const fn name() -> &'static ::std::ffi::CStr {
6419         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_swapchain_colorspace\0") }
6420     }
6421     pub const SPEC_VERSION: u32 = 4u32;
6422 }
6423 #[derive(Clone)]
6424 pub struct ExtSwapchainColorspaceFn {}
6425 unsafe impl Send for ExtSwapchainColorspaceFn {}
6426 unsafe impl Sync for ExtSwapchainColorspaceFn {}
6427 impl ExtSwapchainColorspaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6428     pub fn load<F>(mut _f: F) -> Self
6429     where
6430         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6431     {
6432         Self {}
6433     }
6434 }
6435 #[doc = "Generated from 'VK_EXT_swapchain_colorspace'"]
6436 impl ColorSpaceKHR {
6437     pub const DISPLAY_P3_NONLINEAR_EXT: Self = Self(1_000_104_001);
6438     pub const EXTENDED_SRGB_LINEAR_EXT: Self = Self(1_000_104_002);
6439     pub const DISPLAY_P3_LINEAR_EXT: Self = Self(1_000_104_003);
6440     pub const DCI_P3_NONLINEAR_EXT: Self = Self(1_000_104_004);
6441     pub const BT709_LINEAR_EXT: Self = Self(1_000_104_005);
6442     pub const BT709_NONLINEAR_EXT: Self = Self(1_000_104_006);
6443     pub const BT2020_LINEAR_EXT: Self = Self(1_000_104_007);
6444     pub const HDR10_ST2084_EXT: Self = Self(1_000_104_008);
6445     pub const DOLBYVISION_EXT: Self = Self(1_000_104_009);
6446     pub const HDR10_HLG_EXT: Self = Self(1_000_104_010);
6447     pub const ADOBERGB_LINEAR_EXT: Self = Self(1_000_104_011);
6448     pub const ADOBERGB_NONLINEAR_EXT: Self = Self(1_000_104_012);
6449     pub const PASS_THROUGH_EXT: Self = Self(1_000_104_013);
6450     pub const EXTENDED_SRGB_NONLINEAR_EXT: Self = Self(1_000_104_014);
6451 }
6452 impl ExtHdrMetadataFn {
6453     #[inline]
name() -> &'static ::std::ffi::CStr6454     pub const fn name() -> &'static ::std::ffi::CStr {
6455         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_hdr_metadata\0") }
6456     }
6457     pub const SPEC_VERSION: u32 = 2u32;
6458 }
6459 #[allow(non_camel_case_types)]
6460 pub type PFN_vkSetHdrMetadataEXT = unsafe extern "system" fn(
6461     device: Device,
6462     swapchain_count: u32,
6463     p_swapchains: *const SwapchainKHR,
6464     p_metadata: *const HdrMetadataEXT,
6465 );
6466 #[derive(Clone)]
6467 pub struct ExtHdrMetadataFn {
6468     pub set_hdr_metadata_ext: PFN_vkSetHdrMetadataEXT,
6469 }
6470 unsafe impl Send for ExtHdrMetadataFn {}
6471 unsafe impl Sync for ExtHdrMetadataFn {}
6472 impl ExtHdrMetadataFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6473     pub fn load<F>(mut _f: F) -> Self
6474     where
6475         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6476     {
6477         Self {
6478             set_hdr_metadata_ext: unsafe {
6479                 unsafe extern "system" fn set_hdr_metadata_ext(
6480                     _device: Device,
6481                     _swapchain_count: u32,
6482                     _p_swapchains: *const SwapchainKHR,
6483                     _p_metadata: *const HdrMetadataEXT,
6484                 ) {
6485                     panic!(concat!("Unable to load ", stringify!(set_hdr_metadata_ext)))
6486                 }
6487                 let cname =
6488                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkSetHdrMetadataEXT\0");
6489                 let val = _f(cname);
6490                 if val.is_null() {
6491                     set_hdr_metadata_ext
6492                 } else {
6493                     ::std::mem::transmute(val)
6494                 }
6495             },
6496         }
6497     }
6498 }
6499 #[doc = "Generated from 'VK_EXT_hdr_metadata'"]
6500 impl StructureType {
6501     pub const HDR_METADATA_EXT: Self = Self(1_000_105_000);
6502 }
6503 impl ImgExtension107Fn {
6504     #[inline]
name() -> &'static ::std::ffi::CStr6505     pub const fn name() -> &'static ::std::ffi::CStr {
6506         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_IMG_extension_107\0") }
6507     }
6508     pub const SPEC_VERSION: u32 = 0u32;
6509 }
6510 #[derive(Clone)]
6511 pub struct ImgExtension107Fn {}
6512 unsafe impl Send for ImgExtension107Fn {}
6513 unsafe impl Sync for ImgExtension107Fn {}
6514 impl ImgExtension107Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6515     pub fn load<F>(mut _f: F) -> Self
6516     where
6517         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6518     {
6519         Self {}
6520     }
6521 }
6522 impl ImgExtension108Fn {
6523     #[inline]
name() -> &'static ::std::ffi::CStr6524     pub const fn name() -> &'static ::std::ffi::CStr {
6525         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_IMG_extension_108\0") }
6526     }
6527     pub const SPEC_VERSION: u32 = 0u32;
6528 }
6529 #[derive(Clone)]
6530 pub struct ImgExtension108Fn {}
6531 unsafe impl Send for ImgExtension108Fn {}
6532 unsafe impl Sync for ImgExtension108Fn {}
6533 impl ImgExtension108Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6534     pub fn load<F>(mut _f: F) -> Self
6535     where
6536         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6537     {
6538         Self {}
6539     }
6540 }
6541 impl KhrImagelessFramebufferFn {
6542     #[inline]
name() -> &'static ::std::ffi::CStr6543     pub const fn name() -> &'static ::std::ffi::CStr {
6544         unsafe {
6545             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_imageless_framebuffer\0")
6546         }
6547     }
6548     pub const SPEC_VERSION: u32 = 1u32;
6549 }
6550 #[derive(Clone)]
6551 pub struct KhrImagelessFramebufferFn {}
6552 unsafe impl Send for KhrImagelessFramebufferFn {}
6553 unsafe impl Sync for KhrImagelessFramebufferFn {}
6554 impl KhrImagelessFramebufferFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6555     pub fn load<F>(mut _f: F) -> Self
6556     where
6557         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6558     {
6559         Self {}
6560     }
6561 }
6562 #[doc = "Generated from 'VK_KHR_imageless_framebuffer'"]
6563 impl FramebufferCreateFlags {
6564     pub const IMAGELESS_KHR: Self = Self::IMAGELESS;
6565 }
6566 #[doc = "Generated from 'VK_KHR_imageless_framebuffer'"]
6567 impl StructureType {
6568     pub const PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR: Self =
6569         Self::PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES;
6570     pub const FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR: Self =
6571         Self::FRAMEBUFFER_ATTACHMENTS_CREATE_INFO;
6572     pub const FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR: Self = Self::FRAMEBUFFER_ATTACHMENT_IMAGE_INFO;
6573     pub const RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR: Self = Self::RENDER_PASS_ATTACHMENT_BEGIN_INFO;
6574 }
6575 impl KhrCreateRenderpass2Fn {
6576     #[inline]
name() -> &'static ::std::ffi::CStr6577     pub const fn name() -> &'static ::std::ffi::CStr {
6578         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_create_renderpass2\0") }
6579     }
6580     pub const SPEC_VERSION: u32 = 1u32;
6581 }
6582 #[allow(non_camel_case_types)]
6583 pub type PFN_vkCreateRenderPass2 = unsafe extern "system" fn(
6584     device: Device,
6585     p_create_info: *const RenderPassCreateInfo2,
6586     p_allocator: *const AllocationCallbacks,
6587     p_render_pass: *mut RenderPass,
6588 ) -> Result;
6589 #[allow(non_camel_case_types)]
6590 pub type PFN_vkCmdBeginRenderPass2 = unsafe extern "system" fn(
6591     command_buffer: CommandBuffer,
6592     p_render_pass_begin: *const RenderPassBeginInfo,
6593     p_subpass_begin_info: *const SubpassBeginInfo,
6594 );
6595 #[allow(non_camel_case_types)]
6596 pub type PFN_vkCmdNextSubpass2 = unsafe extern "system" fn(
6597     command_buffer: CommandBuffer,
6598     p_subpass_begin_info: *const SubpassBeginInfo,
6599     p_subpass_end_info: *const SubpassEndInfo,
6600 );
6601 #[allow(non_camel_case_types)]
6602 pub type PFN_vkCmdEndRenderPass2 = unsafe extern "system" fn(
6603     command_buffer: CommandBuffer,
6604     p_subpass_end_info: *const SubpassEndInfo,
6605 );
6606 #[derive(Clone)]
6607 pub struct KhrCreateRenderpass2Fn {
6608     pub create_render_pass2_khr: PFN_vkCreateRenderPass2,
6609     pub cmd_begin_render_pass2_khr: PFN_vkCmdBeginRenderPass2,
6610     pub cmd_next_subpass2_khr: PFN_vkCmdNextSubpass2,
6611     pub cmd_end_render_pass2_khr: PFN_vkCmdEndRenderPass2,
6612 }
6613 unsafe impl Send for KhrCreateRenderpass2Fn {}
6614 unsafe impl Sync for KhrCreateRenderpass2Fn {}
6615 impl KhrCreateRenderpass2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6616     pub fn load<F>(mut _f: F) -> Self
6617     where
6618         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6619     {
6620         Self {
6621             create_render_pass2_khr: unsafe {
6622                 unsafe extern "system" fn create_render_pass2_khr(
6623                     _device: Device,
6624                     _p_create_info: *const RenderPassCreateInfo2,
6625                     _p_allocator: *const AllocationCallbacks,
6626                     _p_render_pass: *mut RenderPass,
6627                 ) -> Result {
6628                     panic!(concat!(
6629                         "Unable to load ",
6630                         stringify!(create_render_pass2_khr)
6631                     ))
6632                 }
6633                 let cname =
6634                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateRenderPass2KHR\0");
6635                 let val = _f(cname);
6636                 if val.is_null() {
6637                     create_render_pass2_khr
6638                 } else {
6639                     ::std::mem::transmute(val)
6640                 }
6641             },
6642             cmd_begin_render_pass2_khr: unsafe {
6643                 unsafe extern "system" fn cmd_begin_render_pass2_khr(
6644                     _command_buffer: CommandBuffer,
6645                     _p_render_pass_begin: *const RenderPassBeginInfo,
6646                     _p_subpass_begin_info: *const SubpassBeginInfo,
6647                 ) {
6648                     panic!(concat!(
6649                         "Unable to load ",
6650                         stringify!(cmd_begin_render_pass2_khr)
6651                     ))
6652                 }
6653                 let cname =
6654                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginRenderPass2KHR\0");
6655                 let val = _f(cname);
6656                 if val.is_null() {
6657                     cmd_begin_render_pass2_khr
6658                 } else {
6659                     ::std::mem::transmute(val)
6660                 }
6661             },
6662             cmd_next_subpass2_khr: unsafe {
6663                 unsafe extern "system" fn cmd_next_subpass2_khr(
6664                     _command_buffer: CommandBuffer,
6665                     _p_subpass_begin_info: *const SubpassBeginInfo,
6666                     _p_subpass_end_info: *const SubpassEndInfo,
6667                 ) {
6668                     panic!(concat!(
6669                         "Unable to load ",
6670                         stringify!(cmd_next_subpass2_khr)
6671                     ))
6672                 }
6673                 let cname =
6674                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdNextSubpass2KHR\0");
6675                 let val = _f(cname);
6676                 if val.is_null() {
6677                     cmd_next_subpass2_khr
6678                 } else {
6679                     ::std::mem::transmute(val)
6680                 }
6681             },
6682             cmd_end_render_pass2_khr: unsafe {
6683                 unsafe extern "system" fn cmd_end_render_pass2_khr(
6684                     _command_buffer: CommandBuffer,
6685                     _p_subpass_end_info: *const SubpassEndInfo,
6686                 ) {
6687                     panic!(concat!(
6688                         "Unable to load ",
6689                         stringify!(cmd_end_render_pass2_khr)
6690                     ))
6691                 }
6692                 let cname =
6693                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdEndRenderPass2KHR\0");
6694                 let val = _f(cname);
6695                 if val.is_null() {
6696                     cmd_end_render_pass2_khr
6697                 } else {
6698                     ::std::mem::transmute(val)
6699                 }
6700             },
6701         }
6702     }
6703 }
6704 #[doc = "Generated from 'VK_KHR_create_renderpass2'"]
6705 impl StructureType {
6706     pub const ATTACHMENT_DESCRIPTION_2_KHR: Self = Self::ATTACHMENT_DESCRIPTION_2;
6707     pub const ATTACHMENT_REFERENCE_2_KHR: Self = Self::ATTACHMENT_REFERENCE_2;
6708     pub const SUBPASS_DESCRIPTION_2_KHR: Self = Self::SUBPASS_DESCRIPTION_2;
6709     pub const SUBPASS_DEPENDENCY_2_KHR: Self = Self::SUBPASS_DEPENDENCY_2;
6710     pub const RENDER_PASS_CREATE_INFO_2_KHR: Self = Self::RENDER_PASS_CREATE_INFO_2;
6711     pub const SUBPASS_BEGIN_INFO_KHR: Self = Self::SUBPASS_BEGIN_INFO;
6712     pub const SUBPASS_END_INFO_KHR: Self = Self::SUBPASS_END_INFO;
6713 }
6714 impl ImgExtension111Fn {
6715     #[inline]
name() -> &'static ::std::ffi::CStr6716     pub const fn name() -> &'static ::std::ffi::CStr {
6717         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_IMG_extension_111\0") }
6718     }
6719     pub const SPEC_VERSION: u32 = 0u32;
6720 }
6721 #[derive(Clone)]
6722 pub struct ImgExtension111Fn {}
6723 unsafe impl Send for ImgExtension111Fn {}
6724 unsafe impl Sync for ImgExtension111Fn {}
6725 impl ImgExtension111Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6726     pub fn load<F>(mut _f: F) -> Self
6727     where
6728         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6729     {
6730         Self {}
6731     }
6732 }
6733 impl KhrSharedPresentableImageFn {
6734     #[inline]
name() -> &'static ::std::ffi::CStr6735     pub const fn name() -> &'static ::std::ffi::CStr {
6736         unsafe {
6737             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shared_presentable_image\0")
6738         }
6739     }
6740     pub const SPEC_VERSION: u32 = 1u32;
6741 }
6742 #[allow(non_camel_case_types)]
6743 pub type PFN_vkGetSwapchainStatusKHR =
6744     unsafe extern "system" fn(device: Device, swapchain: SwapchainKHR) -> Result;
6745 #[derive(Clone)]
6746 pub struct KhrSharedPresentableImageFn {
6747     pub get_swapchain_status_khr: PFN_vkGetSwapchainStatusKHR,
6748 }
6749 unsafe impl Send for KhrSharedPresentableImageFn {}
6750 unsafe impl Sync for KhrSharedPresentableImageFn {}
6751 impl KhrSharedPresentableImageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6752     pub fn load<F>(mut _f: F) -> Self
6753     where
6754         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6755     {
6756         Self {
6757             get_swapchain_status_khr: unsafe {
6758                 unsafe extern "system" fn get_swapchain_status_khr(
6759                     _device: Device,
6760                     _swapchain: SwapchainKHR,
6761                 ) -> Result {
6762                     panic!(concat!(
6763                         "Unable to load ",
6764                         stringify!(get_swapchain_status_khr)
6765                     ))
6766                 }
6767                 let cname =
6768                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetSwapchainStatusKHR\0");
6769                 let val = _f(cname);
6770                 if val.is_null() {
6771                     get_swapchain_status_khr
6772                 } else {
6773                     ::std::mem::transmute(val)
6774                 }
6775             },
6776         }
6777     }
6778 }
6779 #[doc = "Generated from 'VK_KHR_shared_presentable_image'"]
6780 impl ImageLayout {
6781     pub const SHARED_PRESENT_KHR: Self = Self(1_000_111_000);
6782 }
6783 #[doc = "Generated from 'VK_KHR_shared_presentable_image'"]
6784 impl PresentModeKHR {
6785     pub const SHARED_DEMAND_REFRESH: Self = Self(1_000_111_000);
6786     pub const SHARED_CONTINUOUS_REFRESH: Self = Self(1_000_111_001);
6787 }
6788 #[doc = "Generated from 'VK_KHR_shared_presentable_image'"]
6789 impl StructureType {
6790     pub const SHARED_PRESENT_SURFACE_CAPABILITIES_KHR: Self = Self(1_000_111_000);
6791 }
6792 impl KhrExternalFenceCapabilitiesFn {
6793     #[inline]
name() -> &'static ::std::ffi::CStr6794     pub const fn name() -> &'static ::std::ffi::CStr {
6795         unsafe {
6796             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_fence_capabilities\0")
6797         }
6798     }
6799     pub const SPEC_VERSION: u32 = 1u32;
6800 }
6801 #[allow(non_camel_case_types)]
6802 pub type PFN_vkGetPhysicalDeviceExternalFenceProperties = unsafe extern "system" fn(
6803     physical_device: PhysicalDevice,
6804     p_external_fence_info: *const PhysicalDeviceExternalFenceInfo,
6805     p_external_fence_properties: *mut ExternalFenceProperties,
6806 );
6807 #[derive(Clone)]
6808 pub struct KhrExternalFenceCapabilitiesFn {
6809     pub get_physical_device_external_fence_properties_khr:
6810         PFN_vkGetPhysicalDeviceExternalFenceProperties,
6811 }
6812 unsafe impl Send for KhrExternalFenceCapabilitiesFn {}
6813 unsafe impl Sync for KhrExternalFenceCapabilitiesFn {}
6814 impl KhrExternalFenceCapabilitiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6815     pub fn load<F>(mut _f: F) -> Self
6816     where
6817         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6818     {
6819         Self {
6820             get_physical_device_external_fence_properties_khr: unsafe {
6821                 unsafe extern "system" fn get_physical_device_external_fence_properties_khr(
6822                     _physical_device: PhysicalDevice,
6823                     _p_external_fence_info: *const PhysicalDeviceExternalFenceInfo,
6824                     _p_external_fence_properties: *mut ExternalFenceProperties,
6825                 ) {
6826                     panic!(concat!(
6827                         "Unable to load ",
6828                         stringify!(get_physical_device_external_fence_properties_khr)
6829                     ))
6830                 }
6831                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6832                     b"vkGetPhysicalDeviceExternalFencePropertiesKHR\0",
6833                 );
6834                 let val = _f(cname);
6835                 if val.is_null() {
6836                     get_physical_device_external_fence_properties_khr
6837                 } else {
6838                     ::std::mem::transmute(val)
6839                 }
6840             },
6841         }
6842     }
6843 }
6844 #[doc = "Generated from 'VK_KHR_external_fence_capabilities'"]
6845 impl ExternalFenceFeatureFlags {
6846     pub const EXPORTABLE_KHR: Self = Self::EXPORTABLE;
6847     pub const IMPORTABLE_KHR: Self = Self::IMPORTABLE;
6848 }
6849 #[doc = "Generated from 'VK_KHR_external_fence_capabilities'"]
6850 impl ExternalFenceHandleTypeFlags {
6851     pub const OPAQUE_FD_KHR: Self = Self::OPAQUE_FD;
6852     pub const OPAQUE_WIN32_KHR: Self = Self::OPAQUE_WIN32;
6853     pub const OPAQUE_WIN32_KMT_KHR: Self = Self::OPAQUE_WIN32_KMT;
6854     pub const SYNC_FD_KHR: Self = Self::SYNC_FD;
6855 }
6856 #[doc = "Generated from 'VK_KHR_external_fence_capabilities'"]
6857 impl StructureType {
6858     pub const PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR: Self =
6859         Self::PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO;
6860     pub const EXTERNAL_FENCE_PROPERTIES_KHR: Self = Self::EXTERNAL_FENCE_PROPERTIES;
6861 }
6862 impl KhrExternalFenceFn {
6863     #[inline]
name() -> &'static ::std::ffi::CStr6864     pub const fn name() -> &'static ::std::ffi::CStr {
6865         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_fence\0") }
6866     }
6867     pub const SPEC_VERSION: u32 = 1u32;
6868 }
6869 #[derive(Clone)]
6870 pub struct KhrExternalFenceFn {}
6871 unsafe impl Send for KhrExternalFenceFn {}
6872 unsafe impl Sync for KhrExternalFenceFn {}
6873 impl KhrExternalFenceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6874     pub fn load<F>(mut _f: F) -> Self
6875     where
6876         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6877     {
6878         Self {}
6879     }
6880 }
6881 #[doc = "Generated from 'VK_KHR_external_fence'"]
6882 impl FenceImportFlags {
6883     pub const TEMPORARY_KHR: Self = Self::TEMPORARY;
6884 }
6885 #[doc = "Generated from 'VK_KHR_external_fence'"]
6886 impl StructureType {
6887     pub const EXPORT_FENCE_CREATE_INFO_KHR: Self = Self::EXPORT_FENCE_CREATE_INFO;
6888 }
6889 impl KhrExternalFenceWin32Fn {
6890     #[inline]
name() -> &'static ::std::ffi::CStr6891     pub const fn name() -> &'static ::std::ffi::CStr {
6892         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_fence_win32\0") }
6893     }
6894     pub const SPEC_VERSION: u32 = 1u32;
6895 }
6896 #[allow(non_camel_case_types)]
6897 pub type PFN_vkImportFenceWin32HandleKHR = unsafe extern "system" fn(
6898     device: Device,
6899     p_import_fence_win32_handle_info: *const ImportFenceWin32HandleInfoKHR,
6900 ) -> Result;
6901 #[allow(non_camel_case_types)]
6902 pub type PFN_vkGetFenceWin32HandleKHR = unsafe extern "system" fn(
6903     device: Device,
6904     p_get_win32_handle_info: *const FenceGetWin32HandleInfoKHR,
6905     p_handle: *mut HANDLE,
6906 ) -> Result;
6907 #[derive(Clone)]
6908 pub struct KhrExternalFenceWin32Fn {
6909     pub import_fence_win32_handle_khr: PFN_vkImportFenceWin32HandleKHR,
6910     pub get_fence_win32_handle_khr: PFN_vkGetFenceWin32HandleKHR,
6911 }
6912 unsafe impl Send for KhrExternalFenceWin32Fn {}
6913 unsafe impl Sync for KhrExternalFenceWin32Fn {}
6914 impl KhrExternalFenceWin32Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6915     pub fn load<F>(mut _f: F) -> Self
6916     where
6917         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6918     {
6919         Self {
6920             import_fence_win32_handle_khr: unsafe {
6921                 unsafe extern "system" fn import_fence_win32_handle_khr(
6922                     _device: Device,
6923                     _p_import_fence_win32_handle_info: *const ImportFenceWin32HandleInfoKHR,
6924                 ) -> Result {
6925                     panic!(concat!(
6926                         "Unable to load ",
6927                         stringify!(import_fence_win32_handle_khr)
6928                     ))
6929                 }
6930                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6931                     b"vkImportFenceWin32HandleKHR\0",
6932                 );
6933                 let val = _f(cname);
6934                 if val.is_null() {
6935                     import_fence_win32_handle_khr
6936                 } else {
6937                     ::std::mem::transmute(val)
6938                 }
6939             },
6940             get_fence_win32_handle_khr: unsafe {
6941                 unsafe extern "system" fn get_fence_win32_handle_khr(
6942                     _device: Device,
6943                     _p_get_win32_handle_info: *const FenceGetWin32HandleInfoKHR,
6944                     _p_handle: *mut HANDLE,
6945                 ) -> Result {
6946                     panic!(concat!(
6947                         "Unable to load ",
6948                         stringify!(get_fence_win32_handle_khr)
6949                     ))
6950                 }
6951                 let cname =
6952                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetFenceWin32HandleKHR\0");
6953                 let val = _f(cname);
6954                 if val.is_null() {
6955                     get_fence_win32_handle_khr
6956                 } else {
6957                     ::std::mem::transmute(val)
6958                 }
6959             },
6960         }
6961     }
6962 }
6963 #[doc = "Generated from 'VK_KHR_external_fence_win32'"]
6964 impl StructureType {
6965     pub const IMPORT_FENCE_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_114_000);
6966     pub const EXPORT_FENCE_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_114_001);
6967     pub const FENCE_GET_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_114_002);
6968 }
6969 impl KhrExternalFenceFdFn {
6970     #[inline]
name() -> &'static ::std::ffi::CStr6971     pub const fn name() -> &'static ::std::ffi::CStr {
6972         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_fence_fd\0") }
6973     }
6974     pub const SPEC_VERSION: u32 = 1u32;
6975 }
6976 #[allow(non_camel_case_types)]
6977 pub type PFN_vkImportFenceFdKHR = unsafe extern "system" fn(
6978     device: Device,
6979     p_import_fence_fd_info: *const ImportFenceFdInfoKHR,
6980 ) -> Result;
6981 #[allow(non_camel_case_types)]
6982 pub type PFN_vkGetFenceFdKHR = unsafe extern "system" fn(
6983     device: Device,
6984     p_get_fd_info: *const FenceGetFdInfoKHR,
6985     p_fd: *mut c_int,
6986 ) -> Result;
6987 #[derive(Clone)]
6988 pub struct KhrExternalFenceFdFn {
6989     pub import_fence_fd_khr: PFN_vkImportFenceFdKHR,
6990     pub get_fence_fd_khr: PFN_vkGetFenceFdKHR,
6991 }
6992 unsafe impl Send for KhrExternalFenceFdFn {}
6993 unsafe impl Sync for KhrExternalFenceFdFn {}
6994 impl KhrExternalFenceFdFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6995     pub fn load<F>(mut _f: F) -> Self
6996     where
6997         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6998     {
6999         Self {
7000             import_fence_fd_khr: unsafe {
7001                 unsafe extern "system" fn import_fence_fd_khr(
7002                     _device: Device,
7003                     _p_import_fence_fd_info: *const ImportFenceFdInfoKHR,
7004                 ) -> Result {
7005                     panic!(concat!("Unable to load ", stringify!(import_fence_fd_khr)))
7006                 }
7007                 let cname =
7008                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkImportFenceFdKHR\0");
7009                 let val = _f(cname);
7010                 if val.is_null() {
7011                     import_fence_fd_khr
7012                 } else {
7013                     ::std::mem::transmute(val)
7014                 }
7015             },
7016             get_fence_fd_khr: unsafe {
7017                 unsafe extern "system" fn get_fence_fd_khr(
7018                     _device: Device,
7019                     _p_get_fd_info: *const FenceGetFdInfoKHR,
7020                     _p_fd: *mut c_int,
7021                 ) -> Result {
7022                     panic!(concat!("Unable to load ", stringify!(get_fence_fd_khr)))
7023                 }
7024                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetFenceFdKHR\0");
7025                 let val = _f(cname);
7026                 if val.is_null() {
7027                     get_fence_fd_khr
7028                 } else {
7029                     ::std::mem::transmute(val)
7030                 }
7031             },
7032         }
7033     }
7034 }
7035 #[doc = "Generated from 'VK_KHR_external_fence_fd'"]
7036 impl StructureType {
7037     pub const IMPORT_FENCE_FD_INFO_KHR: Self = Self(1_000_115_000);
7038     pub const FENCE_GET_FD_INFO_KHR: Self = Self(1_000_115_001);
7039 }
7040 impl KhrPerformanceQueryFn {
7041     #[inline]
name() -> &'static ::std::ffi::CStr7042     pub const fn name() -> &'static ::std::ffi::CStr {
7043         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_performance_query\0") }
7044     }
7045     pub const SPEC_VERSION: u32 = 1u32;
7046 }
7047 #[allow(non_camel_case_types)]
7048 pub type PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR =
7049     unsafe extern "system" fn(
7050         physical_device: PhysicalDevice,
7051         queue_family_index: u32,
7052         p_counter_count: *mut u32,
7053         p_counters: *mut PerformanceCounterKHR,
7054         p_counter_descriptions: *mut PerformanceCounterDescriptionKHR,
7055     ) -> Result;
7056 #[allow(non_camel_case_types)]
7057 pub type PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR =
7058     unsafe extern "system" fn(
7059         physical_device: PhysicalDevice,
7060         p_performance_query_create_info: *const QueryPoolPerformanceCreateInfoKHR,
7061         p_num_passes: *mut u32,
7062     );
7063 #[allow(non_camel_case_types)]
7064 pub type PFN_vkAcquireProfilingLockKHR =
7065     unsafe extern "system" fn(device: Device, p_info: *const AcquireProfilingLockInfoKHR) -> Result;
7066 #[allow(non_camel_case_types)]
7067 pub type PFN_vkReleaseProfilingLockKHR = unsafe extern "system" fn(device: Device);
7068 #[derive(Clone)]
7069 pub struct KhrPerformanceQueryFn {
7070     pub enumerate_physical_device_queue_family_performance_query_counters_khr:
7071         PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR,
7072     pub get_physical_device_queue_family_performance_query_passes_khr:
7073         PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR,
7074     pub acquire_profiling_lock_khr: PFN_vkAcquireProfilingLockKHR,
7075     pub release_profiling_lock_khr: PFN_vkReleaseProfilingLockKHR,
7076 }
7077 unsafe impl Send for KhrPerformanceQueryFn {}
7078 unsafe impl Sync for KhrPerformanceQueryFn {}
7079 impl KhrPerformanceQueryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7080     pub fn load<F>(mut _f: F) -> Self
7081     where
7082         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7083     {
7084         Self {
7085             enumerate_physical_device_queue_family_performance_query_counters_khr: unsafe {
7086                 unsafe extern "system" fn enumerate_physical_device_queue_family_performance_query_counters_khr(
7087                     _physical_device: PhysicalDevice,
7088                     _queue_family_index: u32,
7089                     _p_counter_count: *mut u32,
7090                     _p_counters: *mut PerformanceCounterKHR,
7091                     _p_counter_descriptions: *mut PerformanceCounterDescriptionKHR,
7092                 ) -> Result {
7093                     panic!(concat!(
7094                         "Unable to load ",
7095                         stringify!(
7096                             enumerate_physical_device_queue_family_performance_query_counters_khr
7097                         )
7098                     ))
7099                 }
7100                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7101                     b"vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR\0",
7102                 );
7103                 let val = _f(cname);
7104                 if val.is_null() {
7105                     enumerate_physical_device_queue_family_performance_query_counters_khr
7106                 } else {
7107                     ::std::mem::transmute(val)
7108                 }
7109             },
7110             get_physical_device_queue_family_performance_query_passes_khr: unsafe {
7111                 unsafe extern "system" fn get_physical_device_queue_family_performance_query_passes_khr(
7112                     _physical_device: PhysicalDevice,
7113                     _p_performance_query_create_info: *const QueryPoolPerformanceCreateInfoKHR,
7114                     _p_num_passes: *mut u32,
7115                 ) {
7116                     panic!(concat!(
7117                         "Unable to load ",
7118                         stringify!(get_physical_device_queue_family_performance_query_passes_khr)
7119                     ))
7120                 }
7121                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7122                     b"vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR\0",
7123                 );
7124                 let val = _f(cname);
7125                 if val.is_null() {
7126                     get_physical_device_queue_family_performance_query_passes_khr
7127                 } else {
7128                     ::std::mem::transmute(val)
7129                 }
7130             },
7131             acquire_profiling_lock_khr: unsafe {
7132                 unsafe extern "system" fn acquire_profiling_lock_khr(
7133                     _device: Device,
7134                     _p_info: *const AcquireProfilingLockInfoKHR,
7135                 ) -> Result {
7136                     panic!(concat!(
7137                         "Unable to load ",
7138                         stringify!(acquire_profiling_lock_khr)
7139                     ))
7140                 }
7141                 let cname =
7142                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireProfilingLockKHR\0");
7143                 let val = _f(cname);
7144                 if val.is_null() {
7145                     acquire_profiling_lock_khr
7146                 } else {
7147                     ::std::mem::transmute(val)
7148                 }
7149             },
7150             release_profiling_lock_khr: unsafe {
7151                 unsafe extern "system" fn release_profiling_lock_khr(_device: Device) {
7152                     panic!(concat!(
7153                         "Unable to load ",
7154                         stringify!(release_profiling_lock_khr)
7155                     ))
7156                 }
7157                 let cname =
7158                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkReleaseProfilingLockKHR\0");
7159                 let val = _f(cname);
7160                 if val.is_null() {
7161                     release_profiling_lock_khr
7162                 } else {
7163                     ::std::mem::transmute(val)
7164                 }
7165             },
7166         }
7167     }
7168 }
7169 #[doc = "Generated from 'VK_KHR_performance_query'"]
7170 impl QueryType {
7171     pub const PERFORMANCE_QUERY_KHR: Self = Self(1_000_116_000);
7172 }
7173 #[doc = "Generated from 'VK_KHR_performance_query'"]
7174 impl StructureType {
7175     pub const PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR: Self = Self(1_000_116_000);
7176     pub const PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR: Self = Self(1_000_116_001);
7177     pub const QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR: Self = Self(1_000_116_002);
7178     pub const PERFORMANCE_QUERY_SUBMIT_INFO_KHR: Self = Self(1_000_116_003);
7179     pub const ACQUIRE_PROFILING_LOCK_INFO_KHR: Self = Self(1_000_116_004);
7180     pub const PERFORMANCE_COUNTER_KHR: Self = Self(1_000_116_005);
7181     pub const PERFORMANCE_COUNTER_DESCRIPTION_KHR: Self = Self(1_000_116_006);
7182 }
7183 impl KhrMaintenance2Fn {
7184     #[inline]
name() -> &'static ::std::ffi::CStr7185     pub const fn name() -> &'static ::std::ffi::CStr {
7186         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance2\0") }
7187     }
7188     pub const SPEC_VERSION: u32 = 1u32;
7189 }
7190 #[derive(Clone)]
7191 pub struct KhrMaintenance2Fn {}
7192 unsafe impl Send for KhrMaintenance2Fn {}
7193 unsafe impl Sync for KhrMaintenance2Fn {}
7194 impl KhrMaintenance2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7195     pub fn load<F>(mut _f: F) -> Self
7196     where
7197         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7198     {
7199         Self {}
7200     }
7201 }
7202 #[doc = "Generated from 'VK_KHR_maintenance2'"]
7203 impl ImageCreateFlags {
7204     pub const BLOCK_TEXEL_VIEW_COMPATIBLE_KHR: Self = Self::BLOCK_TEXEL_VIEW_COMPATIBLE;
7205     pub const EXTENDED_USAGE_KHR: Self = Self::EXTENDED_USAGE;
7206 }
7207 #[doc = "Generated from 'VK_KHR_maintenance2'"]
7208 impl ImageLayout {
7209     pub const DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR: Self =
7210         Self::DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL;
7211     pub const DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR: Self =
7212         Self::DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL;
7213 }
7214 #[doc = "Generated from 'VK_KHR_maintenance2'"]
7215 impl PointClippingBehavior {
7216     pub const ALL_CLIP_PLANES_KHR: Self = Self::ALL_CLIP_PLANES;
7217     pub const USER_CLIP_PLANES_ONLY_KHR: Self = Self::USER_CLIP_PLANES_ONLY;
7218 }
7219 #[doc = "Generated from 'VK_KHR_maintenance2'"]
7220 impl StructureType {
7221     pub const PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR: Self =
7222         Self::PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES;
7223     pub const RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR: Self =
7224         Self::RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO;
7225     pub const IMAGE_VIEW_USAGE_CREATE_INFO_KHR: Self = Self::IMAGE_VIEW_USAGE_CREATE_INFO;
7226     pub const PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR: Self =
7227         Self::PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO;
7228 }
7229 #[doc = "Generated from 'VK_KHR_maintenance2'"]
7230 impl TessellationDomainOrigin {
7231     pub const UPPER_LEFT_KHR: Self = Self::UPPER_LEFT;
7232     pub const LOWER_LEFT_KHR: Self = Self::LOWER_LEFT;
7233 }
7234 impl KhrExtension119Fn {
7235     #[inline]
name() -> &'static ::std::ffi::CStr7236     pub const fn name() -> &'static ::std::ffi::CStr {
7237         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_119\0") }
7238     }
7239     pub const SPEC_VERSION: u32 = 0u32;
7240 }
7241 #[derive(Clone)]
7242 pub struct KhrExtension119Fn {}
7243 unsafe impl Send for KhrExtension119Fn {}
7244 unsafe impl Sync for KhrExtension119Fn {}
7245 impl KhrExtension119Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7246     pub fn load<F>(mut _f: F) -> Self
7247     where
7248         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7249     {
7250         Self {}
7251     }
7252 }
7253 impl KhrGetSurfaceCapabilities2Fn {
7254     #[inline]
name() -> &'static ::std::ffi::CStr7255     pub const fn name() -> &'static ::std::ffi::CStr {
7256         unsafe {
7257             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_get_surface_capabilities2\0")
7258         }
7259     }
7260     pub const SPEC_VERSION: u32 = 1u32;
7261 }
7262 #[allow(non_camel_case_types)]
7263 pub type PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = unsafe extern "system" fn(
7264     physical_device: PhysicalDevice,
7265     p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
7266     p_surface_capabilities: *mut SurfaceCapabilities2KHR,
7267 ) -> Result;
7268 #[allow(non_camel_case_types)]
7269 pub type PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = unsafe extern "system" fn(
7270     physical_device: PhysicalDevice,
7271     p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
7272     p_surface_format_count: *mut u32,
7273     p_surface_formats: *mut SurfaceFormat2KHR,
7274 ) -> Result;
7275 #[derive(Clone)]
7276 pub struct KhrGetSurfaceCapabilities2Fn {
7277     pub get_physical_device_surface_capabilities2_khr:
7278         PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR,
7279     pub get_physical_device_surface_formats2_khr: PFN_vkGetPhysicalDeviceSurfaceFormats2KHR,
7280 }
7281 unsafe impl Send for KhrGetSurfaceCapabilities2Fn {}
7282 unsafe impl Sync for KhrGetSurfaceCapabilities2Fn {}
7283 impl KhrGetSurfaceCapabilities2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7284     pub fn load<F>(mut _f: F) -> Self
7285     where
7286         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7287     {
7288         Self {
7289             get_physical_device_surface_capabilities2_khr: unsafe {
7290                 unsafe extern "system" fn get_physical_device_surface_capabilities2_khr(
7291                     _physical_device: PhysicalDevice,
7292                     _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
7293                     _p_surface_capabilities: *mut SurfaceCapabilities2KHR,
7294                 ) -> Result {
7295                     panic!(concat!(
7296                         "Unable to load ",
7297                         stringify!(get_physical_device_surface_capabilities2_khr)
7298                     ))
7299                 }
7300                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7301                     b"vkGetPhysicalDeviceSurfaceCapabilities2KHR\0",
7302                 );
7303                 let val = _f(cname);
7304                 if val.is_null() {
7305                     get_physical_device_surface_capabilities2_khr
7306                 } else {
7307                     ::std::mem::transmute(val)
7308                 }
7309             },
7310             get_physical_device_surface_formats2_khr: unsafe {
7311                 unsafe extern "system" fn get_physical_device_surface_formats2_khr(
7312                     _physical_device: PhysicalDevice,
7313                     _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
7314                     _p_surface_format_count: *mut u32,
7315                     _p_surface_formats: *mut SurfaceFormat2KHR,
7316                 ) -> Result {
7317                     panic!(concat!(
7318                         "Unable to load ",
7319                         stringify!(get_physical_device_surface_formats2_khr)
7320                     ))
7321                 }
7322                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7323                     b"vkGetPhysicalDeviceSurfaceFormats2KHR\0",
7324                 );
7325                 let val = _f(cname);
7326                 if val.is_null() {
7327                     get_physical_device_surface_formats2_khr
7328                 } else {
7329                     ::std::mem::transmute(val)
7330                 }
7331             },
7332         }
7333     }
7334 }
7335 #[doc = "Generated from 'VK_KHR_get_surface_capabilities2'"]
7336 impl StructureType {
7337     pub const PHYSICAL_DEVICE_SURFACE_INFO_2_KHR: Self = Self(1_000_119_000);
7338     pub const SURFACE_CAPABILITIES_2_KHR: Self = Self(1_000_119_001);
7339     pub const SURFACE_FORMAT_2_KHR: Self = Self(1_000_119_002);
7340 }
7341 impl KhrVariablePointersFn {
7342     #[inline]
name() -> &'static ::std::ffi::CStr7343     pub const fn name() -> &'static ::std::ffi::CStr {
7344         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_variable_pointers\0") }
7345     }
7346     pub const SPEC_VERSION: u32 = 1u32;
7347 }
7348 #[derive(Clone)]
7349 pub struct KhrVariablePointersFn {}
7350 unsafe impl Send for KhrVariablePointersFn {}
7351 unsafe impl Sync for KhrVariablePointersFn {}
7352 impl KhrVariablePointersFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7353     pub fn load<F>(mut _f: F) -> Self
7354     where
7355         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7356     {
7357         Self {}
7358     }
7359 }
7360 #[doc = "Generated from 'VK_KHR_variable_pointers'"]
7361 impl StructureType {
7362     pub const PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR: Self =
7363         Self::PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
7364     pub const PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR: Self =
7365         Self::PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR;
7366 }
7367 impl KhrGetDisplayProperties2Fn {
7368     #[inline]
name() -> &'static ::std::ffi::CStr7369     pub const fn name() -> &'static ::std::ffi::CStr {
7370         unsafe {
7371             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_get_display_properties2\0")
7372         }
7373     }
7374     pub const SPEC_VERSION: u32 = 1u32;
7375 }
7376 #[allow(non_camel_case_types)]
7377 pub type PFN_vkGetPhysicalDeviceDisplayProperties2KHR = unsafe extern "system" fn(
7378     physical_device: PhysicalDevice,
7379     p_property_count: *mut u32,
7380     p_properties: *mut DisplayProperties2KHR,
7381 ) -> Result;
7382 #[allow(non_camel_case_types)]
7383 pub type PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = unsafe extern "system" fn(
7384     physical_device: PhysicalDevice,
7385     p_property_count: *mut u32,
7386     p_properties: *mut DisplayPlaneProperties2KHR,
7387 ) -> Result;
7388 #[allow(non_camel_case_types)]
7389 pub type PFN_vkGetDisplayModeProperties2KHR = unsafe extern "system" fn(
7390     physical_device: PhysicalDevice,
7391     display: DisplayKHR,
7392     p_property_count: *mut u32,
7393     p_properties: *mut DisplayModeProperties2KHR,
7394 ) -> Result;
7395 #[allow(non_camel_case_types)]
7396 pub type PFN_vkGetDisplayPlaneCapabilities2KHR = unsafe extern "system" fn(
7397     physical_device: PhysicalDevice,
7398     p_display_plane_info: *const DisplayPlaneInfo2KHR,
7399     p_capabilities: *mut DisplayPlaneCapabilities2KHR,
7400 ) -> Result;
7401 #[derive(Clone)]
7402 pub struct KhrGetDisplayProperties2Fn {
7403     pub get_physical_device_display_properties2_khr: PFN_vkGetPhysicalDeviceDisplayProperties2KHR,
7404     pub get_physical_device_display_plane_properties2_khr:
7405         PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR,
7406     pub get_display_mode_properties2_khr: PFN_vkGetDisplayModeProperties2KHR,
7407     pub get_display_plane_capabilities2_khr: PFN_vkGetDisplayPlaneCapabilities2KHR,
7408 }
7409 unsafe impl Send for KhrGetDisplayProperties2Fn {}
7410 unsafe impl Sync for KhrGetDisplayProperties2Fn {}
7411 impl KhrGetDisplayProperties2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7412     pub fn load<F>(mut _f: F) -> Self
7413     where
7414         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7415     {
7416         Self {
7417             get_physical_device_display_properties2_khr: unsafe {
7418                 unsafe extern "system" fn get_physical_device_display_properties2_khr(
7419                     _physical_device: PhysicalDevice,
7420                     _p_property_count: *mut u32,
7421                     _p_properties: *mut DisplayProperties2KHR,
7422                 ) -> Result {
7423                     panic!(concat!(
7424                         "Unable to load ",
7425                         stringify!(get_physical_device_display_properties2_khr)
7426                     ))
7427                 }
7428                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7429                     b"vkGetPhysicalDeviceDisplayProperties2KHR\0",
7430                 );
7431                 let val = _f(cname);
7432                 if val.is_null() {
7433                     get_physical_device_display_properties2_khr
7434                 } else {
7435                     ::std::mem::transmute(val)
7436                 }
7437             },
7438             get_physical_device_display_plane_properties2_khr: unsafe {
7439                 unsafe extern "system" fn get_physical_device_display_plane_properties2_khr(
7440                     _physical_device: PhysicalDevice,
7441                     _p_property_count: *mut u32,
7442                     _p_properties: *mut DisplayPlaneProperties2KHR,
7443                 ) -> Result {
7444                     panic!(concat!(
7445                         "Unable to load ",
7446                         stringify!(get_physical_device_display_plane_properties2_khr)
7447                     ))
7448                 }
7449                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7450                     b"vkGetPhysicalDeviceDisplayPlaneProperties2KHR\0",
7451                 );
7452                 let val = _f(cname);
7453                 if val.is_null() {
7454                     get_physical_device_display_plane_properties2_khr
7455                 } else {
7456                     ::std::mem::transmute(val)
7457                 }
7458             },
7459             get_display_mode_properties2_khr: unsafe {
7460                 unsafe extern "system" fn get_display_mode_properties2_khr(
7461                     _physical_device: PhysicalDevice,
7462                     _display: DisplayKHR,
7463                     _p_property_count: *mut u32,
7464                     _p_properties: *mut DisplayModeProperties2KHR,
7465                 ) -> Result {
7466                     panic!(concat!(
7467                         "Unable to load ",
7468                         stringify!(get_display_mode_properties2_khr)
7469                     ))
7470                 }
7471                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7472                     b"vkGetDisplayModeProperties2KHR\0",
7473                 );
7474                 let val = _f(cname);
7475                 if val.is_null() {
7476                     get_display_mode_properties2_khr
7477                 } else {
7478                     ::std::mem::transmute(val)
7479                 }
7480             },
7481             get_display_plane_capabilities2_khr: unsafe {
7482                 unsafe extern "system" fn get_display_plane_capabilities2_khr(
7483                     _physical_device: PhysicalDevice,
7484                     _p_display_plane_info: *const DisplayPlaneInfo2KHR,
7485                     _p_capabilities: *mut DisplayPlaneCapabilities2KHR,
7486                 ) -> Result {
7487                     panic!(concat!(
7488                         "Unable to load ",
7489                         stringify!(get_display_plane_capabilities2_khr)
7490                     ))
7491                 }
7492                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7493                     b"vkGetDisplayPlaneCapabilities2KHR\0",
7494                 );
7495                 let val = _f(cname);
7496                 if val.is_null() {
7497                     get_display_plane_capabilities2_khr
7498                 } else {
7499                     ::std::mem::transmute(val)
7500                 }
7501             },
7502         }
7503     }
7504 }
7505 #[doc = "Generated from 'VK_KHR_get_display_properties2'"]
7506 impl StructureType {
7507     pub const DISPLAY_PROPERTIES_2_KHR: Self = Self(1_000_121_000);
7508     pub const DISPLAY_PLANE_PROPERTIES_2_KHR: Self = Self(1_000_121_001);
7509     pub const DISPLAY_MODE_PROPERTIES_2_KHR: Self = Self(1_000_121_002);
7510     pub const DISPLAY_PLANE_INFO_2_KHR: Self = Self(1_000_121_003);
7511     pub const DISPLAY_PLANE_CAPABILITIES_2_KHR: Self = Self(1_000_121_004);
7512 }
7513 impl MvkIosSurfaceFn {
7514     #[inline]
name() -> &'static ::std::ffi::CStr7515     pub const fn name() -> &'static ::std::ffi::CStr {
7516         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_MVK_ios_surface\0") }
7517     }
7518     pub const SPEC_VERSION: u32 = 3u32;
7519 }
7520 #[allow(non_camel_case_types)]
7521 pub type PFN_vkCreateIOSSurfaceMVK = unsafe extern "system" fn(
7522     instance: Instance,
7523     p_create_info: *const IOSSurfaceCreateInfoMVK,
7524     p_allocator: *const AllocationCallbacks,
7525     p_surface: *mut SurfaceKHR,
7526 ) -> Result;
7527 #[derive(Clone)]
7528 pub struct MvkIosSurfaceFn {
7529     pub create_ios_surface_mvk: PFN_vkCreateIOSSurfaceMVK,
7530 }
7531 unsafe impl Send for MvkIosSurfaceFn {}
7532 unsafe impl Sync for MvkIosSurfaceFn {}
7533 impl MvkIosSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7534     pub fn load<F>(mut _f: F) -> Self
7535     where
7536         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7537     {
7538         Self {
7539             create_ios_surface_mvk: unsafe {
7540                 unsafe extern "system" fn create_ios_surface_mvk(
7541                     _instance: Instance,
7542                     _p_create_info: *const IOSSurfaceCreateInfoMVK,
7543                     _p_allocator: *const AllocationCallbacks,
7544                     _p_surface: *mut SurfaceKHR,
7545                 ) -> Result {
7546                     panic!(concat!(
7547                         "Unable to load ",
7548                         stringify!(create_ios_surface_mvk)
7549                     ))
7550                 }
7551                 let cname =
7552                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateIOSSurfaceMVK\0");
7553                 let val = _f(cname);
7554                 if val.is_null() {
7555                     create_ios_surface_mvk
7556                 } else {
7557                     ::std::mem::transmute(val)
7558                 }
7559             },
7560         }
7561     }
7562 }
7563 #[doc = "Generated from 'VK_MVK_ios_surface'"]
7564 impl StructureType {
7565     pub const IOS_SURFACE_CREATE_INFO_MVK: Self = Self(1_000_122_000);
7566 }
7567 impl MvkMacosSurfaceFn {
7568     #[inline]
name() -> &'static ::std::ffi::CStr7569     pub const fn name() -> &'static ::std::ffi::CStr {
7570         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_MVK_macos_surface\0") }
7571     }
7572     pub const SPEC_VERSION: u32 = 3u32;
7573 }
7574 #[allow(non_camel_case_types)]
7575 pub type PFN_vkCreateMacOSSurfaceMVK = unsafe extern "system" fn(
7576     instance: Instance,
7577     p_create_info: *const MacOSSurfaceCreateInfoMVK,
7578     p_allocator: *const AllocationCallbacks,
7579     p_surface: *mut SurfaceKHR,
7580 ) -> Result;
7581 #[derive(Clone)]
7582 pub struct MvkMacosSurfaceFn {
7583     pub create_mac_os_surface_mvk: PFN_vkCreateMacOSSurfaceMVK,
7584 }
7585 unsafe impl Send for MvkMacosSurfaceFn {}
7586 unsafe impl Sync for MvkMacosSurfaceFn {}
7587 impl MvkMacosSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7588     pub fn load<F>(mut _f: F) -> Self
7589     where
7590         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7591     {
7592         Self {
7593             create_mac_os_surface_mvk: unsafe {
7594                 unsafe extern "system" fn create_mac_os_surface_mvk(
7595                     _instance: Instance,
7596                     _p_create_info: *const MacOSSurfaceCreateInfoMVK,
7597                     _p_allocator: *const AllocationCallbacks,
7598                     _p_surface: *mut SurfaceKHR,
7599                 ) -> Result {
7600                     panic!(concat!(
7601                         "Unable to load ",
7602                         stringify!(create_mac_os_surface_mvk)
7603                     ))
7604                 }
7605                 let cname =
7606                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateMacOSSurfaceMVK\0");
7607                 let val = _f(cname);
7608                 if val.is_null() {
7609                     create_mac_os_surface_mvk
7610                 } else {
7611                     ::std::mem::transmute(val)
7612                 }
7613             },
7614         }
7615     }
7616 }
7617 #[doc = "Generated from 'VK_MVK_macos_surface'"]
7618 impl StructureType {
7619     pub const MACOS_SURFACE_CREATE_INFO_MVK: Self = Self(1_000_123_000);
7620 }
7621 impl MvkMoltenvkFn {
7622     #[inline]
name() -> &'static ::std::ffi::CStr7623     pub const fn name() -> &'static ::std::ffi::CStr {
7624         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_MVK_moltenvk\0") }
7625     }
7626     pub const SPEC_VERSION: u32 = 0u32;
7627 }
7628 #[derive(Clone)]
7629 pub struct MvkMoltenvkFn {}
7630 unsafe impl Send for MvkMoltenvkFn {}
7631 unsafe impl Sync for MvkMoltenvkFn {}
7632 impl MvkMoltenvkFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7633     pub fn load<F>(mut _f: F) -> Self
7634     where
7635         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7636     {
7637         Self {}
7638     }
7639 }
7640 impl ExtExternalMemoryDmaBufFn {
7641     #[inline]
name() -> &'static ::std::ffi::CStr7642     pub const fn name() -> &'static ::std::ffi::CStr {
7643         unsafe {
7644             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_external_memory_dma_buf\0")
7645         }
7646     }
7647     pub const SPEC_VERSION: u32 = 1u32;
7648 }
7649 #[derive(Clone)]
7650 pub struct ExtExternalMemoryDmaBufFn {}
7651 unsafe impl Send for ExtExternalMemoryDmaBufFn {}
7652 unsafe impl Sync for ExtExternalMemoryDmaBufFn {}
7653 impl ExtExternalMemoryDmaBufFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7654     pub fn load<F>(mut _f: F) -> Self
7655     where
7656         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7657     {
7658         Self {}
7659     }
7660 }
7661 #[doc = "Generated from 'VK_EXT_external_memory_dma_buf'"]
7662 impl ExternalMemoryHandleTypeFlags {
7663     pub const DMA_BUF_EXT: Self = Self(0b10_0000_0000);
7664 }
7665 impl ExtQueueFamilyForeignFn {
7666     #[inline]
name() -> &'static ::std::ffi::CStr7667     pub const fn name() -> &'static ::std::ffi::CStr {
7668         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_queue_family_foreign\0") }
7669     }
7670     pub const SPEC_VERSION: u32 = 1u32;
7671 }
7672 #[derive(Clone)]
7673 pub struct ExtQueueFamilyForeignFn {}
7674 unsafe impl Send for ExtQueueFamilyForeignFn {}
7675 unsafe impl Sync for ExtQueueFamilyForeignFn {}
7676 impl ExtQueueFamilyForeignFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7677     pub fn load<F>(mut _f: F) -> Self
7678     where
7679         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7680     {
7681         Self {}
7682     }
7683 }
7684 impl KhrDedicatedAllocationFn {
7685     #[inline]
name() -> &'static ::std::ffi::CStr7686     pub const fn name() -> &'static ::std::ffi::CStr {
7687         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_dedicated_allocation\0") }
7688     }
7689     pub const SPEC_VERSION: u32 = 3u32;
7690 }
7691 #[derive(Clone)]
7692 pub struct KhrDedicatedAllocationFn {}
7693 unsafe impl Send for KhrDedicatedAllocationFn {}
7694 unsafe impl Sync for KhrDedicatedAllocationFn {}
7695 impl KhrDedicatedAllocationFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7696     pub fn load<F>(mut _f: F) -> Self
7697     where
7698         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7699     {
7700         Self {}
7701     }
7702 }
7703 #[doc = "Generated from 'VK_KHR_dedicated_allocation'"]
7704 impl StructureType {
7705     pub const MEMORY_DEDICATED_REQUIREMENTS_KHR: Self = Self::MEMORY_DEDICATED_REQUIREMENTS;
7706     pub const MEMORY_DEDICATED_ALLOCATE_INFO_KHR: Self = Self::MEMORY_DEDICATED_ALLOCATE_INFO;
7707 }
7708 impl ExtDebugUtilsFn {
7709     #[inline]
name() -> &'static ::std::ffi::CStr7710     pub const fn name() -> &'static ::std::ffi::CStr {
7711         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_debug_utils\0") }
7712     }
7713     pub const SPEC_VERSION: u32 = 2u32;
7714 }
7715 #[allow(non_camel_case_types)]
7716 pub type PFN_vkSetDebugUtilsObjectNameEXT = unsafe extern "system" fn(
7717     device: Device,
7718     p_name_info: *const DebugUtilsObjectNameInfoEXT,
7719 ) -> Result;
7720 #[allow(non_camel_case_types)]
7721 pub type PFN_vkSetDebugUtilsObjectTagEXT = unsafe extern "system" fn(
7722     device: Device,
7723     p_tag_info: *const DebugUtilsObjectTagInfoEXT,
7724 ) -> Result;
7725 #[allow(non_camel_case_types)]
7726 pub type PFN_vkQueueBeginDebugUtilsLabelEXT =
7727     unsafe extern "system" fn(queue: Queue, p_label_info: *const DebugUtilsLabelEXT);
7728 #[allow(non_camel_case_types)]
7729 pub type PFN_vkQueueEndDebugUtilsLabelEXT = unsafe extern "system" fn(queue: Queue);
7730 #[allow(non_camel_case_types)]
7731 pub type PFN_vkQueueInsertDebugUtilsLabelEXT =
7732     unsafe extern "system" fn(queue: Queue, p_label_info: *const DebugUtilsLabelEXT);
7733 #[allow(non_camel_case_types)]
7734 pub type PFN_vkCmdBeginDebugUtilsLabelEXT = unsafe extern "system" fn(
7735     command_buffer: CommandBuffer,
7736     p_label_info: *const DebugUtilsLabelEXT,
7737 );
7738 #[allow(non_camel_case_types)]
7739 pub type PFN_vkCmdEndDebugUtilsLabelEXT = unsafe extern "system" fn(command_buffer: CommandBuffer);
7740 #[allow(non_camel_case_types)]
7741 pub type PFN_vkCmdInsertDebugUtilsLabelEXT = unsafe extern "system" fn(
7742     command_buffer: CommandBuffer,
7743     p_label_info: *const DebugUtilsLabelEXT,
7744 );
7745 #[allow(non_camel_case_types)]
7746 pub type PFN_vkCreateDebugUtilsMessengerEXT = unsafe extern "system" fn(
7747     instance: Instance,
7748     p_create_info: *const DebugUtilsMessengerCreateInfoEXT,
7749     p_allocator: *const AllocationCallbacks,
7750     p_messenger: *mut DebugUtilsMessengerEXT,
7751 ) -> Result;
7752 #[allow(non_camel_case_types)]
7753 pub type PFN_vkDestroyDebugUtilsMessengerEXT = unsafe extern "system" fn(
7754     instance: Instance,
7755     messenger: DebugUtilsMessengerEXT,
7756     p_allocator: *const AllocationCallbacks,
7757 );
7758 #[allow(non_camel_case_types)]
7759 pub type PFN_vkSubmitDebugUtilsMessageEXT = unsafe extern "system" fn(
7760     instance: Instance,
7761     message_severity: DebugUtilsMessageSeverityFlagsEXT,
7762     message_types: DebugUtilsMessageTypeFlagsEXT,
7763     p_callback_data: *const DebugUtilsMessengerCallbackDataEXT,
7764 );
7765 #[derive(Clone)]
7766 pub struct ExtDebugUtilsFn {
7767     pub set_debug_utils_object_name_ext: PFN_vkSetDebugUtilsObjectNameEXT,
7768     pub set_debug_utils_object_tag_ext: PFN_vkSetDebugUtilsObjectTagEXT,
7769     pub queue_begin_debug_utils_label_ext: PFN_vkQueueBeginDebugUtilsLabelEXT,
7770     pub queue_end_debug_utils_label_ext: PFN_vkQueueEndDebugUtilsLabelEXT,
7771     pub queue_insert_debug_utils_label_ext: PFN_vkQueueInsertDebugUtilsLabelEXT,
7772     pub cmd_begin_debug_utils_label_ext: PFN_vkCmdBeginDebugUtilsLabelEXT,
7773     pub cmd_end_debug_utils_label_ext: PFN_vkCmdEndDebugUtilsLabelEXT,
7774     pub cmd_insert_debug_utils_label_ext: PFN_vkCmdInsertDebugUtilsLabelEXT,
7775     pub create_debug_utils_messenger_ext: PFN_vkCreateDebugUtilsMessengerEXT,
7776     pub destroy_debug_utils_messenger_ext: PFN_vkDestroyDebugUtilsMessengerEXT,
7777     pub submit_debug_utils_message_ext: PFN_vkSubmitDebugUtilsMessageEXT,
7778 }
7779 unsafe impl Send for ExtDebugUtilsFn {}
7780 unsafe impl Sync for ExtDebugUtilsFn {}
7781 impl ExtDebugUtilsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7782     pub fn load<F>(mut _f: F) -> Self
7783     where
7784         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7785     {
7786         Self {
7787             set_debug_utils_object_name_ext: unsafe {
7788                 unsafe extern "system" fn set_debug_utils_object_name_ext(
7789                     _device: Device,
7790                     _p_name_info: *const DebugUtilsObjectNameInfoEXT,
7791                 ) -> Result {
7792                     panic!(concat!(
7793                         "Unable to load ",
7794                         stringify!(set_debug_utils_object_name_ext)
7795                     ))
7796                 }
7797                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7798                     b"vkSetDebugUtilsObjectNameEXT\0",
7799                 );
7800                 let val = _f(cname);
7801                 if val.is_null() {
7802                     set_debug_utils_object_name_ext
7803                 } else {
7804                     ::std::mem::transmute(val)
7805                 }
7806             },
7807             set_debug_utils_object_tag_ext: unsafe {
7808                 unsafe extern "system" fn set_debug_utils_object_tag_ext(
7809                     _device: Device,
7810                     _p_tag_info: *const DebugUtilsObjectTagInfoEXT,
7811                 ) -> Result {
7812                     panic!(concat!(
7813                         "Unable to load ",
7814                         stringify!(set_debug_utils_object_tag_ext)
7815                     ))
7816                 }
7817                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7818                     b"vkSetDebugUtilsObjectTagEXT\0",
7819                 );
7820                 let val = _f(cname);
7821                 if val.is_null() {
7822                     set_debug_utils_object_tag_ext
7823                 } else {
7824                     ::std::mem::transmute(val)
7825                 }
7826             },
7827             queue_begin_debug_utils_label_ext: unsafe {
7828                 unsafe extern "system" fn queue_begin_debug_utils_label_ext(
7829                     _queue: Queue,
7830                     _p_label_info: *const DebugUtilsLabelEXT,
7831                 ) {
7832                     panic!(concat!(
7833                         "Unable to load ",
7834                         stringify!(queue_begin_debug_utils_label_ext)
7835                     ))
7836                 }
7837                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7838                     b"vkQueueBeginDebugUtilsLabelEXT\0",
7839                 );
7840                 let val = _f(cname);
7841                 if val.is_null() {
7842                     queue_begin_debug_utils_label_ext
7843                 } else {
7844                     ::std::mem::transmute(val)
7845                 }
7846             },
7847             queue_end_debug_utils_label_ext: unsafe {
7848                 unsafe extern "system" fn queue_end_debug_utils_label_ext(_queue: Queue) {
7849                     panic!(concat!(
7850                         "Unable to load ",
7851                         stringify!(queue_end_debug_utils_label_ext)
7852                     ))
7853                 }
7854                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7855                     b"vkQueueEndDebugUtilsLabelEXT\0",
7856                 );
7857                 let val = _f(cname);
7858                 if val.is_null() {
7859                     queue_end_debug_utils_label_ext
7860                 } else {
7861                     ::std::mem::transmute(val)
7862                 }
7863             },
7864             queue_insert_debug_utils_label_ext: unsafe {
7865                 unsafe extern "system" fn queue_insert_debug_utils_label_ext(
7866                     _queue: Queue,
7867                     _p_label_info: *const DebugUtilsLabelEXT,
7868                 ) {
7869                     panic!(concat!(
7870                         "Unable to load ",
7871                         stringify!(queue_insert_debug_utils_label_ext)
7872                     ))
7873                 }
7874                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7875                     b"vkQueueInsertDebugUtilsLabelEXT\0",
7876                 );
7877                 let val = _f(cname);
7878                 if val.is_null() {
7879                     queue_insert_debug_utils_label_ext
7880                 } else {
7881                     ::std::mem::transmute(val)
7882                 }
7883             },
7884             cmd_begin_debug_utils_label_ext: unsafe {
7885                 unsafe extern "system" fn cmd_begin_debug_utils_label_ext(
7886                     _command_buffer: CommandBuffer,
7887                     _p_label_info: *const DebugUtilsLabelEXT,
7888                 ) {
7889                     panic!(concat!(
7890                         "Unable to load ",
7891                         stringify!(cmd_begin_debug_utils_label_ext)
7892                     ))
7893                 }
7894                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7895                     b"vkCmdBeginDebugUtilsLabelEXT\0",
7896                 );
7897                 let val = _f(cname);
7898                 if val.is_null() {
7899                     cmd_begin_debug_utils_label_ext
7900                 } else {
7901                     ::std::mem::transmute(val)
7902                 }
7903             },
7904             cmd_end_debug_utils_label_ext: unsafe {
7905                 unsafe extern "system" fn cmd_end_debug_utils_label_ext(
7906                     _command_buffer: CommandBuffer,
7907                 ) {
7908                     panic!(concat!(
7909                         "Unable to load ",
7910                         stringify!(cmd_end_debug_utils_label_ext)
7911                     ))
7912                 }
7913                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7914                     b"vkCmdEndDebugUtilsLabelEXT\0",
7915                 );
7916                 let val = _f(cname);
7917                 if val.is_null() {
7918                     cmd_end_debug_utils_label_ext
7919                 } else {
7920                     ::std::mem::transmute(val)
7921                 }
7922             },
7923             cmd_insert_debug_utils_label_ext: unsafe {
7924                 unsafe extern "system" fn cmd_insert_debug_utils_label_ext(
7925                     _command_buffer: CommandBuffer,
7926                     _p_label_info: *const DebugUtilsLabelEXT,
7927                 ) {
7928                     panic!(concat!(
7929                         "Unable to load ",
7930                         stringify!(cmd_insert_debug_utils_label_ext)
7931                     ))
7932                 }
7933                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7934                     b"vkCmdInsertDebugUtilsLabelEXT\0",
7935                 );
7936                 let val = _f(cname);
7937                 if val.is_null() {
7938                     cmd_insert_debug_utils_label_ext
7939                 } else {
7940                     ::std::mem::transmute(val)
7941                 }
7942             },
7943             create_debug_utils_messenger_ext: unsafe {
7944                 unsafe extern "system" fn create_debug_utils_messenger_ext(
7945                     _instance: Instance,
7946                     _p_create_info: *const DebugUtilsMessengerCreateInfoEXT,
7947                     _p_allocator: *const AllocationCallbacks,
7948                     _p_messenger: *mut DebugUtilsMessengerEXT,
7949                 ) -> Result {
7950                     panic!(concat!(
7951                         "Unable to load ",
7952                         stringify!(create_debug_utils_messenger_ext)
7953                     ))
7954                 }
7955                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7956                     b"vkCreateDebugUtilsMessengerEXT\0",
7957                 );
7958                 let val = _f(cname);
7959                 if val.is_null() {
7960                     create_debug_utils_messenger_ext
7961                 } else {
7962                     ::std::mem::transmute(val)
7963                 }
7964             },
7965             destroy_debug_utils_messenger_ext: unsafe {
7966                 unsafe extern "system" fn destroy_debug_utils_messenger_ext(
7967                     _instance: Instance,
7968                     _messenger: DebugUtilsMessengerEXT,
7969                     _p_allocator: *const AllocationCallbacks,
7970                 ) {
7971                     panic!(concat!(
7972                         "Unable to load ",
7973                         stringify!(destroy_debug_utils_messenger_ext)
7974                     ))
7975                 }
7976                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7977                     b"vkDestroyDebugUtilsMessengerEXT\0",
7978                 );
7979                 let val = _f(cname);
7980                 if val.is_null() {
7981                     destroy_debug_utils_messenger_ext
7982                 } else {
7983                     ::std::mem::transmute(val)
7984                 }
7985             },
7986             submit_debug_utils_message_ext: unsafe {
7987                 unsafe extern "system" fn submit_debug_utils_message_ext(
7988                     _instance: Instance,
7989                     _message_severity: DebugUtilsMessageSeverityFlagsEXT,
7990                     _message_types: DebugUtilsMessageTypeFlagsEXT,
7991                     _p_callback_data: *const DebugUtilsMessengerCallbackDataEXT,
7992                 ) {
7993                     panic!(concat!(
7994                         "Unable to load ",
7995                         stringify!(submit_debug_utils_message_ext)
7996                     ))
7997                 }
7998                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7999                     b"vkSubmitDebugUtilsMessageEXT\0",
8000                 );
8001                 let val = _f(cname);
8002                 if val.is_null() {
8003                     submit_debug_utils_message_ext
8004                 } else {
8005                     ::std::mem::transmute(val)
8006                 }
8007             },
8008         }
8009     }
8010 }
8011 #[doc = "Generated from 'VK_EXT_debug_utils'"]
8012 impl ObjectType {
8013     pub const DEBUG_UTILS_MESSENGER_EXT: Self = Self(1_000_128_000);
8014 }
8015 #[doc = "Generated from 'VK_EXT_debug_utils'"]
8016 impl StructureType {
8017     pub const DEBUG_UTILS_OBJECT_NAME_INFO_EXT: Self = Self(1_000_128_000);
8018     pub const DEBUG_UTILS_OBJECT_TAG_INFO_EXT: Self = Self(1_000_128_001);
8019     pub const DEBUG_UTILS_LABEL_EXT: Self = Self(1_000_128_002);
8020     pub const DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT: Self = Self(1_000_128_003);
8021     pub const DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT: Self = Self(1_000_128_004);
8022 }
8023 impl AndroidExternalMemoryAndroidHardwareBufferFn {
8024     #[inline]
name() -> &'static ::std::ffi::CStr8025     pub const fn name() -> &'static ::std::ffi::CStr {
8026         unsafe {
8027             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8028                 b"VK_ANDROID_external_memory_android_hardware_buffer\0",
8029             )
8030         }
8031     }
8032     pub const SPEC_VERSION: u32 = 5u32;
8033 }
8034 #[allow(non_camel_case_types)]
8035 pub type PFN_vkGetAndroidHardwareBufferPropertiesANDROID = unsafe extern "system" fn(
8036     device: Device,
8037     buffer: *const AHardwareBuffer,
8038     p_properties: *mut AndroidHardwareBufferPropertiesANDROID,
8039 ) -> Result;
8040 #[allow(non_camel_case_types)]
8041 pub type PFN_vkGetMemoryAndroidHardwareBufferANDROID = unsafe extern "system" fn(
8042     device: Device,
8043     p_info: *const MemoryGetAndroidHardwareBufferInfoANDROID,
8044     p_buffer: *mut *mut AHardwareBuffer,
8045 ) -> Result;
8046 #[derive(Clone)]
8047 pub struct AndroidExternalMemoryAndroidHardwareBufferFn {
8048     pub get_android_hardware_buffer_properties_android:
8049         PFN_vkGetAndroidHardwareBufferPropertiesANDROID,
8050     pub get_memory_android_hardware_buffer_android: PFN_vkGetMemoryAndroidHardwareBufferANDROID,
8051 }
8052 unsafe impl Send for AndroidExternalMemoryAndroidHardwareBufferFn {}
8053 unsafe impl Sync for AndroidExternalMemoryAndroidHardwareBufferFn {}
8054 impl AndroidExternalMemoryAndroidHardwareBufferFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8055     pub fn load<F>(mut _f: F) -> Self
8056     where
8057         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8058     {
8059         Self {
8060             get_android_hardware_buffer_properties_android: unsafe {
8061                 unsafe extern "system" fn get_android_hardware_buffer_properties_android(
8062                     _device: Device,
8063                     _buffer: *const AHardwareBuffer,
8064                     _p_properties: *mut AndroidHardwareBufferPropertiesANDROID,
8065                 ) -> Result {
8066                     panic!(concat!(
8067                         "Unable to load ",
8068                         stringify!(get_android_hardware_buffer_properties_android)
8069                     ))
8070                 }
8071                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8072                     b"vkGetAndroidHardwareBufferPropertiesANDROID\0",
8073                 );
8074                 let val = _f(cname);
8075                 if val.is_null() {
8076                     get_android_hardware_buffer_properties_android
8077                 } else {
8078                     ::std::mem::transmute(val)
8079                 }
8080             },
8081             get_memory_android_hardware_buffer_android: unsafe {
8082                 unsafe extern "system" fn get_memory_android_hardware_buffer_android(
8083                     _device: Device,
8084                     _p_info: *const MemoryGetAndroidHardwareBufferInfoANDROID,
8085                     _p_buffer: *mut *mut AHardwareBuffer,
8086                 ) -> Result {
8087                     panic!(concat!(
8088                         "Unable to load ",
8089                         stringify!(get_memory_android_hardware_buffer_android)
8090                     ))
8091                 }
8092                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8093                     b"vkGetMemoryAndroidHardwareBufferANDROID\0",
8094                 );
8095                 let val = _f(cname);
8096                 if val.is_null() {
8097                     get_memory_android_hardware_buffer_android
8098                 } else {
8099                     ::std::mem::transmute(val)
8100                 }
8101             },
8102         }
8103     }
8104 }
8105 #[doc = "Generated from 'VK_ANDROID_external_memory_android_hardware_buffer'"]
8106 impl ExternalMemoryHandleTypeFlags {
8107     pub const ANDROID_HARDWARE_BUFFER_ANDROID: Self = Self(0b100_0000_0000);
8108 }
8109 #[doc = "Generated from 'VK_ANDROID_external_memory_android_hardware_buffer'"]
8110 impl StructureType {
8111     pub const ANDROID_HARDWARE_BUFFER_USAGE_ANDROID: Self = Self(1_000_129_000);
8112     pub const ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID: Self = Self(1_000_129_001);
8113     pub const ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID: Self = Self(1_000_129_002);
8114     pub const IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID: Self = Self(1_000_129_003);
8115     pub const MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID: Self = Self(1_000_129_004);
8116     pub const EXTERNAL_FORMAT_ANDROID: Self = Self(1_000_129_005);
8117     pub const ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID: Self = Self(1_000_129_006);
8118 }
8119 impl ExtSamplerFilterMinmaxFn {
8120     #[inline]
name() -> &'static ::std::ffi::CStr8121     pub const fn name() -> &'static ::std::ffi::CStr {
8122         unsafe {
8123             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_sampler_filter_minmax\0")
8124         }
8125     }
8126     pub const SPEC_VERSION: u32 = 2u32;
8127 }
8128 #[derive(Clone)]
8129 pub struct ExtSamplerFilterMinmaxFn {}
8130 unsafe impl Send for ExtSamplerFilterMinmaxFn {}
8131 unsafe impl Sync for ExtSamplerFilterMinmaxFn {}
8132 impl ExtSamplerFilterMinmaxFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8133     pub fn load<F>(mut _f: F) -> Self
8134     where
8135         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8136     {
8137         Self {}
8138     }
8139 }
8140 #[doc = "Generated from 'VK_EXT_sampler_filter_minmax'"]
8141 impl FormatFeatureFlags {
8142     pub const SAMPLED_IMAGE_FILTER_MINMAX_EXT: Self = Self::SAMPLED_IMAGE_FILTER_MINMAX;
8143 }
8144 #[doc = "Generated from 'VK_EXT_sampler_filter_minmax'"]
8145 impl SamplerReductionMode {
8146     pub const WEIGHTED_AVERAGE_EXT: Self = Self::WEIGHTED_AVERAGE;
8147     pub const MIN_EXT: Self = Self::MIN;
8148     pub const MAX_EXT: Self = Self::MAX;
8149 }
8150 #[doc = "Generated from 'VK_EXT_sampler_filter_minmax'"]
8151 impl StructureType {
8152     pub const PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT: Self =
8153         Self::PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES;
8154     pub const SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT: Self =
8155         Self::SAMPLER_REDUCTION_MODE_CREATE_INFO;
8156 }
8157 impl KhrStorageBufferStorageClassFn {
8158     #[inline]
name() -> &'static ::std::ffi::CStr8159     pub const fn name() -> &'static ::std::ffi::CStr {
8160         unsafe {
8161             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8162                 b"VK_KHR_storage_buffer_storage_class\0",
8163             )
8164         }
8165     }
8166     pub const SPEC_VERSION: u32 = 1u32;
8167 }
8168 #[derive(Clone)]
8169 pub struct KhrStorageBufferStorageClassFn {}
8170 unsafe impl Send for KhrStorageBufferStorageClassFn {}
8171 unsafe impl Sync for KhrStorageBufferStorageClassFn {}
8172 impl KhrStorageBufferStorageClassFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8173     pub fn load<F>(mut _f: F) -> Self
8174     where
8175         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8176     {
8177         Self {}
8178     }
8179 }
8180 impl AmdGpuShaderInt16Fn {
8181     #[inline]
name() -> &'static ::std::ffi::CStr8182     pub const fn name() -> &'static ::std::ffi::CStr {
8183         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_gpu_shader_int16\0") }
8184     }
8185     pub const SPEC_VERSION: u32 = 2u32;
8186 }
8187 #[derive(Clone)]
8188 pub struct AmdGpuShaderInt16Fn {}
8189 unsafe impl Send for AmdGpuShaderInt16Fn {}
8190 unsafe impl Sync for AmdGpuShaderInt16Fn {}
8191 impl AmdGpuShaderInt16Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8192     pub fn load<F>(mut _f: F) -> Self
8193     where
8194         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8195     {
8196         Self {}
8197     }
8198 }
8199 impl AmdExtension134Fn {
8200     #[inline]
name() -> &'static ::std::ffi::CStr8201     pub const fn name() -> &'static ::std::ffi::CStr {
8202         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_134\0") }
8203     }
8204     pub const SPEC_VERSION: u32 = 0u32;
8205 }
8206 #[derive(Clone)]
8207 pub struct AmdExtension134Fn {}
8208 unsafe impl Send for AmdExtension134Fn {}
8209 unsafe impl Sync for AmdExtension134Fn {}
8210 impl AmdExtension134Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8211     pub fn load<F>(mut _f: F) -> Self
8212     where
8213         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8214     {
8215         Self {}
8216     }
8217 }
8218 impl AmdExtension135Fn {
8219     #[inline]
name() -> &'static ::std::ffi::CStr8220     pub const fn name() -> &'static ::std::ffi::CStr {
8221         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_135\0") }
8222     }
8223     pub const SPEC_VERSION: u32 = 0u32;
8224 }
8225 #[derive(Clone)]
8226 pub struct AmdExtension135Fn {}
8227 unsafe impl Send for AmdExtension135Fn {}
8228 unsafe impl Sync for AmdExtension135Fn {}
8229 impl AmdExtension135Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8230     pub fn load<F>(mut _f: F) -> Self
8231     where
8232         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8233     {
8234         Self {}
8235     }
8236 }
8237 #[doc = "Generated from 'VK_AMD_extension_135'"]
8238 impl BufferUsageFlags {
8239     pub const RESERVED_25_AMD: Self = Self(0b10_0000_0000_0000_0000_0000_0000);
8240 }
8241 impl AmdExtension136Fn {
8242     #[inline]
name() -> &'static ::std::ffi::CStr8243     pub const fn name() -> &'static ::std::ffi::CStr {
8244         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_136\0") }
8245     }
8246     pub const SPEC_VERSION: u32 = 0u32;
8247 }
8248 #[derive(Clone)]
8249 pub struct AmdExtension136Fn {}
8250 unsafe impl Send for AmdExtension136Fn {}
8251 unsafe impl Sync for AmdExtension136Fn {}
8252 impl AmdExtension136Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8253     pub fn load<F>(mut _f: F) -> Self
8254     where
8255         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8256     {
8257         Self {}
8258     }
8259 }
8260 impl AmdMixedAttachmentSamplesFn {
8261     #[inline]
name() -> &'static ::std::ffi::CStr8262     pub const fn name() -> &'static ::std::ffi::CStr {
8263         unsafe {
8264             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_mixed_attachment_samples\0")
8265         }
8266     }
8267     pub const SPEC_VERSION: u32 = 1u32;
8268 }
8269 #[derive(Clone)]
8270 pub struct AmdMixedAttachmentSamplesFn {}
8271 unsafe impl Send for AmdMixedAttachmentSamplesFn {}
8272 unsafe impl Sync for AmdMixedAttachmentSamplesFn {}
8273 impl AmdMixedAttachmentSamplesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8274     pub fn load<F>(mut _f: F) -> Self
8275     where
8276         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8277     {
8278         Self {}
8279     }
8280 }
8281 impl AmdShaderFragmentMaskFn {
8282     #[inline]
name() -> &'static ::std::ffi::CStr8283     pub const fn name() -> &'static ::std::ffi::CStr {
8284         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_fragment_mask\0") }
8285     }
8286     pub const SPEC_VERSION: u32 = 1u32;
8287 }
8288 #[derive(Clone)]
8289 pub struct AmdShaderFragmentMaskFn {}
8290 unsafe impl Send for AmdShaderFragmentMaskFn {}
8291 unsafe impl Sync for AmdShaderFragmentMaskFn {}
8292 impl AmdShaderFragmentMaskFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8293     pub fn load<F>(mut _f: F) -> Self
8294     where
8295         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8296     {
8297         Self {}
8298     }
8299 }
8300 impl ExtInlineUniformBlockFn {
8301     #[inline]
name() -> &'static ::std::ffi::CStr8302     pub const fn name() -> &'static ::std::ffi::CStr {
8303         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_inline_uniform_block\0") }
8304     }
8305     pub const SPEC_VERSION: u32 = 1u32;
8306 }
8307 #[derive(Clone)]
8308 pub struct ExtInlineUniformBlockFn {}
8309 unsafe impl Send for ExtInlineUniformBlockFn {}
8310 unsafe impl Sync for ExtInlineUniformBlockFn {}
8311 impl ExtInlineUniformBlockFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8312     pub fn load<F>(mut _f: F) -> Self
8313     where
8314         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8315     {
8316         Self {}
8317     }
8318 }
8319 #[doc = "Generated from 'VK_EXT_inline_uniform_block'"]
8320 impl DescriptorType {
8321     pub const INLINE_UNIFORM_BLOCK_EXT: Self = Self::INLINE_UNIFORM_BLOCK;
8322 }
8323 #[doc = "Generated from 'VK_EXT_inline_uniform_block'"]
8324 impl StructureType {
8325     pub const PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT: Self =
8326         Self::PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES;
8327     pub const PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT: Self =
8328         Self::PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES;
8329     pub const WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT: Self =
8330         Self::WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK;
8331     pub const DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT: Self =
8332         Self::DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO;
8333 }
8334 impl AmdExtension140Fn {
8335     #[inline]
name() -> &'static ::std::ffi::CStr8336     pub const fn name() -> &'static ::std::ffi::CStr {
8337         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_140\0") }
8338     }
8339     pub const SPEC_VERSION: u32 = 0u32;
8340 }
8341 #[derive(Clone)]
8342 pub struct AmdExtension140Fn {}
8343 unsafe impl Send for AmdExtension140Fn {}
8344 unsafe impl Sync for AmdExtension140Fn {}
8345 impl AmdExtension140Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8346     pub fn load<F>(mut _f: F) -> Self
8347     where
8348         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8349     {
8350         Self {}
8351     }
8352 }
8353 impl ExtShaderStencilExportFn {
8354     #[inline]
name() -> &'static ::std::ffi::CStr8355     pub const fn name() -> &'static ::std::ffi::CStr {
8356         unsafe {
8357             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_stencil_export\0")
8358         }
8359     }
8360     pub const SPEC_VERSION: u32 = 1u32;
8361 }
8362 #[derive(Clone)]
8363 pub struct ExtShaderStencilExportFn {}
8364 unsafe impl Send for ExtShaderStencilExportFn {}
8365 unsafe impl Sync for ExtShaderStencilExportFn {}
8366 impl ExtShaderStencilExportFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8367     pub fn load<F>(mut _f: F) -> Self
8368     where
8369         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8370     {
8371         Self {}
8372     }
8373 }
8374 impl AmdExtension142Fn {
8375     #[inline]
name() -> &'static ::std::ffi::CStr8376     pub const fn name() -> &'static ::std::ffi::CStr {
8377         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_142\0") }
8378     }
8379     pub const SPEC_VERSION: u32 = 0u32;
8380 }
8381 #[derive(Clone)]
8382 pub struct AmdExtension142Fn {}
8383 unsafe impl Send for AmdExtension142Fn {}
8384 unsafe impl Sync for AmdExtension142Fn {}
8385 impl AmdExtension142Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8386     pub fn load<F>(mut _f: F) -> Self
8387     where
8388         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8389     {
8390         Self {}
8391     }
8392 }
8393 impl AmdExtension143Fn {
8394     #[inline]
name() -> &'static ::std::ffi::CStr8395     pub const fn name() -> &'static ::std::ffi::CStr {
8396         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_143\0") }
8397     }
8398     pub const SPEC_VERSION: u32 = 0u32;
8399 }
8400 #[derive(Clone)]
8401 pub struct AmdExtension143Fn {}
8402 unsafe impl Send for AmdExtension143Fn {}
8403 unsafe impl Sync for AmdExtension143Fn {}
8404 impl AmdExtension143Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8405     pub fn load<F>(mut _f: F) -> Self
8406     where
8407         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8408     {
8409         Self {}
8410     }
8411 }
8412 impl ExtSampleLocationsFn {
8413     #[inline]
name() -> &'static ::std::ffi::CStr8414     pub const fn name() -> &'static ::std::ffi::CStr {
8415         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_sample_locations\0") }
8416     }
8417     pub const SPEC_VERSION: u32 = 1u32;
8418 }
8419 #[allow(non_camel_case_types)]
8420 pub type PFN_vkCmdSetSampleLocationsEXT = unsafe extern "system" fn(
8421     command_buffer: CommandBuffer,
8422     p_sample_locations_info: *const SampleLocationsInfoEXT,
8423 );
8424 #[allow(non_camel_case_types)]
8425 pub type PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = unsafe extern "system" fn(
8426     physical_device: PhysicalDevice,
8427     samples: SampleCountFlags,
8428     p_multisample_properties: *mut MultisamplePropertiesEXT,
8429 );
8430 #[derive(Clone)]
8431 pub struct ExtSampleLocationsFn {
8432     pub cmd_set_sample_locations_ext: PFN_vkCmdSetSampleLocationsEXT,
8433     pub get_physical_device_multisample_properties_ext:
8434         PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT,
8435 }
8436 unsafe impl Send for ExtSampleLocationsFn {}
8437 unsafe impl Sync for ExtSampleLocationsFn {}
8438 impl ExtSampleLocationsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8439     pub fn load<F>(mut _f: F) -> Self
8440     where
8441         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8442     {
8443         Self {
8444             cmd_set_sample_locations_ext: unsafe {
8445                 unsafe extern "system" fn cmd_set_sample_locations_ext(
8446                     _command_buffer: CommandBuffer,
8447                     _p_sample_locations_info: *const SampleLocationsInfoEXT,
8448                 ) {
8449                     panic!(concat!(
8450                         "Unable to load ",
8451                         stringify!(cmd_set_sample_locations_ext)
8452                     ))
8453                 }
8454                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8455                     b"vkCmdSetSampleLocationsEXT\0",
8456                 );
8457                 let val = _f(cname);
8458                 if val.is_null() {
8459                     cmd_set_sample_locations_ext
8460                 } else {
8461                     ::std::mem::transmute(val)
8462                 }
8463             },
8464             get_physical_device_multisample_properties_ext: unsafe {
8465                 unsafe extern "system" fn get_physical_device_multisample_properties_ext(
8466                     _physical_device: PhysicalDevice,
8467                     _samples: SampleCountFlags,
8468                     _p_multisample_properties: *mut MultisamplePropertiesEXT,
8469                 ) {
8470                     panic!(concat!(
8471                         "Unable to load ",
8472                         stringify!(get_physical_device_multisample_properties_ext)
8473                     ))
8474                 }
8475                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8476                     b"vkGetPhysicalDeviceMultisamplePropertiesEXT\0",
8477                 );
8478                 let val = _f(cname);
8479                 if val.is_null() {
8480                     get_physical_device_multisample_properties_ext
8481                 } else {
8482                     ::std::mem::transmute(val)
8483                 }
8484             },
8485         }
8486     }
8487 }
8488 #[doc = "Generated from 'VK_EXT_sample_locations'"]
8489 impl DynamicState {
8490     pub const SAMPLE_LOCATIONS_EXT: Self = Self(1_000_143_000);
8491 }
8492 #[doc = "Generated from 'VK_EXT_sample_locations'"]
8493 impl ImageCreateFlags {
8494     pub const SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_EXT: Self = Self(0b1_0000_0000_0000);
8495 }
8496 #[doc = "Generated from 'VK_EXT_sample_locations'"]
8497 impl StructureType {
8498     pub const SAMPLE_LOCATIONS_INFO_EXT: Self = Self(1_000_143_000);
8499     pub const RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT: Self = Self(1_000_143_001);
8500     pub const PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT: Self = Self(1_000_143_002);
8501     pub const PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT: Self = Self(1_000_143_003);
8502     pub const MULTISAMPLE_PROPERTIES_EXT: Self = Self(1_000_143_004);
8503 }
8504 impl KhrRelaxedBlockLayoutFn {
8505     #[inline]
name() -> &'static ::std::ffi::CStr8506     pub const fn name() -> &'static ::std::ffi::CStr {
8507         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_relaxed_block_layout\0") }
8508     }
8509     pub const SPEC_VERSION: u32 = 1u32;
8510 }
8511 #[derive(Clone)]
8512 pub struct KhrRelaxedBlockLayoutFn {}
8513 unsafe impl Send for KhrRelaxedBlockLayoutFn {}
8514 unsafe impl Sync for KhrRelaxedBlockLayoutFn {}
8515 impl KhrRelaxedBlockLayoutFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8516     pub fn load<F>(mut _f: F) -> Self
8517     where
8518         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8519     {
8520         Self {}
8521     }
8522 }
8523 impl ReservedDoNotUse146Fn {
8524     #[inline]
name() -> &'static ::std::ffi::CStr8525     pub const fn name() -> &'static ::std::ffi::CStr {
8526         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_RESERVED_do_not_use_146\0") }
8527     }
8528     pub const SPEC_VERSION: u32 = 1u32;
8529 }
8530 #[derive(Clone)]
8531 pub struct ReservedDoNotUse146Fn {}
8532 unsafe impl Send for ReservedDoNotUse146Fn {}
8533 unsafe impl Sync for ReservedDoNotUse146Fn {}
8534 impl ReservedDoNotUse146Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8535     pub fn load<F>(mut _f: F) -> Self
8536     where
8537         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8538     {
8539         Self {}
8540     }
8541 }
8542 impl KhrGetMemoryRequirements2Fn {
8543     #[inline]
name() -> &'static ::std::ffi::CStr8544     pub const fn name() -> &'static ::std::ffi::CStr {
8545         unsafe {
8546             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_get_memory_requirements2\0")
8547         }
8548     }
8549     pub const SPEC_VERSION: u32 = 1u32;
8550 }
8551 #[allow(non_camel_case_types)]
8552 pub type PFN_vkGetImageMemoryRequirements2 = unsafe extern "system" fn(
8553     device: Device,
8554     p_info: *const ImageMemoryRequirementsInfo2,
8555     p_memory_requirements: *mut MemoryRequirements2,
8556 );
8557 #[allow(non_camel_case_types)]
8558 pub type PFN_vkGetBufferMemoryRequirements2 = unsafe extern "system" fn(
8559     device: Device,
8560     p_info: *const BufferMemoryRequirementsInfo2,
8561     p_memory_requirements: *mut MemoryRequirements2,
8562 );
8563 #[allow(non_camel_case_types)]
8564 pub type PFN_vkGetImageSparseMemoryRequirements2 = unsafe extern "system" fn(
8565     device: Device,
8566     p_info: *const ImageSparseMemoryRequirementsInfo2,
8567     p_sparse_memory_requirement_count: *mut u32,
8568     p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2,
8569 );
8570 #[derive(Clone)]
8571 pub struct KhrGetMemoryRequirements2Fn {
8572     pub get_image_memory_requirements2_khr: PFN_vkGetImageMemoryRequirements2,
8573     pub get_buffer_memory_requirements2_khr: PFN_vkGetBufferMemoryRequirements2,
8574     pub get_image_sparse_memory_requirements2_khr: PFN_vkGetImageSparseMemoryRequirements2,
8575 }
8576 unsafe impl Send for KhrGetMemoryRequirements2Fn {}
8577 unsafe impl Sync for KhrGetMemoryRequirements2Fn {}
8578 impl KhrGetMemoryRequirements2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8579     pub fn load<F>(mut _f: F) -> Self
8580     where
8581         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8582     {
8583         Self {
8584             get_image_memory_requirements2_khr: unsafe {
8585                 unsafe extern "system" fn get_image_memory_requirements2_khr(
8586                     _device: Device,
8587                     _p_info: *const ImageMemoryRequirementsInfo2,
8588                     _p_memory_requirements: *mut MemoryRequirements2,
8589                 ) {
8590                     panic!(concat!(
8591                         "Unable to load ",
8592                         stringify!(get_image_memory_requirements2_khr)
8593                     ))
8594                 }
8595                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8596                     b"vkGetImageMemoryRequirements2KHR\0",
8597                 );
8598                 let val = _f(cname);
8599                 if val.is_null() {
8600                     get_image_memory_requirements2_khr
8601                 } else {
8602                     ::std::mem::transmute(val)
8603                 }
8604             },
8605             get_buffer_memory_requirements2_khr: unsafe {
8606                 unsafe extern "system" fn get_buffer_memory_requirements2_khr(
8607                     _device: Device,
8608                     _p_info: *const BufferMemoryRequirementsInfo2,
8609                     _p_memory_requirements: *mut MemoryRequirements2,
8610                 ) {
8611                     panic!(concat!(
8612                         "Unable to load ",
8613                         stringify!(get_buffer_memory_requirements2_khr)
8614                     ))
8615                 }
8616                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8617                     b"vkGetBufferMemoryRequirements2KHR\0",
8618                 );
8619                 let val = _f(cname);
8620                 if val.is_null() {
8621                     get_buffer_memory_requirements2_khr
8622                 } else {
8623                     ::std::mem::transmute(val)
8624                 }
8625             },
8626             get_image_sparse_memory_requirements2_khr: unsafe {
8627                 unsafe extern "system" fn get_image_sparse_memory_requirements2_khr(
8628                     _device: Device,
8629                     _p_info: *const ImageSparseMemoryRequirementsInfo2,
8630                     _p_sparse_memory_requirement_count: *mut u32,
8631                     _p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2,
8632                 ) {
8633                     panic!(concat!(
8634                         "Unable to load ",
8635                         stringify!(get_image_sparse_memory_requirements2_khr)
8636                     ))
8637                 }
8638                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8639                     b"vkGetImageSparseMemoryRequirements2KHR\0",
8640                 );
8641                 let val = _f(cname);
8642                 if val.is_null() {
8643                     get_image_sparse_memory_requirements2_khr
8644                 } else {
8645                     ::std::mem::transmute(val)
8646                 }
8647             },
8648         }
8649     }
8650 }
8651 #[doc = "Generated from 'VK_KHR_get_memory_requirements2'"]
8652 impl StructureType {
8653     pub const BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR: Self = Self::BUFFER_MEMORY_REQUIREMENTS_INFO_2;
8654     pub const IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR: Self = Self::IMAGE_MEMORY_REQUIREMENTS_INFO_2;
8655     pub const IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR: Self =
8656         Self::IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2;
8657     pub const MEMORY_REQUIREMENTS_2_KHR: Self = Self::MEMORY_REQUIREMENTS_2;
8658     pub const SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR: Self =
8659         Self::SPARSE_IMAGE_MEMORY_REQUIREMENTS_2;
8660 }
8661 impl KhrImageFormatListFn {
8662     #[inline]
name() -> &'static ::std::ffi::CStr8663     pub const fn name() -> &'static ::std::ffi::CStr {
8664         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_image_format_list\0") }
8665     }
8666     pub const SPEC_VERSION: u32 = 1u32;
8667 }
8668 #[derive(Clone)]
8669 pub struct KhrImageFormatListFn {}
8670 unsafe impl Send for KhrImageFormatListFn {}
8671 unsafe impl Sync for KhrImageFormatListFn {}
8672 impl KhrImageFormatListFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8673     pub fn load<F>(mut _f: F) -> Self
8674     where
8675         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8676     {
8677         Self {}
8678     }
8679 }
8680 #[doc = "Generated from 'VK_KHR_image_format_list'"]
8681 impl StructureType {
8682     pub const IMAGE_FORMAT_LIST_CREATE_INFO_KHR: Self = Self::IMAGE_FORMAT_LIST_CREATE_INFO;
8683 }
8684 impl ExtBlendOperationAdvancedFn {
8685     #[inline]
name() -> &'static ::std::ffi::CStr8686     pub const fn name() -> &'static ::std::ffi::CStr {
8687         unsafe {
8688             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_blend_operation_advanced\0")
8689         }
8690     }
8691     pub const SPEC_VERSION: u32 = 2u32;
8692 }
8693 #[derive(Clone)]
8694 pub struct ExtBlendOperationAdvancedFn {}
8695 unsafe impl Send for ExtBlendOperationAdvancedFn {}
8696 unsafe impl Sync for ExtBlendOperationAdvancedFn {}
8697 impl ExtBlendOperationAdvancedFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8698     pub fn load<F>(mut _f: F) -> Self
8699     where
8700         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8701     {
8702         Self {}
8703     }
8704 }
8705 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
8706 impl AccessFlags {
8707     pub const COLOR_ATTACHMENT_READ_NONCOHERENT_EXT: Self = Self(0b1000_0000_0000_0000_0000);
8708 }
8709 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
8710 impl BlendOp {
8711     pub const ZERO_EXT: Self = Self(1_000_148_000);
8712     pub const SRC_EXT: Self = Self(1_000_148_001);
8713     pub const DST_EXT: Self = Self(1_000_148_002);
8714     pub const SRC_OVER_EXT: Self = Self(1_000_148_003);
8715     pub const DST_OVER_EXT: Self = Self(1_000_148_004);
8716     pub const SRC_IN_EXT: Self = Self(1_000_148_005);
8717     pub const DST_IN_EXT: Self = Self(1_000_148_006);
8718     pub const SRC_OUT_EXT: Self = Self(1_000_148_007);
8719     pub const DST_OUT_EXT: Self = Self(1_000_148_008);
8720     pub const SRC_ATOP_EXT: Self = Self(1_000_148_009);
8721     pub const DST_ATOP_EXT: Self = Self(1_000_148_010);
8722     pub const XOR_EXT: Self = Self(1_000_148_011);
8723     pub const MULTIPLY_EXT: Self = Self(1_000_148_012);
8724     pub const SCREEN_EXT: Self = Self(1_000_148_013);
8725     pub const OVERLAY_EXT: Self = Self(1_000_148_014);
8726     pub const DARKEN_EXT: Self = Self(1_000_148_015);
8727     pub const LIGHTEN_EXT: Self = Self(1_000_148_016);
8728     pub const COLORDODGE_EXT: Self = Self(1_000_148_017);
8729     pub const COLORBURN_EXT: Self = Self(1_000_148_018);
8730     pub const HARDLIGHT_EXT: Self = Self(1_000_148_019);
8731     pub const SOFTLIGHT_EXT: Self = Self(1_000_148_020);
8732     pub const DIFFERENCE_EXT: Self = Self(1_000_148_021);
8733     pub const EXCLUSION_EXT: Self = Self(1_000_148_022);
8734     pub const INVERT_EXT: Self = Self(1_000_148_023);
8735     pub const INVERT_RGB_EXT: Self = Self(1_000_148_024);
8736     pub const LINEARDODGE_EXT: Self = Self(1_000_148_025);
8737     pub const LINEARBURN_EXT: Self = Self(1_000_148_026);
8738     pub const VIVIDLIGHT_EXT: Self = Self(1_000_148_027);
8739     pub const LINEARLIGHT_EXT: Self = Self(1_000_148_028);
8740     pub const PINLIGHT_EXT: Self = Self(1_000_148_029);
8741     pub const HARDMIX_EXT: Self = Self(1_000_148_030);
8742     pub const HSL_HUE_EXT: Self = Self(1_000_148_031);
8743     pub const HSL_SATURATION_EXT: Self = Self(1_000_148_032);
8744     pub const HSL_COLOR_EXT: Self = Self(1_000_148_033);
8745     pub const HSL_LUMINOSITY_EXT: Self = Self(1_000_148_034);
8746     pub const PLUS_EXT: Self = Self(1_000_148_035);
8747     pub const PLUS_CLAMPED_EXT: Self = Self(1_000_148_036);
8748     pub const PLUS_CLAMPED_ALPHA_EXT: Self = Self(1_000_148_037);
8749     pub const PLUS_DARKER_EXT: Self = Self(1_000_148_038);
8750     pub const MINUS_EXT: Self = Self(1_000_148_039);
8751     pub const MINUS_CLAMPED_EXT: Self = Self(1_000_148_040);
8752     pub const CONTRAST_EXT: Self = Self(1_000_148_041);
8753     pub const INVERT_OVG_EXT: Self = Self(1_000_148_042);
8754     pub const RED_EXT: Self = Self(1_000_148_043);
8755     pub const GREEN_EXT: Self = Self(1_000_148_044);
8756     pub const BLUE_EXT: Self = Self(1_000_148_045);
8757 }
8758 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
8759 impl StructureType {
8760     pub const PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT: Self = Self(1_000_148_000);
8761     pub const PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT: Self = Self(1_000_148_001);
8762     pub const PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT: Self = Self(1_000_148_002);
8763 }
8764 impl NvFragmentCoverageToColorFn {
8765     #[inline]
name() -> &'static ::std::ffi::CStr8766     pub const fn name() -> &'static ::std::ffi::CStr {
8767         unsafe {
8768             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_fragment_coverage_to_color\0")
8769         }
8770     }
8771     pub const SPEC_VERSION: u32 = 1u32;
8772 }
8773 #[derive(Clone)]
8774 pub struct NvFragmentCoverageToColorFn {}
8775 unsafe impl Send for NvFragmentCoverageToColorFn {}
8776 unsafe impl Sync for NvFragmentCoverageToColorFn {}
8777 impl NvFragmentCoverageToColorFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8778     pub fn load<F>(mut _f: F) -> Self
8779     where
8780         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8781     {
8782         Self {}
8783     }
8784 }
8785 #[doc = "Generated from 'VK_NV_fragment_coverage_to_color'"]
8786 impl StructureType {
8787     pub const PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV: Self = Self(1_000_149_000);
8788 }
8789 impl KhrAccelerationStructureFn {
8790     #[inline]
name() -> &'static ::std::ffi::CStr8791     pub const fn name() -> &'static ::std::ffi::CStr {
8792         unsafe {
8793             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_acceleration_structure\0")
8794         }
8795     }
8796     pub const SPEC_VERSION: u32 = 13u32;
8797 }
8798 #[allow(non_camel_case_types)]
8799 pub type PFN_vkCreateAccelerationStructureKHR = unsafe extern "system" fn(
8800     device: Device,
8801     p_create_info: *const AccelerationStructureCreateInfoKHR,
8802     p_allocator: *const AllocationCallbacks,
8803     p_acceleration_structure: *mut AccelerationStructureKHR,
8804 ) -> Result;
8805 #[allow(non_camel_case_types)]
8806 pub type PFN_vkDestroyAccelerationStructureKHR = unsafe extern "system" fn(
8807     device: Device,
8808     acceleration_structure: AccelerationStructureKHR,
8809     p_allocator: *const AllocationCallbacks,
8810 );
8811 #[allow(non_camel_case_types)]
8812 pub type PFN_vkCmdBuildAccelerationStructuresKHR = unsafe extern "system" fn(
8813     command_buffer: CommandBuffer,
8814     info_count: u32,
8815     p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
8816     pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR,
8817 );
8818 #[allow(non_camel_case_types)]
8819 pub type PFN_vkCmdBuildAccelerationStructuresIndirectKHR = unsafe extern "system" fn(
8820     command_buffer: CommandBuffer,
8821     info_count: u32,
8822     p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
8823     p_indirect_device_addresses: *const DeviceAddress,
8824     p_indirect_strides: *const u32,
8825     pp_max_primitive_counts: *const *const u32,
8826 );
8827 #[allow(non_camel_case_types)]
8828 pub type PFN_vkBuildAccelerationStructuresKHR = unsafe extern "system" fn(
8829     device: Device,
8830     deferred_operation: DeferredOperationKHR,
8831     info_count: u32,
8832     p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
8833     pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR,
8834 ) -> Result;
8835 #[allow(non_camel_case_types)]
8836 pub type PFN_vkCopyAccelerationStructureKHR = unsafe extern "system" fn(
8837     device: Device,
8838     deferred_operation: DeferredOperationKHR,
8839     p_info: *const CopyAccelerationStructureInfoKHR,
8840 ) -> Result;
8841 #[allow(non_camel_case_types)]
8842 pub type PFN_vkCopyAccelerationStructureToMemoryKHR = unsafe extern "system" fn(
8843     device: Device,
8844     deferred_operation: DeferredOperationKHR,
8845     p_info: *const CopyAccelerationStructureToMemoryInfoKHR,
8846 ) -> Result;
8847 #[allow(non_camel_case_types)]
8848 pub type PFN_vkCopyMemoryToAccelerationStructureKHR = unsafe extern "system" fn(
8849     device: Device,
8850     deferred_operation: DeferredOperationKHR,
8851     p_info: *const CopyMemoryToAccelerationStructureInfoKHR,
8852 ) -> Result;
8853 #[allow(non_camel_case_types)]
8854 pub type PFN_vkWriteAccelerationStructuresPropertiesKHR = unsafe extern "system" fn(
8855     device: Device,
8856     acceleration_structure_count: u32,
8857     p_acceleration_structures: *const AccelerationStructureKHR,
8858     query_type: QueryType,
8859     data_size: usize,
8860     p_data: *mut c_void,
8861     stride: usize,
8862 ) -> Result;
8863 #[allow(non_camel_case_types)]
8864 pub type PFN_vkCmdCopyAccelerationStructureKHR = unsafe extern "system" fn(
8865     command_buffer: CommandBuffer,
8866     p_info: *const CopyAccelerationStructureInfoKHR,
8867 );
8868 #[allow(non_camel_case_types)]
8869 pub type PFN_vkCmdCopyAccelerationStructureToMemoryKHR = unsafe extern "system" fn(
8870     command_buffer: CommandBuffer,
8871     p_info: *const CopyAccelerationStructureToMemoryInfoKHR,
8872 );
8873 #[allow(non_camel_case_types)]
8874 pub type PFN_vkCmdCopyMemoryToAccelerationStructureKHR = unsafe extern "system" fn(
8875     command_buffer: CommandBuffer,
8876     p_info: *const CopyMemoryToAccelerationStructureInfoKHR,
8877 );
8878 #[allow(non_camel_case_types)]
8879 pub type PFN_vkGetAccelerationStructureDeviceAddressKHR =
8880     unsafe extern "system" fn(
8881         device: Device,
8882         p_info: *const AccelerationStructureDeviceAddressInfoKHR,
8883     ) -> DeviceAddress;
8884 #[allow(non_camel_case_types)]
8885 pub type PFN_vkCmdWriteAccelerationStructuresPropertiesKHR = unsafe extern "system" fn(
8886     command_buffer: CommandBuffer,
8887     acceleration_structure_count: u32,
8888     p_acceleration_structures: *const AccelerationStructureKHR,
8889     query_type: QueryType,
8890     query_pool: QueryPool,
8891     first_query: u32,
8892 );
8893 #[allow(non_camel_case_types)]
8894 pub type PFN_vkGetDeviceAccelerationStructureCompatibilityKHR = unsafe extern "system" fn(
8895     device: Device,
8896     p_version_info: *const AccelerationStructureVersionInfoKHR,
8897     p_compatibility: *mut AccelerationStructureCompatibilityKHR,
8898 );
8899 #[allow(non_camel_case_types)]
8900 pub type PFN_vkGetAccelerationStructureBuildSizesKHR = unsafe extern "system" fn(
8901     device: Device,
8902     build_type: AccelerationStructureBuildTypeKHR,
8903     p_build_info: *const AccelerationStructureBuildGeometryInfoKHR,
8904     p_max_primitive_counts: *const u32,
8905     p_size_info: *mut AccelerationStructureBuildSizesInfoKHR,
8906 );
8907 #[derive(Clone)]
8908 pub struct KhrAccelerationStructureFn {
8909     pub create_acceleration_structure_khr: PFN_vkCreateAccelerationStructureKHR,
8910     pub destroy_acceleration_structure_khr: PFN_vkDestroyAccelerationStructureKHR,
8911     pub cmd_build_acceleration_structures_khr: PFN_vkCmdBuildAccelerationStructuresKHR,
8912     pub cmd_build_acceleration_structures_indirect_khr:
8913         PFN_vkCmdBuildAccelerationStructuresIndirectKHR,
8914     pub build_acceleration_structures_khr: PFN_vkBuildAccelerationStructuresKHR,
8915     pub copy_acceleration_structure_khr: PFN_vkCopyAccelerationStructureKHR,
8916     pub copy_acceleration_structure_to_memory_khr: PFN_vkCopyAccelerationStructureToMemoryKHR,
8917     pub copy_memory_to_acceleration_structure_khr: PFN_vkCopyMemoryToAccelerationStructureKHR,
8918     pub write_acceleration_structures_properties_khr:
8919         PFN_vkWriteAccelerationStructuresPropertiesKHR,
8920     pub cmd_copy_acceleration_structure_khr: PFN_vkCmdCopyAccelerationStructureKHR,
8921     pub cmd_copy_acceleration_structure_to_memory_khr:
8922         PFN_vkCmdCopyAccelerationStructureToMemoryKHR,
8923     pub cmd_copy_memory_to_acceleration_structure_khr:
8924         PFN_vkCmdCopyMemoryToAccelerationStructureKHR,
8925     pub get_acceleration_structure_device_address_khr:
8926         PFN_vkGetAccelerationStructureDeviceAddressKHR,
8927     pub cmd_write_acceleration_structures_properties_khr:
8928         PFN_vkCmdWriteAccelerationStructuresPropertiesKHR,
8929     pub get_device_acceleration_structure_compatibility_khr:
8930         PFN_vkGetDeviceAccelerationStructureCompatibilityKHR,
8931     pub get_acceleration_structure_build_sizes_khr: PFN_vkGetAccelerationStructureBuildSizesKHR,
8932 }
8933 unsafe impl Send for KhrAccelerationStructureFn {}
8934 unsafe impl Sync for KhrAccelerationStructureFn {}
8935 impl KhrAccelerationStructureFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8936     pub fn load<F>(mut _f: F) -> Self
8937     where
8938         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8939     {
8940         Self {
8941             create_acceleration_structure_khr: unsafe {
8942                 unsafe extern "system" fn create_acceleration_structure_khr(
8943                     _device: Device,
8944                     _p_create_info: *const AccelerationStructureCreateInfoKHR,
8945                     _p_allocator: *const AllocationCallbacks,
8946                     _p_acceleration_structure: *mut AccelerationStructureKHR,
8947                 ) -> Result {
8948                     panic!(concat!(
8949                         "Unable to load ",
8950                         stringify!(create_acceleration_structure_khr)
8951                     ))
8952                 }
8953                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8954                     b"vkCreateAccelerationStructureKHR\0",
8955                 );
8956                 let val = _f(cname);
8957                 if val.is_null() {
8958                     create_acceleration_structure_khr
8959                 } else {
8960                     ::std::mem::transmute(val)
8961                 }
8962             },
8963             destroy_acceleration_structure_khr: unsafe {
8964                 unsafe extern "system" fn destroy_acceleration_structure_khr(
8965                     _device: Device,
8966                     _acceleration_structure: AccelerationStructureKHR,
8967                     _p_allocator: *const AllocationCallbacks,
8968                 ) {
8969                     panic!(concat!(
8970                         "Unable to load ",
8971                         stringify!(destroy_acceleration_structure_khr)
8972                     ))
8973                 }
8974                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8975                     b"vkDestroyAccelerationStructureKHR\0",
8976                 );
8977                 let val = _f(cname);
8978                 if val.is_null() {
8979                     destroy_acceleration_structure_khr
8980                 } else {
8981                     ::std::mem::transmute(val)
8982                 }
8983             },
8984             cmd_build_acceleration_structures_khr: unsafe {
8985                 unsafe extern "system" fn cmd_build_acceleration_structures_khr(
8986                     _command_buffer: CommandBuffer,
8987                     _info_count: u32,
8988                     _p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
8989                     _pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR,
8990                 ) {
8991                     panic!(concat!(
8992                         "Unable to load ",
8993                         stringify!(cmd_build_acceleration_structures_khr)
8994                     ))
8995                 }
8996                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8997                     b"vkCmdBuildAccelerationStructuresKHR\0",
8998                 );
8999                 let val = _f(cname);
9000                 if val.is_null() {
9001                     cmd_build_acceleration_structures_khr
9002                 } else {
9003                     ::std::mem::transmute(val)
9004                 }
9005             },
9006             cmd_build_acceleration_structures_indirect_khr: unsafe {
9007                 unsafe extern "system" fn cmd_build_acceleration_structures_indirect_khr(
9008                     _command_buffer: CommandBuffer,
9009                     _info_count: u32,
9010                     _p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
9011                     _p_indirect_device_addresses: *const DeviceAddress,
9012                     _p_indirect_strides: *const u32,
9013                     _pp_max_primitive_counts: *const *const u32,
9014                 ) {
9015                     panic!(concat!(
9016                         "Unable to load ",
9017                         stringify!(cmd_build_acceleration_structures_indirect_khr)
9018                     ))
9019                 }
9020                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9021                     b"vkCmdBuildAccelerationStructuresIndirectKHR\0",
9022                 );
9023                 let val = _f(cname);
9024                 if val.is_null() {
9025                     cmd_build_acceleration_structures_indirect_khr
9026                 } else {
9027                     ::std::mem::transmute(val)
9028                 }
9029             },
9030             build_acceleration_structures_khr: unsafe {
9031                 unsafe extern "system" fn build_acceleration_structures_khr(
9032                     _device: Device,
9033                     _deferred_operation: DeferredOperationKHR,
9034                     _info_count: u32,
9035                     _p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
9036                     _pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR,
9037                 ) -> Result {
9038                     panic!(concat!(
9039                         "Unable to load ",
9040                         stringify!(build_acceleration_structures_khr)
9041                     ))
9042                 }
9043                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9044                     b"vkBuildAccelerationStructuresKHR\0",
9045                 );
9046                 let val = _f(cname);
9047                 if val.is_null() {
9048                     build_acceleration_structures_khr
9049                 } else {
9050                     ::std::mem::transmute(val)
9051                 }
9052             },
9053             copy_acceleration_structure_khr: unsafe {
9054                 unsafe extern "system" fn copy_acceleration_structure_khr(
9055                     _device: Device,
9056                     _deferred_operation: DeferredOperationKHR,
9057                     _p_info: *const CopyAccelerationStructureInfoKHR,
9058                 ) -> Result {
9059                     panic!(concat!(
9060                         "Unable to load ",
9061                         stringify!(copy_acceleration_structure_khr)
9062                     ))
9063                 }
9064                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9065                     b"vkCopyAccelerationStructureKHR\0",
9066                 );
9067                 let val = _f(cname);
9068                 if val.is_null() {
9069                     copy_acceleration_structure_khr
9070                 } else {
9071                     ::std::mem::transmute(val)
9072                 }
9073             },
9074             copy_acceleration_structure_to_memory_khr: unsafe {
9075                 unsafe extern "system" fn copy_acceleration_structure_to_memory_khr(
9076                     _device: Device,
9077                     _deferred_operation: DeferredOperationKHR,
9078                     _p_info: *const CopyAccelerationStructureToMemoryInfoKHR,
9079                 ) -> Result {
9080                     panic!(concat!(
9081                         "Unable to load ",
9082                         stringify!(copy_acceleration_structure_to_memory_khr)
9083                     ))
9084                 }
9085                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9086                     b"vkCopyAccelerationStructureToMemoryKHR\0",
9087                 );
9088                 let val = _f(cname);
9089                 if val.is_null() {
9090                     copy_acceleration_structure_to_memory_khr
9091                 } else {
9092                     ::std::mem::transmute(val)
9093                 }
9094             },
9095             copy_memory_to_acceleration_structure_khr: unsafe {
9096                 unsafe extern "system" fn copy_memory_to_acceleration_structure_khr(
9097                     _device: Device,
9098                     _deferred_operation: DeferredOperationKHR,
9099                     _p_info: *const CopyMemoryToAccelerationStructureInfoKHR,
9100                 ) -> Result {
9101                     panic!(concat!(
9102                         "Unable to load ",
9103                         stringify!(copy_memory_to_acceleration_structure_khr)
9104                     ))
9105                 }
9106                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9107                     b"vkCopyMemoryToAccelerationStructureKHR\0",
9108                 );
9109                 let val = _f(cname);
9110                 if val.is_null() {
9111                     copy_memory_to_acceleration_structure_khr
9112                 } else {
9113                     ::std::mem::transmute(val)
9114                 }
9115             },
9116             write_acceleration_structures_properties_khr: unsafe {
9117                 unsafe extern "system" fn write_acceleration_structures_properties_khr(
9118                     _device: Device,
9119                     _acceleration_structure_count: u32,
9120                     _p_acceleration_structures: *const AccelerationStructureKHR,
9121                     _query_type: QueryType,
9122                     _data_size: usize,
9123                     _p_data: *mut c_void,
9124                     _stride: usize,
9125                 ) -> Result {
9126                     panic!(concat!(
9127                         "Unable to load ",
9128                         stringify!(write_acceleration_structures_properties_khr)
9129                     ))
9130                 }
9131                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9132                     b"vkWriteAccelerationStructuresPropertiesKHR\0",
9133                 );
9134                 let val = _f(cname);
9135                 if val.is_null() {
9136                     write_acceleration_structures_properties_khr
9137                 } else {
9138                     ::std::mem::transmute(val)
9139                 }
9140             },
9141             cmd_copy_acceleration_structure_khr: unsafe {
9142                 unsafe extern "system" fn cmd_copy_acceleration_structure_khr(
9143                     _command_buffer: CommandBuffer,
9144                     _p_info: *const CopyAccelerationStructureInfoKHR,
9145                 ) {
9146                     panic!(concat!(
9147                         "Unable to load ",
9148                         stringify!(cmd_copy_acceleration_structure_khr)
9149                     ))
9150                 }
9151                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9152                     b"vkCmdCopyAccelerationStructureKHR\0",
9153                 );
9154                 let val = _f(cname);
9155                 if val.is_null() {
9156                     cmd_copy_acceleration_structure_khr
9157                 } else {
9158                     ::std::mem::transmute(val)
9159                 }
9160             },
9161             cmd_copy_acceleration_structure_to_memory_khr: unsafe {
9162                 unsafe extern "system" fn cmd_copy_acceleration_structure_to_memory_khr(
9163                     _command_buffer: CommandBuffer,
9164                     _p_info: *const CopyAccelerationStructureToMemoryInfoKHR,
9165                 ) {
9166                     panic!(concat!(
9167                         "Unable to load ",
9168                         stringify!(cmd_copy_acceleration_structure_to_memory_khr)
9169                     ))
9170                 }
9171                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9172                     b"vkCmdCopyAccelerationStructureToMemoryKHR\0",
9173                 );
9174                 let val = _f(cname);
9175                 if val.is_null() {
9176                     cmd_copy_acceleration_structure_to_memory_khr
9177                 } else {
9178                     ::std::mem::transmute(val)
9179                 }
9180             },
9181             cmd_copy_memory_to_acceleration_structure_khr: unsafe {
9182                 unsafe extern "system" fn cmd_copy_memory_to_acceleration_structure_khr(
9183                     _command_buffer: CommandBuffer,
9184                     _p_info: *const CopyMemoryToAccelerationStructureInfoKHR,
9185                 ) {
9186                     panic!(concat!(
9187                         "Unable to load ",
9188                         stringify!(cmd_copy_memory_to_acceleration_structure_khr)
9189                     ))
9190                 }
9191                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9192                     b"vkCmdCopyMemoryToAccelerationStructureKHR\0",
9193                 );
9194                 let val = _f(cname);
9195                 if val.is_null() {
9196                     cmd_copy_memory_to_acceleration_structure_khr
9197                 } else {
9198                     ::std::mem::transmute(val)
9199                 }
9200             },
9201             get_acceleration_structure_device_address_khr: unsafe {
9202                 unsafe extern "system" fn get_acceleration_structure_device_address_khr(
9203                     _device: Device,
9204                     _p_info: *const AccelerationStructureDeviceAddressInfoKHR,
9205                 ) -> DeviceAddress {
9206                     panic!(concat!(
9207                         "Unable to load ",
9208                         stringify!(get_acceleration_structure_device_address_khr)
9209                     ))
9210                 }
9211                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9212                     b"vkGetAccelerationStructureDeviceAddressKHR\0",
9213                 );
9214                 let val = _f(cname);
9215                 if val.is_null() {
9216                     get_acceleration_structure_device_address_khr
9217                 } else {
9218                     ::std::mem::transmute(val)
9219                 }
9220             },
9221             cmd_write_acceleration_structures_properties_khr: unsafe {
9222                 unsafe extern "system" fn cmd_write_acceleration_structures_properties_khr(
9223                     _command_buffer: CommandBuffer,
9224                     _acceleration_structure_count: u32,
9225                     _p_acceleration_structures: *const AccelerationStructureKHR,
9226                     _query_type: QueryType,
9227                     _query_pool: QueryPool,
9228                     _first_query: u32,
9229                 ) {
9230                     panic!(concat!(
9231                         "Unable to load ",
9232                         stringify!(cmd_write_acceleration_structures_properties_khr)
9233                     ))
9234                 }
9235                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9236                     b"vkCmdWriteAccelerationStructuresPropertiesKHR\0",
9237                 );
9238                 let val = _f(cname);
9239                 if val.is_null() {
9240                     cmd_write_acceleration_structures_properties_khr
9241                 } else {
9242                     ::std::mem::transmute(val)
9243                 }
9244             },
9245             get_device_acceleration_structure_compatibility_khr: unsafe {
9246                 unsafe extern "system" fn get_device_acceleration_structure_compatibility_khr(
9247                     _device: Device,
9248                     _p_version_info: *const AccelerationStructureVersionInfoKHR,
9249                     _p_compatibility: *mut AccelerationStructureCompatibilityKHR,
9250                 ) {
9251                     panic!(concat!(
9252                         "Unable to load ",
9253                         stringify!(get_device_acceleration_structure_compatibility_khr)
9254                     ))
9255                 }
9256                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9257                     b"vkGetDeviceAccelerationStructureCompatibilityKHR\0",
9258                 );
9259                 let val = _f(cname);
9260                 if val.is_null() {
9261                     get_device_acceleration_structure_compatibility_khr
9262                 } else {
9263                     ::std::mem::transmute(val)
9264                 }
9265             },
9266             get_acceleration_structure_build_sizes_khr: unsafe {
9267                 unsafe extern "system" fn get_acceleration_structure_build_sizes_khr(
9268                     _device: Device,
9269                     _build_type: AccelerationStructureBuildTypeKHR,
9270                     _p_build_info: *const AccelerationStructureBuildGeometryInfoKHR,
9271                     _p_max_primitive_counts: *const u32,
9272                     _p_size_info: *mut AccelerationStructureBuildSizesInfoKHR,
9273                 ) {
9274                     panic!(concat!(
9275                         "Unable to load ",
9276                         stringify!(get_acceleration_structure_build_sizes_khr)
9277                     ))
9278                 }
9279                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9280                     b"vkGetAccelerationStructureBuildSizesKHR\0",
9281                 );
9282                 let val = _f(cname);
9283                 if val.is_null() {
9284                     get_acceleration_structure_build_sizes_khr
9285                 } else {
9286                     ::std::mem::transmute(val)
9287                 }
9288             },
9289         }
9290     }
9291 }
9292 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
9293 impl AccessFlags {
9294     pub const ACCELERATION_STRUCTURE_READ_KHR: Self = Self(0b10_0000_0000_0000_0000_0000);
9295     pub const ACCELERATION_STRUCTURE_WRITE_KHR: Self = Self(0b100_0000_0000_0000_0000_0000);
9296 }
9297 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
9298 impl BufferUsageFlags {
9299     pub const ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_KHR: Self =
9300         Self(0b1000_0000_0000_0000_0000);
9301     pub const ACCELERATION_STRUCTURE_STORAGE_KHR: Self = Self(0b1_0000_0000_0000_0000_0000);
9302 }
9303 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
9304 impl DebugReportObjectTypeEXT {
9305     pub const ACCELERATION_STRUCTURE_KHR: Self = Self(1_000_150_000);
9306 }
9307 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
9308 impl DescriptorType {
9309     pub const ACCELERATION_STRUCTURE_KHR: Self = Self(1_000_150_000);
9310 }
9311 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
9312 impl FormatFeatureFlags {
9313     pub const ACCELERATION_STRUCTURE_VERTEX_BUFFER_KHR: Self =
9314         Self(0b10_0000_0000_0000_0000_0000_0000_0000);
9315 }
9316 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
9317 impl FormatFeatureFlags2 {
9318     pub const ACCELERATION_STRUCTURE_VERTEX_BUFFER_KHR: Self =
9319         Self(0b10_0000_0000_0000_0000_0000_0000_0000);
9320 }
9321 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
9322 impl IndexType {
9323     pub const NONE_KHR: Self = Self(1_000_165_000);
9324 }
9325 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
9326 impl ObjectType {
9327     pub const ACCELERATION_STRUCTURE_KHR: Self = Self(1_000_150_000);
9328 }
9329 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
9330 impl PipelineStageFlags {
9331     pub const ACCELERATION_STRUCTURE_BUILD_KHR: Self = Self(0b10_0000_0000_0000_0000_0000_0000);
9332 }
9333 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
9334 impl QueryType {
9335     pub const ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR: Self = Self(1_000_150_000);
9336     pub const ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR: Self = Self(1_000_150_001);
9337 }
9338 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
9339 impl StructureType {
9340     pub const WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR: Self = Self(1_000_150_007);
9341     pub const ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR: Self = Self(1_000_150_000);
9342     pub const ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR: Self = Self(1_000_150_002);
9343     pub const ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR: Self = Self(1_000_150_003);
9344     pub const ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR: Self = Self(1_000_150_004);
9345     pub const ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR: Self = Self(1_000_150_005);
9346     pub const ACCELERATION_STRUCTURE_GEOMETRY_KHR: Self = Self(1_000_150_006);
9347     pub const ACCELERATION_STRUCTURE_VERSION_INFO_KHR: Self = Self(1_000_150_009);
9348     pub const COPY_ACCELERATION_STRUCTURE_INFO_KHR: Self = Self(1_000_150_010);
9349     pub const COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR: Self = Self(1_000_150_011);
9350     pub const COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR: Self = Self(1_000_150_012);
9351     pub const PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: Self = Self(1_000_150_013);
9352     pub const PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR: Self = Self(1_000_150_014);
9353     pub const ACCELERATION_STRUCTURE_CREATE_INFO_KHR: Self = Self(1_000_150_017);
9354     pub const ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR: Self = Self(1_000_150_020);
9355 }
9356 impl KhrRayTracingPipelineFn {
9357     #[inline]
name() -> &'static ::std::ffi::CStr9358     pub const fn name() -> &'static ::std::ffi::CStr {
9359         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_ray_tracing_pipeline\0") }
9360     }
9361     pub const SPEC_VERSION: u32 = 1u32;
9362 }
9363 #[allow(non_camel_case_types)]
9364 pub type PFN_vkCmdTraceRaysKHR = unsafe extern "system" fn(
9365     command_buffer: CommandBuffer,
9366     p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR,
9367     p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR,
9368     p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR,
9369     p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR,
9370     width: u32,
9371     height: u32,
9372     depth: u32,
9373 );
9374 #[allow(non_camel_case_types)]
9375 pub type PFN_vkCreateRayTracingPipelinesKHR = unsafe extern "system" fn(
9376     device: Device,
9377     deferred_operation: DeferredOperationKHR,
9378     pipeline_cache: PipelineCache,
9379     create_info_count: u32,
9380     p_create_infos: *const RayTracingPipelineCreateInfoKHR,
9381     p_allocator: *const AllocationCallbacks,
9382     p_pipelines: *mut Pipeline,
9383 ) -> Result;
9384 #[allow(non_camel_case_types)]
9385 pub type PFN_vkGetRayTracingShaderGroupHandlesKHR = unsafe extern "system" fn(
9386     device: Device,
9387     pipeline: Pipeline,
9388     first_group: u32,
9389     group_count: u32,
9390     data_size: usize,
9391     p_data: *mut c_void,
9392 ) -> Result;
9393 #[allow(non_camel_case_types)]
9394 pub type PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR =
9395     unsafe extern "system" fn(
9396         device: Device,
9397         pipeline: Pipeline,
9398         first_group: u32,
9399         group_count: u32,
9400         data_size: usize,
9401         p_data: *mut c_void,
9402     ) -> Result;
9403 #[allow(non_camel_case_types)]
9404 pub type PFN_vkCmdTraceRaysIndirectKHR = unsafe extern "system" fn(
9405     command_buffer: CommandBuffer,
9406     p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR,
9407     p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR,
9408     p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR,
9409     p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR,
9410     indirect_device_address: DeviceAddress,
9411 );
9412 #[allow(non_camel_case_types)]
9413 pub type PFN_vkGetRayTracingShaderGroupStackSizeKHR = unsafe extern "system" fn(
9414     device: Device,
9415     pipeline: Pipeline,
9416     group: u32,
9417     group_shader: ShaderGroupShaderKHR,
9418 ) -> DeviceSize;
9419 #[allow(non_camel_case_types)]
9420 pub type PFN_vkCmdSetRayTracingPipelineStackSizeKHR =
9421     unsafe extern "system" fn(command_buffer: CommandBuffer, pipeline_stack_size: u32);
9422 #[derive(Clone)]
9423 pub struct KhrRayTracingPipelineFn {
9424     pub cmd_trace_rays_khr: PFN_vkCmdTraceRaysKHR,
9425     pub create_ray_tracing_pipelines_khr: PFN_vkCreateRayTracingPipelinesKHR,
9426     pub get_ray_tracing_shader_group_handles_khr: PFN_vkGetRayTracingShaderGroupHandlesKHR,
9427     pub get_ray_tracing_capture_replay_shader_group_handles_khr:
9428         PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR,
9429     pub cmd_trace_rays_indirect_khr: PFN_vkCmdTraceRaysIndirectKHR,
9430     pub get_ray_tracing_shader_group_stack_size_khr: PFN_vkGetRayTracingShaderGroupStackSizeKHR,
9431     pub cmd_set_ray_tracing_pipeline_stack_size_khr: PFN_vkCmdSetRayTracingPipelineStackSizeKHR,
9432 }
9433 unsafe impl Send for KhrRayTracingPipelineFn {}
9434 unsafe impl Sync for KhrRayTracingPipelineFn {}
9435 impl KhrRayTracingPipelineFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9436     pub fn load<F>(mut _f: F) -> Self
9437     where
9438         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9439     {
9440         Self {
9441             cmd_trace_rays_khr: unsafe {
9442                 unsafe extern "system" fn cmd_trace_rays_khr(
9443                     _command_buffer: CommandBuffer,
9444                     _p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR,
9445                     _p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR,
9446                     _p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR,
9447                     _p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR,
9448                     _width: u32,
9449                     _height: u32,
9450                     _depth: u32,
9451                 ) {
9452                     panic!(concat!("Unable to load ", stringify!(cmd_trace_rays_khr)))
9453                 }
9454                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdTraceRaysKHR\0");
9455                 let val = _f(cname);
9456                 if val.is_null() {
9457                     cmd_trace_rays_khr
9458                 } else {
9459                     ::std::mem::transmute(val)
9460                 }
9461             },
9462             create_ray_tracing_pipelines_khr: unsafe {
9463                 unsafe extern "system" fn create_ray_tracing_pipelines_khr(
9464                     _device: Device,
9465                     _deferred_operation: DeferredOperationKHR,
9466                     _pipeline_cache: PipelineCache,
9467                     _create_info_count: u32,
9468                     _p_create_infos: *const RayTracingPipelineCreateInfoKHR,
9469                     _p_allocator: *const AllocationCallbacks,
9470                     _p_pipelines: *mut Pipeline,
9471                 ) -> Result {
9472                     panic!(concat!(
9473                         "Unable to load ",
9474                         stringify!(create_ray_tracing_pipelines_khr)
9475                     ))
9476                 }
9477                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9478                     b"vkCreateRayTracingPipelinesKHR\0",
9479                 );
9480                 let val = _f(cname);
9481                 if val.is_null() {
9482                     create_ray_tracing_pipelines_khr
9483                 } else {
9484                     ::std::mem::transmute(val)
9485                 }
9486             },
9487             get_ray_tracing_shader_group_handles_khr: unsafe {
9488                 unsafe extern "system" fn get_ray_tracing_shader_group_handles_khr(
9489                     _device: Device,
9490                     _pipeline: Pipeline,
9491                     _first_group: u32,
9492                     _group_count: u32,
9493                     _data_size: usize,
9494                     _p_data: *mut c_void,
9495                 ) -> Result {
9496                     panic!(concat!(
9497                         "Unable to load ",
9498                         stringify!(get_ray_tracing_shader_group_handles_khr)
9499                     ))
9500                 }
9501                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9502                     b"vkGetRayTracingShaderGroupHandlesKHR\0",
9503                 );
9504                 let val = _f(cname);
9505                 if val.is_null() {
9506                     get_ray_tracing_shader_group_handles_khr
9507                 } else {
9508                     ::std::mem::transmute(val)
9509                 }
9510             },
9511             get_ray_tracing_capture_replay_shader_group_handles_khr: unsafe {
9512                 unsafe extern "system" fn get_ray_tracing_capture_replay_shader_group_handles_khr(
9513                     _device: Device,
9514                     _pipeline: Pipeline,
9515                     _first_group: u32,
9516                     _group_count: u32,
9517                     _data_size: usize,
9518                     _p_data: *mut c_void,
9519                 ) -> Result {
9520                     panic!(concat!(
9521                         "Unable to load ",
9522                         stringify!(get_ray_tracing_capture_replay_shader_group_handles_khr)
9523                     ))
9524                 }
9525                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9526                     b"vkGetRayTracingCaptureReplayShaderGroupHandlesKHR\0",
9527                 );
9528                 let val = _f(cname);
9529                 if val.is_null() {
9530                     get_ray_tracing_capture_replay_shader_group_handles_khr
9531                 } else {
9532                     ::std::mem::transmute(val)
9533                 }
9534             },
9535             cmd_trace_rays_indirect_khr: unsafe {
9536                 unsafe extern "system" fn cmd_trace_rays_indirect_khr(
9537                     _command_buffer: CommandBuffer,
9538                     _p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR,
9539                     _p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR,
9540                     _p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR,
9541                     _p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR,
9542                     _indirect_device_address: DeviceAddress,
9543                 ) {
9544                     panic!(concat!(
9545                         "Unable to load ",
9546                         stringify!(cmd_trace_rays_indirect_khr)
9547                     ))
9548                 }
9549                 let cname =
9550                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdTraceRaysIndirectKHR\0");
9551                 let val = _f(cname);
9552                 if val.is_null() {
9553                     cmd_trace_rays_indirect_khr
9554                 } else {
9555                     ::std::mem::transmute(val)
9556                 }
9557             },
9558             get_ray_tracing_shader_group_stack_size_khr: unsafe {
9559                 unsafe extern "system" fn get_ray_tracing_shader_group_stack_size_khr(
9560                     _device: Device,
9561                     _pipeline: Pipeline,
9562                     _group: u32,
9563                     _group_shader: ShaderGroupShaderKHR,
9564                 ) -> DeviceSize {
9565                     panic!(concat!(
9566                         "Unable to load ",
9567                         stringify!(get_ray_tracing_shader_group_stack_size_khr)
9568                     ))
9569                 }
9570                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9571                     b"vkGetRayTracingShaderGroupStackSizeKHR\0",
9572                 );
9573                 let val = _f(cname);
9574                 if val.is_null() {
9575                     get_ray_tracing_shader_group_stack_size_khr
9576                 } else {
9577                     ::std::mem::transmute(val)
9578                 }
9579             },
9580             cmd_set_ray_tracing_pipeline_stack_size_khr: unsafe {
9581                 unsafe extern "system" fn cmd_set_ray_tracing_pipeline_stack_size_khr(
9582                     _command_buffer: CommandBuffer,
9583                     _pipeline_stack_size: u32,
9584                 ) {
9585                     panic!(concat!(
9586                         "Unable to load ",
9587                         stringify!(cmd_set_ray_tracing_pipeline_stack_size_khr)
9588                     ))
9589                 }
9590                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9591                     b"vkCmdSetRayTracingPipelineStackSizeKHR\0",
9592                 );
9593                 let val = _f(cname);
9594                 if val.is_null() {
9595                     cmd_set_ray_tracing_pipeline_stack_size_khr
9596                 } else {
9597                     ::std::mem::transmute(val)
9598                 }
9599             },
9600         }
9601     }
9602 }
9603 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
9604 impl BufferUsageFlags {
9605     pub const SHADER_BINDING_TABLE_KHR: Self = Self(0b100_0000_0000);
9606 }
9607 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
9608 impl DynamicState {
9609     pub const RAY_TRACING_PIPELINE_STACK_SIZE_KHR: Self = Self(1_000_347_000);
9610 }
9611 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
9612 impl PipelineBindPoint {
9613     pub const RAY_TRACING_KHR: Self = Self(1_000_165_000);
9614 }
9615 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
9616 impl PipelineCreateFlags {
9617     pub const RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_KHR: Self = Self(0b100_0000_0000_0000);
9618     pub const RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_KHR: Self = Self(0b1000_0000_0000_0000);
9619     pub const RAY_TRACING_NO_NULL_MISS_SHADERS_KHR: Self = Self(0b1_0000_0000_0000_0000);
9620     pub const RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_KHR: Self = Self(0b10_0000_0000_0000_0000);
9621     pub const RAY_TRACING_SKIP_TRIANGLES_KHR: Self = Self(0b1_0000_0000_0000);
9622     pub const RAY_TRACING_SKIP_AABBS_KHR: Self = Self(0b10_0000_0000_0000);
9623     pub const RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_KHR: Self =
9624         Self(0b1000_0000_0000_0000_0000);
9625 }
9626 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
9627 impl PipelineStageFlags {
9628     pub const RAY_TRACING_SHADER_KHR: Self = Self(0b10_0000_0000_0000_0000_0000);
9629 }
9630 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
9631 impl ShaderStageFlags {
9632     pub const RAYGEN_KHR: Self = Self(0b1_0000_0000);
9633     pub const ANY_HIT_KHR: Self = Self(0b10_0000_0000);
9634     pub const CLOSEST_HIT_KHR: Self = Self(0b100_0000_0000);
9635     pub const MISS_KHR: Self = Self(0b1000_0000_0000);
9636     pub const INTERSECTION_KHR: Self = Self(0b1_0000_0000_0000);
9637     pub const CALLABLE_KHR: Self = Self(0b10_0000_0000_0000);
9638 }
9639 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
9640 impl StructureType {
9641     pub const PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR: Self = Self(1_000_347_000);
9642     pub const PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR: Self = Self(1_000_347_001);
9643     pub const RAY_TRACING_PIPELINE_CREATE_INFO_KHR: Self = Self(1_000_150_015);
9644     pub const RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR: Self = Self(1_000_150_016);
9645     pub const RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR: Self = Self(1_000_150_018);
9646 }
9647 impl KhrRayQueryFn {
9648     #[inline]
name() -> &'static ::std::ffi::CStr9649     pub const fn name() -> &'static ::std::ffi::CStr {
9650         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_ray_query\0") }
9651     }
9652     pub const SPEC_VERSION: u32 = 1u32;
9653 }
9654 #[derive(Clone)]
9655 pub struct KhrRayQueryFn {}
9656 unsafe impl Send for KhrRayQueryFn {}
9657 unsafe impl Sync for KhrRayQueryFn {}
9658 impl KhrRayQueryFn {
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         Self {}
9664     }
9665 }
9666 #[doc = "Generated from 'VK_KHR_ray_query'"]
9667 impl StructureType {
9668     pub const PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR: Self = Self(1_000_348_013);
9669 }
9670 impl NvExtension152Fn {
9671     #[inline]
name() -> &'static ::std::ffi::CStr9672     pub const fn name() -> &'static ::std::ffi::CStr {
9673         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_152\0") }
9674     }
9675     pub const SPEC_VERSION: u32 = 0u32;
9676 }
9677 #[derive(Clone)]
9678 pub struct NvExtension152Fn {}
9679 unsafe impl Send for NvExtension152Fn {}
9680 unsafe impl Sync for NvExtension152Fn {}
9681 impl NvExtension152Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9682     pub fn load<F>(mut _f: F) -> Self
9683     where
9684         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9685     {
9686         Self {}
9687     }
9688 }
9689 impl NvFramebufferMixedSamplesFn {
9690     #[inline]
name() -> &'static ::std::ffi::CStr9691     pub const fn name() -> &'static ::std::ffi::CStr {
9692         unsafe {
9693             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_framebuffer_mixed_samples\0")
9694         }
9695     }
9696     pub const SPEC_VERSION: u32 = 1u32;
9697 }
9698 #[derive(Clone)]
9699 pub struct NvFramebufferMixedSamplesFn {}
9700 unsafe impl Send for NvFramebufferMixedSamplesFn {}
9701 unsafe impl Sync for NvFramebufferMixedSamplesFn {}
9702 impl NvFramebufferMixedSamplesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9703     pub fn load<F>(mut _f: F) -> Self
9704     where
9705         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9706     {
9707         Self {}
9708     }
9709 }
9710 #[doc = "Generated from 'VK_NV_framebuffer_mixed_samples'"]
9711 impl StructureType {
9712     pub const PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV: Self = Self(1_000_152_000);
9713 }
9714 impl NvFillRectangleFn {
9715     #[inline]
name() -> &'static ::std::ffi::CStr9716     pub const fn name() -> &'static ::std::ffi::CStr {
9717         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_fill_rectangle\0") }
9718     }
9719     pub const SPEC_VERSION: u32 = 1u32;
9720 }
9721 #[derive(Clone)]
9722 pub struct NvFillRectangleFn {}
9723 unsafe impl Send for NvFillRectangleFn {}
9724 unsafe impl Sync for NvFillRectangleFn {}
9725 impl NvFillRectangleFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9726     pub fn load<F>(mut _f: F) -> Self
9727     where
9728         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9729     {
9730         Self {}
9731     }
9732 }
9733 #[doc = "Generated from 'VK_NV_fill_rectangle'"]
9734 impl PolygonMode {
9735     pub const FILL_RECTANGLE_NV: Self = Self(1_000_153_000);
9736 }
9737 impl NvShaderSmBuiltinsFn {
9738     #[inline]
name() -> &'static ::std::ffi::CStr9739     pub const fn name() -> &'static ::std::ffi::CStr {
9740         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_shader_sm_builtins\0") }
9741     }
9742     pub const SPEC_VERSION: u32 = 1u32;
9743 }
9744 #[derive(Clone)]
9745 pub struct NvShaderSmBuiltinsFn {}
9746 unsafe impl Send for NvShaderSmBuiltinsFn {}
9747 unsafe impl Sync for NvShaderSmBuiltinsFn {}
9748 impl NvShaderSmBuiltinsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9749     pub fn load<F>(mut _f: F) -> Self
9750     where
9751         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9752     {
9753         Self {}
9754     }
9755 }
9756 #[doc = "Generated from 'VK_NV_shader_sm_builtins'"]
9757 impl StructureType {
9758     pub const PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV: Self = Self(1_000_154_000);
9759     pub const PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV: Self = Self(1_000_154_001);
9760 }
9761 impl ExtPostDepthCoverageFn {
9762     #[inline]
name() -> &'static ::std::ffi::CStr9763     pub const fn name() -> &'static ::std::ffi::CStr {
9764         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_post_depth_coverage\0") }
9765     }
9766     pub const SPEC_VERSION: u32 = 1u32;
9767 }
9768 #[derive(Clone)]
9769 pub struct ExtPostDepthCoverageFn {}
9770 unsafe impl Send for ExtPostDepthCoverageFn {}
9771 unsafe impl Sync for ExtPostDepthCoverageFn {}
9772 impl ExtPostDepthCoverageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9773     pub fn load<F>(mut _f: F) -> Self
9774     where
9775         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9776     {
9777         Self {}
9778     }
9779 }
9780 impl KhrSamplerYcbcrConversionFn {
9781     #[inline]
name() -> &'static ::std::ffi::CStr9782     pub const fn name() -> &'static ::std::ffi::CStr {
9783         unsafe {
9784             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_sampler_ycbcr_conversion\0")
9785         }
9786     }
9787     pub const SPEC_VERSION: u32 = 14u32;
9788 }
9789 #[allow(non_camel_case_types)]
9790 pub type PFN_vkCreateSamplerYcbcrConversion = unsafe extern "system" fn(
9791     device: Device,
9792     p_create_info: *const SamplerYcbcrConversionCreateInfo,
9793     p_allocator: *const AllocationCallbacks,
9794     p_ycbcr_conversion: *mut SamplerYcbcrConversion,
9795 ) -> Result;
9796 #[allow(non_camel_case_types)]
9797 pub type PFN_vkDestroySamplerYcbcrConversion = unsafe extern "system" fn(
9798     device: Device,
9799     ycbcr_conversion: SamplerYcbcrConversion,
9800     p_allocator: *const AllocationCallbacks,
9801 );
9802 #[derive(Clone)]
9803 pub struct KhrSamplerYcbcrConversionFn {
9804     pub create_sampler_ycbcr_conversion_khr: PFN_vkCreateSamplerYcbcrConversion,
9805     pub destroy_sampler_ycbcr_conversion_khr: PFN_vkDestroySamplerYcbcrConversion,
9806 }
9807 unsafe impl Send for KhrSamplerYcbcrConversionFn {}
9808 unsafe impl Sync for KhrSamplerYcbcrConversionFn {}
9809 impl KhrSamplerYcbcrConversionFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9810     pub fn load<F>(mut _f: F) -> Self
9811     where
9812         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9813     {
9814         Self {
9815             create_sampler_ycbcr_conversion_khr: unsafe {
9816                 unsafe extern "system" fn create_sampler_ycbcr_conversion_khr(
9817                     _device: Device,
9818                     _p_create_info: *const SamplerYcbcrConversionCreateInfo,
9819                     _p_allocator: *const AllocationCallbacks,
9820                     _p_ycbcr_conversion: *mut SamplerYcbcrConversion,
9821                 ) -> Result {
9822                     panic!(concat!(
9823                         "Unable to load ",
9824                         stringify!(create_sampler_ycbcr_conversion_khr)
9825                     ))
9826                 }
9827                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9828                     b"vkCreateSamplerYcbcrConversionKHR\0",
9829                 );
9830                 let val = _f(cname);
9831                 if val.is_null() {
9832                     create_sampler_ycbcr_conversion_khr
9833                 } else {
9834                     ::std::mem::transmute(val)
9835                 }
9836             },
9837             destroy_sampler_ycbcr_conversion_khr: unsafe {
9838                 unsafe extern "system" fn destroy_sampler_ycbcr_conversion_khr(
9839                     _device: Device,
9840                     _ycbcr_conversion: SamplerYcbcrConversion,
9841                     _p_allocator: *const AllocationCallbacks,
9842                 ) {
9843                     panic!(concat!(
9844                         "Unable to load ",
9845                         stringify!(destroy_sampler_ycbcr_conversion_khr)
9846                     ))
9847                 }
9848                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9849                     b"vkDestroySamplerYcbcrConversionKHR\0",
9850                 );
9851                 let val = _f(cname);
9852                 if val.is_null() {
9853                     destroy_sampler_ycbcr_conversion_khr
9854                 } else {
9855                     ::std::mem::transmute(val)
9856                 }
9857             },
9858         }
9859     }
9860 }
9861 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
9862 impl ChromaLocation {
9863     pub const COSITED_EVEN_KHR: Self = Self::COSITED_EVEN;
9864     pub const MIDPOINT_KHR: Self = Self::MIDPOINT;
9865 }
9866 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
9867 impl DebugReportObjectTypeEXT {
9868     pub const SAMPLER_YCBCR_CONVERSION_KHR: Self = Self::SAMPLER_YCBCR_CONVERSION;
9869 }
9870 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
9871 impl Format {
9872     pub const G8B8G8R8_422_UNORM_KHR: Self = Self::G8B8G8R8_422_UNORM;
9873     pub const B8G8R8G8_422_UNORM_KHR: Self = Self::B8G8R8G8_422_UNORM;
9874     pub const G8_B8_R8_3PLANE_420_UNORM_KHR: Self = Self::G8_B8_R8_3PLANE_420_UNORM;
9875     pub const G8_B8R8_2PLANE_420_UNORM_KHR: Self = Self::G8_B8R8_2PLANE_420_UNORM;
9876     pub const G8_B8_R8_3PLANE_422_UNORM_KHR: Self = Self::G8_B8_R8_3PLANE_422_UNORM;
9877     pub const G8_B8R8_2PLANE_422_UNORM_KHR: Self = Self::G8_B8R8_2PLANE_422_UNORM;
9878     pub const G8_B8_R8_3PLANE_444_UNORM_KHR: Self = Self::G8_B8_R8_3PLANE_444_UNORM;
9879     pub const R10X6_UNORM_PACK16_KHR: Self = Self::R10X6_UNORM_PACK16;
9880     pub const R10X6G10X6_UNORM_2PACK16_KHR: Self = Self::R10X6G10X6_UNORM_2PACK16;
9881     pub const R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR: Self =
9882         Self::R10X6G10X6B10X6A10X6_UNORM_4PACK16;
9883     pub const G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR: Self =
9884         Self::G10X6B10X6G10X6R10X6_422_UNORM_4PACK16;
9885     pub const B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR: Self =
9886         Self::B10X6G10X6R10X6G10X6_422_UNORM_4PACK16;
9887     pub const G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR: Self =
9888         Self::G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16;
9889     pub const G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR: Self =
9890         Self::G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16;
9891     pub const G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR: Self =
9892         Self::G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16;
9893     pub const G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR: Self =
9894         Self::G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16;
9895     pub const G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR: Self =
9896         Self::G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16;
9897     pub const R12X4_UNORM_PACK16_KHR: Self = Self::R12X4_UNORM_PACK16;
9898     pub const R12X4G12X4_UNORM_2PACK16_KHR: Self = Self::R12X4G12X4_UNORM_2PACK16;
9899     pub const R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR: Self =
9900         Self::R12X4G12X4B12X4A12X4_UNORM_4PACK16;
9901     pub const G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR: Self =
9902         Self::G12X4B12X4G12X4R12X4_422_UNORM_4PACK16;
9903     pub const B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR: Self =
9904         Self::B12X4G12X4R12X4G12X4_422_UNORM_4PACK16;
9905     pub const G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR: Self =
9906         Self::G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16;
9907     pub const G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR: Self =
9908         Self::G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16;
9909     pub const G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR: Self =
9910         Self::G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16;
9911     pub const G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR: Self =
9912         Self::G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16;
9913     pub const G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR: Self =
9914         Self::G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16;
9915     pub const G16B16G16R16_422_UNORM_KHR: Self = Self::G16B16G16R16_422_UNORM;
9916     pub const B16G16R16G16_422_UNORM_KHR: Self = Self::B16G16R16G16_422_UNORM;
9917     pub const G16_B16_R16_3PLANE_420_UNORM_KHR: Self = Self::G16_B16_R16_3PLANE_420_UNORM;
9918     pub const G16_B16R16_2PLANE_420_UNORM_KHR: Self = Self::G16_B16R16_2PLANE_420_UNORM;
9919     pub const G16_B16_R16_3PLANE_422_UNORM_KHR: Self = Self::G16_B16_R16_3PLANE_422_UNORM;
9920     pub const G16_B16R16_2PLANE_422_UNORM_KHR: Self = Self::G16_B16R16_2PLANE_422_UNORM;
9921     pub const G16_B16_R16_3PLANE_444_UNORM_KHR: Self = Self::G16_B16_R16_3PLANE_444_UNORM;
9922 }
9923 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
9924 impl FormatFeatureFlags {
9925     pub const MIDPOINT_CHROMA_SAMPLES_KHR: Self = Self::MIDPOINT_CHROMA_SAMPLES;
9926     pub const SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_KHR: Self =
9927         Self::SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER;
9928     pub const SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_KHR: Self =
9929         Self::SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER;
9930     pub const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_KHR: Self =
9931         Self::SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT;
9932     pub const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_KHR: Self =
9933         Self::SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE;
9934     pub const DISJOINT_KHR: Self = Self::DISJOINT;
9935     pub const COSITED_CHROMA_SAMPLES_KHR: Self = Self::COSITED_CHROMA_SAMPLES;
9936 }
9937 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
9938 impl ImageAspectFlags {
9939     pub const PLANE_0_KHR: Self = Self::PLANE_0;
9940     pub const PLANE_1_KHR: Self = Self::PLANE_1;
9941     pub const PLANE_2_KHR: Self = Self::PLANE_2;
9942 }
9943 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
9944 impl ImageCreateFlags {
9945     pub const DISJOINT_KHR: Self = Self::DISJOINT;
9946 }
9947 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
9948 impl ObjectType {
9949     pub const SAMPLER_YCBCR_CONVERSION_KHR: Self = Self::SAMPLER_YCBCR_CONVERSION;
9950 }
9951 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
9952 impl SamplerYcbcrModelConversion {
9953     pub const RGB_IDENTITY_KHR: Self = Self::RGB_IDENTITY;
9954     pub const YCBCR_IDENTITY_KHR: Self = Self::YCBCR_IDENTITY;
9955     pub const YCBCR_709_KHR: Self = Self::YCBCR_709;
9956     pub const YCBCR_601_KHR: Self = Self::YCBCR_601;
9957     pub const YCBCR_2020_KHR: Self = Self::YCBCR_2020;
9958 }
9959 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
9960 impl SamplerYcbcrRange {
9961     pub const ITU_FULL_KHR: Self = Self::ITU_FULL;
9962     pub const ITU_NARROW_KHR: Self = Self::ITU_NARROW;
9963 }
9964 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
9965 impl StructureType {
9966     pub const SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR: Self =
9967         Self::SAMPLER_YCBCR_CONVERSION_CREATE_INFO;
9968     pub const SAMPLER_YCBCR_CONVERSION_INFO_KHR: Self = Self::SAMPLER_YCBCR_CONVERSION_INFO;
9969     pub const BIND_IMAGE_PLANE_MEMORY_INFO_KHR: Self = Self::BIND_IMAGE_PLANE_MEMORY_INFO;
9970     pub const IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR: Self =
9971         Self::IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO;
9972     pub const PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR: Self =
9973         Self::PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES;
9974     pub const SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR: Self =
9975         Self::SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES;
9976 }
9977 impl KhrBindMemory2Fn {
9978     #[inline]
name() -> &'static ::std::ffi::CStr9979     pub const fn name() -> &'static ::std::ffi::CStr {
9980         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_bind_memory2\0") }
9981     }
9982     pub const SPEC_VERSION: u32 = 1u32;
9983 }
9984 #[allow(non_camel_case_types)]
9985 pub type PFN_vkBindBufferMemory2 = unsafe extern "system" fn(
9986     device: Device,
9987     bind_info_count: u32,
9988     p_bind_infos: *const BindBufferMemoryInfo,
9989 ) -> Result;
9990 #[allow(non_camel_case_types)]
9991 pub type PFN_vkBindImageMemory2 = unsafe extern "system" fn(
9992     device: Device,
9993     bind_info_count: u32,
9994     p_bind_infos: *const BindImageMemoryInfo,
9995 ) -> Result;
9996 #[derive(Clone)]
9997 pub struct KhrBindMemory2Fn {
9998     pub bind_buffer_memory2_khr: PFN_vkBindBufferMemory2,
9999     pub bind_image_memory2_khr: PFN_vkBindImageMemory2,
10000 }
10001 unsafe impl Send for KhrBindMemory2Fn {}
10002 unsafe impl Sync for KhrBindMemory2Fn {}
10003 impl KhrBindMemory2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10004     pub fn load<F>(mut _f: F) -> Self
10005     where
10006         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10007     {
10008         Self {
10009             bind_buffer_memory2_khr: unsafe {
10010                 unsafe extern "system" fn bind_buffer_memory2_khr(
10011                     _device: Device,
10012                     _bind_info_count: u32,
10013                     _p_bind_infos: *const BindBufferMemoryInfo,
10014                 ) -> Result {
10015                     panic!(concat!(
10016                         "Unable to load ",
10017                         stringify!(bind_buffer_memory2_khr)
10018                     ))
10019                 }
10020                 let cname =
10021                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkBindBufferMemory2KHR\0");
10022                 let val = _f(cname);
10023                 if val.is_null() {
10024                     bind_buffer_memory2_khr
10025                 } else {
10026                     ::std::mem::transmute(val)
10027                 }
10028             },
10029             bind_image_memory2_khr: unsafe {
10030                 unsafe extern "system" fn bind_image_memory2_khr(
10031                     _device: Device,
10032                     _bind_info_count: u32,
10033                     _p_bind_infos: *const BindImageMemoryInfo,
10034                 ) -> Result {
10035                     panic!(concat!(
10036                         "Unable to load ",
10037                         stringify!(bind_image_memory2_khr)
10038                     ))
10039                 }
10040                 let cname =
10041                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkBindImageMemory2KHR\0");
10042                 let val = _f(cname);
10043                 if val.is_null() {
10044                     bind_image_memory2_khr
10045                 } else {
10046                     ::std::mem::transmute(val)
10047                 }
10048             },
10049         }
10050     }
10051 }
10052 #[doc = "Generated from 'VK_KHR_bind_memory2'"]
10053 impl ImageCreateFlags {
10054     pub const ALIAS_KHR: Self = Self::ALIAS;
10055 }
10056 #[doc = "Generated from 'VK_KHR_bind_memory2'"]
10057 impl StructureType {
10058     pub const BIND_BUFFER_MEMORY_INFO_KHR: Self = Self::BIND_BUFFER_MEMORY_INFO;
10059     pub const BIND_IMAGE_MEMORY_INFO_KHR: Self = Self::BIND_IMAGE_MEMORY_INFO;
10060 }
10061 impl ExtImageDrmFormatModifierFn {
10062     #[inline]
name() -> &'static ::std::ffi::CStr10063     pub const fn name() -> &'static ::std::ffi::CStr {
10064         unsafe {
10065             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_drm_format_modifier\0")
10066         }
10067     }
10068     pub const SPEC_VERSION: u32 = 2u32;
10069 }
10070 #[allow(non_camel_case_types)]
10071 pub type PFN_vkGetImageDrmFormatModifierPropertiesEXT = unsafe extern "system" fn(
10072     device: Device,
10073     image: Image,
10074     p_properties: *mut ImageDrmFormatModifierPropertiesEXT,
10075 ) -> Result;
10076 #[derive(Clone)]
10077 pub struct ExtImageDrmFormatModifierFn {
10078     pub get_image_drm_format_modifier_properties_ext: PFN_vkGetImageDrmFormatModifierPropertiesEXT,
10079 }
10080 unsafe impl Send for ExtImageDrmFormatModifierFn {}
10081 unsafe impl Sync for ExtImageDrmFormatModifierFn {}
10082 impl ExtImageDrmFormatModifierFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10083     pub fn load<F>(mut _f: F) -> Self
10084     where
10085         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10086     {
10087         Self {
10088             get_image_drm_format_modifier_properties_ext: unsafe {
10089                 unsafe extern "system" fn get_image_drm_format_modifier_properties_ext(
10090                     _device: Device,
10091                     _image: Image,
10092                     _p_properties: *mut ImageDrmFormatModifierPropertiesEXT,
10093                 ) -> Result {
10094                     panic!(concat!(
10095                         "Unable to load ",
10096                         stringify!(get_image_drm_format_modifier_properties_ext)
10097                     ))
10098                 }
10099                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10100                     b"vkGetImageDrmFormatModifierPropertiesEXT\0",
10101                 );
10102                 let val = _f(cname);
10103                 if val.is_null() {
10104                     get_image_drm_format_modifier_properties_ext
10105                 } else {
10106                     ::std::mem::transmute(val)
10107                 }
10108             },
10109         }
10110     }
10111 }
10112 #[doc = "Generated from 'VK_EXT_image_drm_format_modifier'"]
10113 impl ImageAspectFlags {
10114     pub const MEMORY_PLANE_0_EXT: Self = Self(0b1000_0000);
10115     pub const MEMORY_PLANE_1_EXT: Self = Self(0b1_0000_0000);
10116     pub const MEMORY_PLANE_2_EXT: Self = Self(0b10_0000_0000);
10117     pub const MEMORY_PLANE_3_EXT: Self = Self(0b100_0000_0000);
10118 }
10119 #[doc = "Generated from 'VK_EXT_image_drm_format_modifier'"]
10120 impl ImageTiling {
10121     pub const DRM_FORMAT_MODIFIER_EXT: Self = Self(1_000_158_000);
10122 }
10123 #[doc = "Generated from 'VK_EXT_image_drm_format_modifier'"]
10124 impl Result {
10125     pub const ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT: Self = Self(-1_000_158_000);
10126 }
10127 #[doc = "Generated from 'VK_EXT_image_drm_format_modifier'"]
10128 impl StructureType {
10129     pub const DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: Self = Self(1_000_158_000);
10130     pub const PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: Self = Self(1_000_158_002);
10131     pub const IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: Self = Self(1_000_158_003);
10132     pub const IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: Self = Self(1_000_158_004);
10133     pub const IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT: Self = Self(1_000_158_005);
10134     pub const DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: Self = Self(1_000_158_006);
10135 }
10136 impl ExtExtension160Fn {
10137     #[inline]
name() -> &'static ::std::ffi::CStr10138     pub const fn name() -> &'static ::std::ffi::CStr {
10139         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_160\0") }
10140     }
10141     pub const SPEC_VERSION: u32 = 0u32;
10142 }
10143 #[derive(Clone)]
10144 pub struct ExtExtension160Fn {}
10145 unsafe impl Send for ExtExtension160Fn {}
10146 unsafe impl Sync for ExtExtension160Fn {}
10147 impl ExtExtension160Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10148     pub fn load<F>(mut _f: F) -> Self
10149     where
10150         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10151     {
10152         Self {}
10153     }
10154 }
10155 impl ExtValidationCacheFn {
10156     #[inline]
name() -> &'static ::std::ffi::CStr10157     pub const fn name() -> &'static ::std::ffi::CStr {
10158         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_validation_cache\0") }
10159     }
10160     pub const SPEC_VERSION: u32 = 1u32;
10161 }
10162 #[allow(non_camel_case_types)]
10163 pub type PFN_vkCreateValidationCacheEXT = unsafe extern "system" fn(
10164     device: Device,
10165     p_create_info: *const ValidationCacheCreateInfoEXT,
10166     p_allocator: *const AllocationCallbacks,
10167     p_validation_cache: *mut ValidationCacheEXT,
10168 ) -> Result;
10169 #[allow(non_camel_case_types)]
10170 pub type PFN_vkDestroyValidationCacheEXT = unsafe extern "system" fn(
10171     device: Device,
10172     validation_cache: ValidationCacheEXT,
10173     p_allocator: *const AllocationCallbacks,
10174 );
10175 #[allow(non_camel_case_types)]
10176 pub type PFN_vkMergeValidationCachesEXT = unsafe extern "system" fn(
10177     device: Device,
10178     dst_cache: ValidationCacheEXT,
10179     src_cache_count: u32,
10180     p_src_caches: *const ValidationCacheEXT,
10181 ) -> Result;
10182 #[allow(non_camel_case_types)]
10183 pub type PFN_vkGetValidationCacheDataEXT = unsafe extern "system" fn(
10184     device: Device,
10185     validation_cache: ValidationCacheEXT,
10186     p_data_size: *mut usize,
10187     p_data: *mut c_void,
10188 ) -> Result;
10189 #[derive(Clone)]
10190 pub struct ExtValidationCacheFn {
10191     pub create_validation_cache_ext: PFN_vkCreateValidationCacheEXT,
10192     pub destroy_validation_cache_ext: PFN_vkDestroyValidationCacheEXT,
10193     pub merge_validation_caches_ext: PFN_vkMergeValidationCachesEXT,
10194     pub get_validation_cache_data_ext: PFN_vkGetValidationCacheDataEXT,
10195 }
10196 unsafe impl Send for ExtValidationCacheFn {}
10197 unsafe impl Sync for ExtValidationCacheFn {}
10198 impl ExtValidationCacheFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10199     pub fn load<F>(mut _f: F) -> Self
10200     where
10201         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10202     {
10203         Self {
10204             create_validation_cache_ext: unsafe {
10205                 unsafe extern "system" fn create_validation_cache_ext(
10206                     _device: Device,
10207                     _p_create_info: *const ValidationCacheCreateInfoEXT,
10208                     _p_allocator: *const AllocationCallbacks,
10209                     _p_validation_cache: *mut ValidationCacheEXT,
10210                 ) -> Result {
10211                     panic!(concat!(
10212                         "Unable to load ",
10213                         stringify!(create_validation_cache_ext)
10214                     ))
10215                 }
10216                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10217                     b"vkCreateValidationCacheEXT\0",
10218                 );
10219                 let val = _f(cname);
10220                 if val.is_null() {
10221                     create_validation_cache_ext
10222                 } else {
10223                     ::std::mem::transmute(val)
10224                 }
10225             },
10226             destroy_validation_cache_ext: unsafe {
10227                 unsafe extern "system" fn destroy_validation_cache_ext(
10228                     _device: Device,
10229                     _validation_cache: ValidationCacheEXT,
10230                     _p_allocator: *const AllocationCallbacks,
10231                 ) {
10232                     panic!(concat!(
10233                         "Unable to load ",
10234                         stringify!(destroy_validation_cache_ext)
10235                     ))
10236                 }
10237                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10238                     b"vkDestroyValidationCacheEXT\0",
10239                 );
10240                 let val = _f(cname);
10241                 if val.is_null() {
10242                     destroy_validation_cache_ext
10243                 } else {
10244                     ::std::mem::transmute(val)
10245                 }
10246             },
10247             merge_validation_caches_ext: unsafe {
10248                 unsafe extern "system" fn merge_validation_caches_ext(
10249                     _device: Device,
10250                     _dst_cache: ValidationCacheEXT,
10251                     _src_cache_count: u32,
10252                     _p_src_caches: *const ValidationCacheEXT,
10253                 ) -> Result {
10254                     panic!(concat!(
10255                         "Unable to load ",
10256                         stringify!(merge_validation_caches_ext)
10257                     ))
10258                 }
10259                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10260                     b"vkMergeValidationCachesEXT\0",
10261                 );
10262                 let val = _f(cname);
10263                 if val.is_null() {
10264                     merge_validation_caches_ext
10265                 } else {
10266                     ::std::mem::transmute(val)
10267                 }
10268             },
10269             get_validation_cache_data_ext: unsafe {
10270                 unsafe extern "system" fn get_validation_cache_data_ext(
10271                     _device: Device,
10272                     _validation_cache: ValidationCacheEXT,
10273                     _p_data_size: *mut usize,
10274                     _p_data: *mut c_void,
10275                 ) -> Result {
10276                     panic!(concat!(
10277                         "Unable to load ",
10278                         stringify!(get_validation_cache_data_ext)
10279                     ))
10280                 }
10281                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10282                     b"vkGetValidationCacheDataEXT\0",
10283                 );
10284                 let val = _f(cname);
10285                 if val.is_null() {
10286                     get_validation_cache_data_ext
10287                 } else {
10288                     ::std::mem::transmute(val)
10289                 }
10290             },
10291         }
10292     }
10293 }
10294 #[doc = "Generated from 'VK_EXT_validation_cache'"]
10295 impl ObjectType {
10296     pub const VALIDATION_CACHE_EXT: Self = Self(1_000_160_000);
10297 }
10298 #[doc = "Generated from 'VK_EXT_validation_cache'"]
10299 impl StructureType {
10300     pub const VALIDATION_CACHE_CREATE_INFO_EXT: Self = Self(1_000_160_000);
10301     pub const SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT: Self = Self(1_000_160_001);
10302 }
10303 impl ExtDescriptorIndexingFn {
10304     #[inline]
name() -> &'static ::std::ffi::CStr10305     pub const fn name() -> &'static ::std::ffi::CStr {
10306         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_descriptor_indexing\0") }
10307     }
10308     pub const SPEC_VERSION: u32 = 2u32;
10309 }
10310 #[derive(Clone)]
10311 pub struct ExtDescriptorIndexingFn {}
10312 unsafe impl Send for ExtDescriptorIndexingFn {}
10313 unsafe impl Sync for ExtDescriptorIndexingFn {}
10314 impl ExtDescriptorIndexingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10315     pub fn load<F>(mut _f: F) -> Self
10316     where
10317         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10318     {
10319         Self {}
10320     }
10321 }
10322 #[doc = "Generated from 'VK_EXT_descriptor_indexing'"]
10323 impl DescriptorBindingFlags {
10324     pub const UPDATE_AFTER_BIND_EXT: Self = Self::UPDATE_AFTER_BIND;
10325     pub const UPDATE_UNUSED_WHILE_PENDING_EXT: Self = Self::UPDATE_UNUSED_WHILE_PENDING;
10326     pub const PARTIALLY_BOUND_EXT: Self = Self::PARTIALLY_BOUND;
10327     pub const VARIABLE_DESCRIPTOR_COUNT_EXT: Self = Self::VARIABLE_DESCRIPTOR_COUNT;
10328 }
10329 #[doc = "Generated from 'VK_EXT_descriptor_indexing'"]
10330 impl DescriptorPoolCreateFlags {
10331     pub const UPDATE_AFTER_BIND_EXT: Self = Self::UPDATE_AFTER_BIND;
10332 }
10333 #[doc = "Generated from 'VK_EXT_descriptor_indexing'"]
10334 impl DescriptorSetLayoutCreateFlags {
10335     pub const UPDATE_AFTER_BIND_POOL_EXT: Self = Self::UPDATE_AFTER_BIND_POOL;
10336 }
10337 #[doc = "Generated from 'VK_EXT_descriptor_indexing'"]
10338 impl Result {
10339     pub const ERROR_FRAGMENTATION_EXT: Self = Self::ERROR_FRAGMENTATION;
10340 }
10341 #[doc = "Generated from 'VK_EXT_descriptor_indexing'"]
10342 impl StructureType {
10343     pub const DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT: Self =
10344         Self::DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO;
10345     pub const PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT: Self =
10346         Self::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES;
10347     pub const PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT: Self =
10348         Self::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES;
10349     pub const DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT: Self =
10350         Self::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO;
10351     pub const DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT: Self =
10352         Self::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT;
10353 }
10354 impl ExtShaderViewportIndexLayerFn {
10355     #[inline]
name() -> &'static ::std::ffi::CStr10356     pub const fn name() -> &'static ::std::ffi::CStr {
10357         unsafe {
10358             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_viewport_index_layer\0")
10359         }
10360     }
10361     pub const SPEC_VERSION: u32 = 1u32;
10362 }
10363 #[derive(Clone)]
10364 pub struct ExtShaderViewportIndexLayerFn {}
10365 unsafe impl Send for ExtShaderViewportIndexLayerFn {}
10366 unsafe impl Sync for ExtShaderViewportIndexLayerFn {}
10367 impl ExtShaderViewportIndexLayerFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10368     pub fn load<F>(mut _f: F) -> Self
10369     where
10370         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10371     {
10372         Self {}
10373     }
10374 }
10375 impl KhrPortabilitySubsetFn {
10376     #[inline]
name() -> &'static ::std::ffi::CStr10377     pub const fn name() -> &'static ::std::ffi::CStr {
10378         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_portability_subset\0") }
10379     }
10380     pub const SPEC_VERSION: u32 = 1u32;
10381 }
10382 #[derive(Clone)]
10383 pub struct KhrPortabilitySubsetFn {}
10384 unsafe impl Send for KhrPortabilitySubsetFn {}
10385 unsafe impl Sync for KhrPortabilitySubsetFn {}
10386 impl KhrPortabilitySubsetFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10387     pub fn load<F>(mut _f: F) -> Self
10388     where
10389         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10390     {
10391         Self {}
10392     }
10393 }
10394 #[doc = "Generated from 'VK_KHR_portability_subset'"]
10395 impl StructureType {
10396     pub const PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR: Self = Self(1_000_163_000);
10397     pub const PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR: Self = Self(1_000_163_001);
10398 }
10399 impl NvShadingRateImageFn {
10400     #[inline]
name() -> &'static ::std::ffi::CStr10401     pub const fn name() -> &'static ::std::ffi::CStr {
10402         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_shading_rate_image\0") }
10403     }
10404     pub const SPEC_VERSION: u32 = 3u32;
10405 }
10406 #[allow(non_camel_case_types)]
10407 pub type PFN_vkCmdBindShadingRateImageNV = unsafe extern "system" fn(
10408     command_buffer: CommandBuffer,
10409     image_view: ImageView,
10410     image_layout: ImageLayout,
10411 );
10412 #[allow(non_camel_case_types)]
10413 pub type PFN_vkCmdSetViewportShadingRatePaletteNV = unsafe extern "system" fn(
10414     command_buffer: CommandBuffer,
10415     first_viewport: u32,
10416     viewport_count: u32,
10417     p_shading_rate_palettes: *const ShadingRatePaletteNV,
10418 );
10419 #[allow(non_camel_case_types)]
10420 pub type PFN_vkCmdSetCoarseSampleOrderNV = unsafe extern "system" fn(
10421     command_buffer: CommandBuffer,
10422     sample_order_type: CoarseSampleOrderTypeNV,
10423     custom_sample_order_count: u32,
10424     p_custom_sample_orders: *const CoarseSampleOrderCustomNV,
10425 );
10426 #[derive(Clone)]
10427 pub struct NvShadingRateImageFn {
10428     pub cmd_bind_shading_rate_image_nv: PFN_vkCmdBindShadingRateImageNV,
10429     pub cmd_set_viewport_shading_rate_palette_nv: PFN_vkCmdSetViewportShadingRatePaletteNV,
10430     pub cmd_set_coarse_sample_order_nv: PFN_vkCmdSetCoarseSampleOrderNV,
10431 }
10432 unsafe impl Send for NvShadingRateImageFn {}
10433 unsafe impl Sync for NvShadingRateImageFn {}
10434 impl NvShadingRateImageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10435     pub fn load<F>(mut _f: F) -> Self
10436     where
10437         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10438     {
10439         Self {
10440             cmd_bind_shading_rate_image_nv: unsafe {
10441                 unsafe extern "system" fn cmd_bind_shading_rate_image_nv(
10442                     _command_buffer: CommandBuffer,
10443                     _image_view: ImageView,
10444                     _image_layout: ImageLayout,
10445                 ) {
10446                     panic!(concat!(
10447                         "Unable to load ",
10448                         stringify!(cmd_bind_shading_rate_image_nv)
10449                     ))
10450                 }
10451                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10452                     b"vkCmdBindShadingRateImageNV\0",
10453                 );
10454                 let val = _f(cname);
10455                 if val.is_null() {
10456                     cmd_bind_shading_rate_image_nv
10457                 } else {
10458                     ::std::mem::transmute(val)
10459                 }
10460             },
10461             cmd_set_viewport_shading_rate_palette_nv: unsafe {
10462                 unsafe extern "system" fn cmd_set_viewport_shading_rate_palette_nv(
10463                     _command_buffer: CommandBuffer,
10464                     _first_viewport: u32,
10465                     _viewport_count: u32,
10466                     _p_shading_rate_palettes: *const ShadingRatePaletteNV,
10467                 ) {
10468                     panic!(concat!(
10469                         "Unable to load ",
10470                         stringify!(cmd_set_viewport_shading_rate_palette_nv)
10471                     ))
10472                 }
10473                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10474                     b"vkCmdSetViewportShadingRatePaletteNV\0",
10475                 );
10476                 let val = _f(cname);
10477                 if val.is_null() {
10478                     cmd_set_viewport_shading_rate_palette_nv
10479                 } else {
10480                     ::std::mem::transmute(val)
10481                 }
10482             },
10483             cmd_set_coarse_sample_order_nv: unsafe {
10484                 unsafe extern "system" fn cmd_set_coarse_sample_order_nv(
10485                     _command_buffer: CommandBuffer,
10486                     _sample_order_type: CoarseSampleOrderTypeNV,
10487                     _custom_sample_order_count: u32,
10488                     _p_custom_sample_orders: *const CoarseSampleOrderCustomNV,
10489                 ) {
10490                     panic!(concat!(
10491                         "Unable to load ",
10492                         stringify!(cmd_set_coarse_sample_order_nv)
10493                     ))
10494                 }
10495                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10496                     b"vkCmdSetCoarseSampleOrderNV\0",
10497                 );
10498                 let val = _f(cname);
10499                 if val.is_null() {
10500                     cmd_set_coarse_sample_order_nv
10501                 } else {
10502                     ::std::mem::transmute(val)
10503                 }
10504             },
10505         }
10506     }
10507 }
10508 #[doc = "Generated from 'VK_NV_shading_rate_image'"]
10509 impl AccessFlags {
10510     pub const SHADING_RATE_IMAGE_READ_NV: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR;
10511 }
10512 #[doc = "Generated from 'VK_NV_shading_rate_image'"]
10513 impl DynamicState {
10514     pub const VIEWPORT_SHADING_RATE_PALETTE_NV: Self = Self(1_000_164_004);
10515     pub const VIEWPORT_COARSE_SAMPLE_ORDER_NV: Self = Self(1_000_164_006);
10516 }
10517 #[doc = "Generated from 'VK_NV_shading_rate_image'"]
10518 impl ImageLayout {
10519     pub const SHADING_RATE_OPTIMAL_NV: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR;
10520 }
10521 #[doc = "Generated from 'VK_NV_shading_rate_image'"]
10522 impl ImageUsageFlags {
10523     pub const SHADING_RATE_IMAGE_NV: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT_KHR;
10524 }
10525 #[doc = "Generated from 'VK_NV_shading_rate_image'"]
10526 impl PipelineStageFlags {
10527     pub const SHADING_RATE_IMAGE_NV: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT_KHR;
10528 }
10529 #[doc = "Generated from 'VK_NV_shading_rate_image'"]
10530 impl StructureType {
10531     pub const PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV: Self = Self(1_000_164_000);
10532     pub const PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV: Self = Self(1_000_164_001);
10533     pub const PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV: Self = Self(1_000_164_002);
10534     pub const PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV: Self =
10535         Self(1_000_164_005);
10536 }
10537 impl NvRayTracingFn {
10538     #[inline]
name() -> &'static ::std::ffi::CStr10539     pub const fn name() -> &'static ::std::ffi::CStr {
10540         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_ray_tracing\0") }
10541     }
10542     pub const SPEC_VERSION: u32 = 3u32;
10543 }
10544 #[allow(non_camel_case_types)]
10545 pub type PFN_vkCreateAccelerationStructureNV = unsafe extern "system" fn(
10546     device: Device,
10547     p_create_info: *const AccelerationStructureCreateInfoNV,
10548     p_allocator: *const AllocationCallbacks,
10549     p_acceleration_structure: *mut AccelerationStructureNV,
10550 ) -> Result;
10551 #[allow(non_camel_case_types)]
10552 pub type PFN_vkDestroyAccelerationStructureNV = unsafe extern "system" fn(
10553     device: Device,
10554     acceleration_structure: AccelerationStructureNV,
10555     p_allocator: *const AllocationCallbacks,
10556 );
10557 #[allow(non_camel_case_types)]
10558 pub type PFN_vkGetAccelerationStructureMemoryRequirementsNV = unsafe extern "system" fn(
10559     device: Device,
10560     p_info: *const AccelerationStructureMemoryRequirementsInfoNV,
10561     p_memory_requirements: *mut MemoryRequirements2KHR,
10562 );
10563 #[allow(non_camel_case_types)]
10564 pub type PFN_vkBindAccelerationStructureMemoryNV = unsafe extern "system" fn(
10565     device: Device,
10566     bind_info_count: u32,
10567     p_bind_infos: *const BindAccelerationStructureMemoryInfoNV,
10568 ) -> Result;
10569 #[allow(non_camel_case_types)]
10570 pub type PFN_vkCmdBuildAccelerationStructureNV = unsafe extern "system" fn(
10571     command_buffer: CommandBuffer,
10572     p_info: *const AccelerationStructureInfoNV,
10573     instance_data: Buffer,
10574     instance_offset: DeviceSize,
10575     update: Bool32,
10576     dst: AccelerationStructureNV,
10577     src: AccelerationStructureNV,
10578     scratch: Buffer,
10579     scratch_offset: DeviceSize,
10580 );
10581 #[allow(non_camel_case_types)]
10582 pub type PFN_vkCmdCopyAccelerationStructureNV = unsafe extern "system" fn(
10583     command_buffer: CommandBuffer,
10584     dst: AccelerationStructureNV,
10585     src: AccelerationStructureNV,
10586     mode: CopyAccelerationStructureModeKHR,
10587 );
10588 #[allow(non_camel_case_types)]
10589 pub type PFN_vkCmdTraceRaysNV = unsafe extern "system" fn(
10590     command_buffer: CommandBuffer,
10591     raygen_shader_binding_table_buffer: Buffer,
10592     raygen_shader_binding_offset: DeviceSize,
10593     miss_shader_binding_table_buffer: Buffer,
10594     miss_shader_binding_offset: DeviceSize,
10595     miss_shader_binding_stride: DeviceSize,
10596     hit_shader_binding_table_buffer: Buffer,
10597     hit_shader_binding_offset: DeviceSize,
10598     hit_shader_binding_stride: DeviceSize,
10599     callable_shader_binding_table_buffer: Buffer,
10600     callable_shader_binding_offset: DeviceSize,
10601     callable_shader_binding_stride: DeviceSize,
10602     width: u32,
10603     height: u32,
10604     depth: u32,
10605 );
10606 #[allow(non_camel_case_types)]
10607 pub type PFN_vkCreateRayTracingPipelinesNV = unsafe extern "system" fn(
10608     device: Device,
10609     pipeline_cache: PipelineCache,
10610     create_info_count: u32,
10611     p_create_infos: *const RayTracingPipelineCreateInfoNV,
10612     p_allocator: *const AllocationCallbacks,
10613     p_pipelines: *mut Pipeline,
10614 ) -> Result;
10615 #[allow(non_camel_case_types)]
10616 pub type PFN_vkGetAccelerationStructureHandleNV = unsafe extern "system" fn(
10617     device: Device,
10618     acceleration_structure: AccelerationStructureNV,
10619     data_size: usize,
10620     p_data: *mut c_void,
10621 ) -> Result;
10622 #[allow(non_camel_case_types)]
10623 pub type PFN_vkCmdWriteAccelerationStructuresPropertiesNV = unsafe extern "system" fn(
10624     command_buffer: CommandBuffer,
10625     acceleration_structure_count: u32,
10626     p_acceleration_structures: *const AccelerationStructureNV,
10627     query_type: QueryType,
10628     query_pool: QueryPool,
10629     first_query: u32,
10630 );
10631 #[allow(non_camel_case_types)]
10632 pub type PFN_vkCompileDeferredNV =
10633     unsafe extern "system" fn(device: Device, pipeline: Pipeline, shader: u32) -> Result;
10634 #[derive(Clone)]
10635 pub struct NvRayTracingFn {
10636     pub create_acceleration_structure_nv: PFN_vkCreateAccelerationStructureNV,
10637     pub destroy_acceleration_structure_nv: PFN_vkDestroyAccelerationStructureNV,
10638     pub get_acceleration_structure_memory_requirements_nv:
10639         PFN_vkGetAccelerationStructureMemoryRequirementsNV,
10640     pub bind_acceleration_structure_memory_nv: PFN_vkBindAccelerationStructureMemoryNV,
10641     pub cmd_build_acceleration_structure_nv: PFN_vkCmdBuildAccelerationStructureNV,
10642     pub cmd_copy_acceleration_structure_nv: PFN_vkCmdCopyAccelerationStructureNV,
10643     pub cmd_trace_rays_nv: PFN_vkCmdTraceRaysNV,
10644     pub create_ray_tracing_pipelines_nv: PFN_vkCreateRayTracingPipelinesNV,
10645     pub get_ray_tracing_shader_group_handles_nv:
10646         crate::vk::PFN_vkGetRayTracingShaderGroupHandlesKHR,
10647     pub get_acceleration_structure_handle_nv: PFN_vkGetAccelerationStructureHandleNV,
10648     pub cmd_write_acceleration_structures_properties_nv:
10649         PFN_vkCmdWriteAccelerationStructuresPropertiesNV,
10650     pub compile_deferred_nv: PFN_vkCompileDeferredNV,
10651 }
10652 unsafe impl Send for NvRayTracingFn {}
10653 unsafe impl Sync for NvRayTracingFn {}
10654 impl NvRayTracingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10655     pub fn load<F>(mut _f: F) -> Self
10656     where
10657         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10658     {
10659         Self {
10660             create_acceleration_structure_nv: unsafe {
10661                 unsafe extern "system" fn create_acceleration_structure_nv(
10662                     _device: Device,
10663                     _p_create_info: *const AccelerationStructureCreateInfoNV,
10664                     _p_allocator: *const AllocationCallbacks,
10665                     _p_acceleration_structure: *mut AccelerationStructureNV,
10666                 ) -> Result {
10667                     panic!(concat!(
10668                         "Unable to load ",
10669                         stringify!(create_acceleration_structure_nv)
10670                     ))
10671                 }
10672                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10673                     b"vkCreateAccelerationStructureNV\0",
10674                 );
10675                 let val = _f(cname);
10676                 if val.is_null() {
10677                     create_acceleration_structure_nv
10678                 } else {
10679                     ::std::mem::transmute(val)
10680                 }
10681             },
10682             destroy_acceleration_structure_nv: unsafe {
10683                 unsafe extern "system" fn destroy_acceleration_structure_nv(
10684                     _device: Device,
10685                     _acceleration_structure: AccelerationStructureNV,
10686                     _p_allocator: *const AllocationCallbacks,
10687                 ) {
10688                     panic!(concat!(
10689                         "Unable to load ",
10690                         stringify!(destroy_acceleration_structure_nv)
10691                     ))
10692                 }
10693                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10694                     b"vkDestroyAccelerationStructureNV\0",
10695                 );
10696                 let val = _f(cname);
10697                 if val.is_null() {
10698                     destroy_acceleration_structure_nv
10699                 } else {
10700                     ::std::mem::transmute(val)
10701                 }
10702             },
10703             get_acceleration_structure_memory_requirements_nv: unsafe {
10704                 unsafe extern "system" fn get_acceleration_structure_memory_requirements_nv(
10705                     _device: Device,
10706                     _p_info: *const AccelerationStructureMemoryRequirementsInfoNV,
10707                     _p_memory_requirements: *mut MemoryRequirements2KHR,
10708                 ) {
10709                     panic!(concat!(
10710                         "Unable to load ",
10711                         stringify!(get_acceleration_structure_memory_requirements_nv)
10712                     ))
10713                 }
10714                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10715                     b"vkGetAccelerationStructureMemoryRequirementsNV\0",
10716                 );
10717                 let val = _f(cname);
10718                 if val.is_null() {
10719                     get_acceleration_structure_memory_requirements_nv
10720                 } else {
10721                     ::std::mem::transmute(val)
10722                 }
10723             },
10724             bind_acceleration_structure_memory_nv: unsafe {
10725                 unsafe extern "system" fn bind_acceleration_structure_memory_nv(
10726                     _device: Device,
10727                     _bind_info_count: u32,
10728                     _p_bind_infos: *const BindAccelerationStructureMemoryInfoNV,
10729                 ) -> Result {
10730                     panic!(concat!(
10731                         "Unable to load ",
10732                         stringify!(bind_acceleration_structure_memory_nv)
10733                     ))
10734                 }
10735                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10736                     b"vkBindAccelerationStructureMemoryNV\0",
10737                 );
10738                 let val = _f(cname);
10739                 if val.is_null() {
10740                     bind_acceleration_structure_memory_nv
10741                 } else {
10742                     ::std::mem::transmute(val)
10743                 }
10744             },
10745             cmd_build_acceleration_structure_nv: unsafe {
10746                 unsafe extern "system" fn cmd_build_acceleration_structure_nv(
10747                     _command_buffer: CommandBuffer,
10748                     _p_info: *const AccelerationStructureInfoNV,
10749                     _instance_data: Buffer,
10750                     _instance_offset: DeviceSize,
10751                     _update: Bool32,
10752                     _dst: AccelerationStructureNV,
10753                     _src: AccelerationStructureNV,
10754                     _scratch: Buffer,
10755                     _scratch_offset: DeviceSize,
10756                 ) {
10757                     panic!(concat!(
10758                         "Unable to load ",
10759                         stringify!(cmd_build_acceleration_structure_nv)
10760                     ))
10761                 }
10762                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10763                     b"vkCmdBuildAccelerationStructureNV\0",
10764                 );
10765                 let val = _f(cname);
10766                 if val.is_null() {
10767                     cmd_build_acceleration_structure_nv
10768                 } else {
10769                     ::std::mem::transmute(val)
10770                 }
10771             },
10772             cmd_copy_acceleration_structure_nv: unsafe {
10773                 unsafe extern "system" fn cmd_copy_acceleration_structure_nv(
10774                     _command_buffer: CommandBuffer,
10775                     _dst: AccelerationStructureNV,
10776                     _src: AccelerationStructureNV,
10777                     _mode: CopyAccelerationStructureModeKHR,
10778                 ) {
10779                     panic!(concat!(
10780                         "Unable to load ",
10781                         stringify!(cmd_copy_acceleration_structure_nv)
10782                     ))
10783                 }
10784                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10785                     b"vkCmdCopyAccelerationStructureNV\0",
10786                 );
10787                 let val = _f(cname);
10788                 if val.is_null() {
10789                     cmd_copy_acceleration_structure_nv
10790                 } else {
10791                     ::std::mem::transmute(val)
10792                 }
10793             },
10794             cmd_trace_rays_nv: unsafe {
10795                 unsafe extern "system" fn cmd_trace_rays_nv(
10796                     _command_buffer: CommandBuffer,
10797                     _raygen_shader_binding_table_buffer: Buffer,
10798                     _raygen_shader_binding_offset: DeviceSize,
10799                     _miss_shader_binding_table_buffer: Buffer,
10800                     _miss_shader_binding_offset: DeviceSize,
10801                     _miss_shader_binding_stride: DeviceSize,
10802                     _hit_shader_binding_table_buffer: Buffer,
10803                     _hit_shader_binding_offset: DeviceSize,
10804                     _hit_shader_binding_stride: DeviceSize,
10805                     _callable_shader_binding_table_buffer: Buffer,
10806                     _callable_shader_binding_offset: DeviceSize,
10807                     _callable_shader_binding_stride: DeviceSize,
10808                     _width: u32,
10809                     _height: u32,
10810                     _depth: u32,
10811                 ) {
10812                     panic!(concat!("Unable to load ", stringify!(cmd_trace_rays_nv)))
10813                 }
10814                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdTraceRaysNV\0");
10815                 let val = _f(cname);
10816                 if val.is_null() {
10817                     cmd_trace_rays_nv
10818                 } else {
10819                     ::std::mem::transmute(val)
10820                 }
10821             },
10822             create_ray_tracing_pipelines_nv: unsafe {
10823                 unsafe extern "system" fn create_ray_tracing_pipelines_nv(
10824                     _device: Device,
10825                     _pipeline_cache: PipelineCache,
10826                     _create_info_count: u32,
10827                     _p_create_infos: *const RayTracingPipelineCreateInfoNV,
10828                     _p_allocator: *const AllocationCallbacks,
10829                     _p_pipelines: *mut Pipeline,
10830                 ) -> Result {
10831                     panic!(concat!(
10832                         "Unable to load ",
10833                         stringify!(create_ray_tracing_pipelines_nv)
10834                     ))
10835                 }
10836                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10837                     b"vkCreateRayTracingPipelinesNV\0",
10838                 );
10839                 let val = _f(cname);
10840                 if val.is_null() {
10841                     create_ray_tracing_pipelines_nv
10842                 } else {
10843                     ::std::mem::transmute(val)
10844                 }
10845             },
10846             get_ray_tracing_shader_group_handles_nv: unsafe {
10847                 unsafe extern "system" fn get_ray_tracing_shader_group_handles_nv(
10848                     _device: Device,
10849                     _pipeline: Pipeline,
10850                     _first_group: u32,
10851                     _group_count: u32,
10852                     _data_size: usize,
10853                     _p_data: *mut c_void,
10854                 ) -> Result {
10855                     panic!(concat!(
10856                         "Unable to load ",
10857                         stringify!(get_ray_tracing_shader_group_handles_nv)
10858                     ))
10859                 }
10860                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10861                     b"vkGetRayTracingShaderGroupHandlesNV\0",
10862                 );
10863                 let val = _f(cname);
10864                 if val.is_null() {
10865                     get_ray_tracing_shader_group_handles_nv
10866                 } else {
10867                     ::std::mem::transmute(val)
10868                 }
10869             },
10870             get_acceleration_structure_handle_nv: unsafe {
10871                 unsafe extern "system" fn get_acceleration_structure_handle_nv(
10872                     _device: Device,
10873                     _acceleration_structure: AccelerationStructureNV,
10874                     _data_size: usize,
10875                     _p_data: *mut c_void,
10876                 ) -> Result {
10877                     panic!(concat!(
10878                         "Unable to load ",
10879                         stringify!(get_acceleration_structure_handle_nv)
10880                     ))
10881                 }
10882                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10883                     b"vkGetAccelerationStructureHandleNV\0",
10884                 );
10885                 let val = _f(cname);
10886                 if val.is_null() {
10887                     get_acceleration_structure_handle_nv
10888                 } else {
10889                     ::std::mem::transmute(val)
10890                 }
10891             },
10892             cmd_write_acceleration_structures_properties_nv: unsafe {
10893                 unsafe extern "system" fn cmd_write_acceleration_structures_properties_nv(
10894                     _command_buffer: CommandBuffer,
10895                     _acceleration_structure_count: u32,
10896                     _p_acceleration_structures: *const AccelerationStructureNV,
10897                     _query_type: QueryType,
10898                     _query_pool: QueryPool,
10899                     _first_query: u32,
10900                 ) {
10901                     panic!(concat!(
10902                         "Unable to load ",
10903                         stringify!(cmd_write_acceleration_structures_properties_nv)
10904                     ))
10905                 }
10906                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10907                     b"vkCmdWriteAccelerationStructuresPropertiesNV\0",
10908                 );
10909                 let val = _f(cname);
10910                 if val.is_null() {
10911                     cmd_write_acceleration_structures_properties_nv
10912                 } else {
10913                     ::std::mem::transmute(val)
10914                 }
10915             },
10916             compile_deferred_nv: unsafe {
10917                 unsafe extern "system" fn compile_deferred_nv(
10918                     _device: Device,
10919                     _pipeline: Pipeline,
10920                     _shader: u32,
10921                 ) -> Result {
10922                     panic!(concat!("Unable to load ", stringify!(compile_deferred_nv)))
10923                 }
10924                 let cname =
10925                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCompileDeferredNV\0");
10926                 let val = _f(cname);
10927                 if val.is_null() {
10928                     compile_deferred_nv
10929                 } else {
10930                     ::std::mem::transmute(val)
10931                 }
10932             },
10933         }
10934     }
10935 }
10936 #[doc = "Generated from 'VK_NV_ray_tracing'"]
10937 impl AccelerationStructureTypeKHR {
10938     pub const TOP_LEVEL_NV: Self = Self::TOP_LEVEL;
10939     pub const BOTTOM_LEVEL_NV: Self = Self::BOTTOM_LEVEL;
10940 }
10941 #[doc = "Generated from 'VK_NV_ray_tracing'"]
10942 impl AccessFlags {
10943     pub const ACCELERATION_STRUCTURE_READ_NV: Self = Self::ACCELERATION_STRUCTURE_READ_KHR;
10944     pub const ACCELERATION_STRUCTURE_WRITE_NV: Self = Self::ACCELERATION_STRUCTURE_WRITE_KHR;
10945 }
10946 #[doc = "Generated from 'VK_NV_ray_tracing'"]
10947 impl BufferUsageFlags {
10948     pub const RAY_TRACING_NV: Self = Self::SHADER_BINDING_TABLE_KHR;
10949 }
10950 #[doc = "Generated from 'VK_NV_ray_tracing'"]
10951 impl BuildAccelerationStructureFlagsKHR {
10952     pub const ALLOW_UPDATE_NV: Self = Self::ALLOW_UPDATE;
10953     pub const ALLOW_COMPACTION_NV: Self = Self::ALLOW_COMPACTION;
10954     pub const PREFER_FAST_TRACE_NV: Self = Self::PREFER_FAST_TRACE;
10955     pub const PREFER_FAST_BUILD_NV: Self = Self::PREFER_FAST_BUILD;
10956     pub const LOW_MEMORY_NV: Self = Self::LOW_MEMORY;
10957 }
10958 #[doc = "Generated from 'VK_NV_ray_tracing'"]
10959 impl CopyAccelerationStructureModeKHR {
10960     pub const CLONE_NV: Self = Self::CLONE;
10961     pub const COMPACT_NV: Self = Self::COMPACT;
10962 }
10963 #[doc = "Generated from 'VK_NV_ray_tracing'"]
10964 impl DebugReportObjectTypeEXT {
10965     pub const ACCELERATION_STRUCTURE_NV: Self = Self(1_000_165_000);
10966 }
10967 #[doc = "Generated from 'VK_NV_ray_tracing'"]
10968 impl DescriptorType {
10969     pub const ACCELERATION_STRUCTURE_NV: Self = Self(1_000_165_000);
10970 }
10971 #[doc = "Generated from 'VK_NV_ray_tracing'"]
10972 impl GeometryFlagsKHR {
10973     pub const OPAQUE_NV: Self = Self::OPAQUE;
10974     pub const NO_DUPLICATE_ANY_HIT_INVOCATION_NV: Self = Self::NO_DUPLICATE_ANY_HIT_INVOCATION;
10975 }
10976 #[doc = "Generated from 'VK_NV_ray_tracing'"]
10977 impl GeometryInstanceFlagsKHR {
10978     pub const TRIANGLE_CULL_DISABLE_NV: Self = Self::TRIANGLE_FACING_CULL_DISABLE;
10979     pub const TRIANGLE_FRONT_COUNTERCLOCKWISE_NV: Self = Self::TRIANGLE_FRONT_COUNTERCLOCKWISE;
10980     pub const FORCE_OPAQUE_NV: Self = Self::FORCE_OPAQUE;
10981     pub const FORCE_NO_OPAQUE_NV: Self = Self::FORCE_NO_OPAQUE;
10982 }
10983 #[doc = "Generated from 'VK_NV_ray_tracing'"]
10984 impl GeometryTypeKHR {
10985     pub const TRIANGLES_NV: Self = Self::TRIANGLES;
10986     pub const AABBS_NV: Self = Self::AABBS;
10987 }
10988 #[doc = "Generated from 'VK_NV_ray_tracing'"]
10989 impl IndexType {
10990     pub const NONE_NV: Self = Self::NONE_KHR;
10991 }
10992 #[doc = "Generated from 'VK_NV_ray_tracing'"]
10993 impl ObjectType {
10994     pub const ACCELERATION_STRUCTURE_NV: Self = Self(1_000_165_000);
10995 }
10996 #[doc = "Generated from 'VK_NV_ray_tracing'"]
10997 impl PipelineBindPoint {
10998     pub const RAY_TRACING_NV: Self = Self::RAY_TRACING_KHR;
10999 }
11000 #[doc = "Generated from 'VK_NV_ray_tracing'"]
11001 impl PipelineCreateFlags {
11002     pub const DEFER_COMPILE_NV: Self = Self(0b10_0000);
11003 }
11004 #[doc = "Generated from 'VK_NV_ray_tracing'"]
11005 impl PipelineStageFlags {
11006     pub const RAY_TRACING_SHADER_NV: Self = Self::RAY_TRACING_SHADER_KHR;
11007     pub const ACCELERATION_STRUCTURE_BUILD_NV: Self = Self::ACCELERATION_STRUCTURE_BUILD_KHR;
11008 }
11009 #[doc = "Generated from 'VK_NV_ray_tracing'"]
11010 impl QueryType {
11011     pub const ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV: Self = Self(1_000_165_000);
11012 }
11013 #[doc = "Generated from 'VK_NV_ray_tracing'"]
11014 impl RayTracingShaderGroupTypeKHR {
11015     pub const GENERAL_NV: Self = Self::GENERAL;
11016     pub const TRIANGLES_HIT_GROUP_NV: Self = Self::TRIANGLES_HIT_GROUP;
11017     pub const PROCEDURAL_HIT_GROUP_NV: Self = Self::PROCEDURAL_HIT_GROUP;
11018 }
11019 #[doc = "Generated from 'VK_NV_ray_tracing'"]
11020 impl ShaderStageFlags {
11021     pub const RAYGEN_NV: Self = Self::RAYGEN_KHR;
11022     pub const ANY_HIT_NV: Self = Self::ANY_HIT_KHR;
11023     pub const CLOSEST_HIT_NV: Self = Self::CLOSEST_HIT_KHR;
11024     pub const MISS_NV: Self = Self::MISS_KHR;
11025     pub const INTERSECTION_NV: Self = Self::INTERSECTION_KHR;
11026     pub const CALLABLE_NV: Self = Self::CALLABLE_KHR;
11027 }
11028 #[doc = "Generated from 'VK_NV_ray_tracing'"]
11029 impl StructureType {
11030     pub const RAY_TRACING_PIPELINE_CREATE_INFO_NV: Self = Self(1_000_165_000);
11031     pub const ACCELERATION_STRUCTURE_CREATE_INFO_NV: Self = Self(1_000_165_001);
11032     pub const GEOMETRY_NV: Self = Self(1_000_165_003);
11033     pub const GEOMETRY_TRIANGLES_NV: Self = Self(1_000_165_004);
11034     pub const GEOMETRY_AABB_NV: Self = Self(1_000_165_005);
11035     pub const BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV: Self = Self(1_000_165_006);
11036     pub const WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV: Self = Self(1_000_165_007);
11037     pub const ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV: Self = Self(1_000_165_008);
11038     pub const PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV: Self = Self(1_000_165_009);
11039     pub const RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV: Self = Self(1_000_165_011);
11040     pub const ACCELERATION_STRUCTURE_INFO_NV: Self = Self(1_000_165_012);
11041 }
11042 impl NvRepresentativeFragmentTestFn {
11043     #[inline]
name() -> &'static ::std::ffi::CStr11044     pub const fn name() -> &'static ::std::ffi::CStr {
11045         unsafe {
11046             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_representative_fragment_test\0")
11047         }
11048     }
11049     pub const SPEC_VERSION: u32 = 2u32;
11050 }
11051 #[derive(Clone)]
11052 pub struct NvRepresentativeFragmentTestFn {}
11053 unsafe impl Send for NvRepresentativeFragmentTestFn {}
11054 unsafe impl Sync for NvRepresentativeFragmentTestFn {}
11055 impl NvRepresentativeFragmentTestFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11056     pub fn load<F>(mut _f: F) -> Self
11057     where
11058         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11059     {
11060         Self {}
11061     }
11062 }
11063 #[doc = "Generated from 'VK_NV_representative_fragment_test'"]
11064 impl StructureType {
11065     pub const PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV: Self = Self(1_000_166_000);
11066     pub const PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV: Self =
11067         Self(1_000_166_001);
11068 }
11069 impl NvExtension168Fn {
11070     #[inline]
name() -> &'static ::std::ffi::CStr11071     pub const fn name() -> &'static ::std::ffi::CStr {
11072         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_168\0") }
11073     }
11074     pub const SPEC_VERSION: u32 = 0u32;
11075 }
11076 #[derive(Clone)]
11077 pub struct NvExtension168Fn {}
11078 unsafe impl Send for NvExtension168Fn {}
11079 unsafe impl Sync for NvExtension168Fn {}
11080 impl NvExtension168Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11081     pub fn load<F>(mut _f: F) -> Self
11082     where
11083         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11084     {
11085         Self {}
11086     }
11087 }
11088 impl KhrMaintenance3Fn {
11089     #[inline]
name() -> &'static ::std::ffi::CStr11090     pub const fn name() -> &'static ::std::ffi::CStr {
11091         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance3\0") }
11092     }
11093     pub const SPEC_VERSION: u32 = 1u32;
11094 }
11095 #[allow(non_camel_case_types)]
11096 pub type PFN_vkGetDescriptorSetLayoutSupport = unsafe extern "system" fn(
11097     device: Device,
11098     p_create_info: *const DescriptorSetLayoutCreateInfo,
11099     p_support: *mut DescriptorSetLayoutSupport,
11100 );
11101 #[derive(Clone)]
11102 pub struct KhrMaintenance3Fn {
11103     pub get_descriptor_set_layout_support_khr: PFN_vkGetDescriptorSetLayoutSupport,
11104 }
11105 unsafe impl Send for KhrMaintenance3Fn {}
11106 unsafe impl Sync for KhrMaintenance3Fn {}
11107 impl KhrMaintenance3Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11108     pub fn load<F>(mut _f: F) -> Self
11109     where
11110         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11111     {
11112         Self {
11113             get_descriptor_set_layout_support_khr: unsafe {
11114                 unsafe extern "system" fn get_descriptor_set_layout_support_khr(
11115                     _device: Device,
11116                     _p_create_info: *const DescriptorSetLayoutCreateInfo,
11117                     _p_support: *mut DescriptorSetLayoutSupport,
11118                 ) {
11119                     panic!(concat!(
11120                         "Unable to load ",
11121                         stringify!(get_descriptor_set_layout_support_khr)
11122                     ))
11123                 }
11124                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11125                     b"vkGetDescriptorSetLayoutSupportKHR\0",
11126                 );
11127                 let val = _f(cname);
11128                 if val.is_null() {
11129                     get_descriptor_set_layout_support_khr
11130                 } else {
11131                     ::std::mem::transmute(val)
11132                 }
11133             },
11134         }
11135     }
11136 }
11137 #[doc = "Generated from 'VK_KHR_maintenance3'"]
11138 impl StructureType {
11139     pub const PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR: Self =
11140         Self::PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES;
11141     pub const DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR: Self = Self::DESCRIPTOR_SET_LAYOUT_SUPPORT;
11142 }
11143 impl KhrDrawIndirectCountFn {
11144     #[inline]
name() -> &'static ::std::ffi::CStr11145     pub const fn name() -> &'static ::std::ffi::CStr {
11146         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_draw_indirect_count\0") }
11147     }
11148     pub const SPEC_VERSION: u32 = 1u32;
11149 }
11150 #[derive(Clone)]
11151 pub struct KhrDrawIndirectCountFn {
11152     pub cmd_draw_indirect_count_khr: crate::vk::PFN_vkCmdDrawIndirectCount,
11153     pub cmd_draw_indexed_indirect_count_khr: crate::vk::PFN_vkCmdDrawIndexedIndirectCount,
11154 }
11155 unsafe impl Send for KhrDrawIndirectCountFn {}
11156 unsafe impl Sync for KhrDrawIndirectCountFn {}
11157 impl KhrDrawIndirectCountFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11158     pub fn load<F>(mut _f: F) -> Self
11159     where
11160         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11161     {
11162         Self {
11163             cmd_draw_indirect_count_khr: unsafe {
11164                 unsafe extern "system" fn cmd_draw_indirect_count_khr(
11165                     _command_buffer: CommandBuffer,
11166                     _buffer: Buffer,
11167                     _offset: DeviceSize,
11168                     _count_buffer: Buffer,
11169                     _count_buffer_offset: DeviceSize,
11170                     _max_draw_count: u32,
11171                     _stride: u32,
11172                 ) {
11173                     panic!(concat!(
11174                         "Unable to load ",
11175                         stringify!(cmd_draw_indirect_count_khr)
11176                     ))
11177                 }
11178                 let cname =
11179                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndirectCountKHR\0");
11180                 let val = _f(cname);
11181                 if val.is_null() {
11182                     cmd_draw_indirect_count_khr
11183                 } else {
11184                     ::std::mem::transmute(val)
11185                 }
11186             },
11187             cmd_draw_indexed_indirect_count_khr: unsafe {
11188                 unsafe extern "system" fn cmd_draw_indexed_indirect_count_khr(
11189                     _command_buffer: CommandBuffer,
11190                     _buffer: Buffer,
11191                     _offset: DeviceSize,
11192                     _count_buffer: Buffer,
11193                     _count_buffer_offset: DeviceSize,
11194                     _max_draw_count: u32,
11195                     _stride: u32,
11196                 ) {
11197                     panic!(concat!(
11198                         "Unable to load ",
11199                         stringify!(cmd_draw_indexed_indirect_count_khr)
11200                     ))
11201                 }
11202                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11203                     b"vkCmdDrawIndexedIndirectCountKHR\0",
11204                 );
11205                 let val = _f(cname);
11206                 if val.is_null() {
11207                     cmd_draw_indexed_indirect_count_khr
11208                 } else {
11209                     ::std::mem::transmute(val)
11210                 }
11211             },
11212         }
11213     }
11214 }
11215 impl ExtFilterCubicFn {
11216     #[inline]
name() -> &'static ::std::ffi::CStr11217     pub const fn name() -> &'static ::std::ffi::CStr {
11218         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_filter_cubic\0") }
11219     }
11220     pub const SPEC_VERSION: u32 = 3u32;
11221 }
11222 #[derive(Clone)]
11223 pub struct ExtFilterCubicFn {}
11224 unsafe impl Send for ExtFilterCubicFn {}
11225 unsafe impl Sync for ExtFilterCubicFn {}
11226 impl ExtFilterCubicFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11227     pub fn load<F>(mut _f: F) -> Self
11228     where
11229         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11230     {
11231         Self {}
11232     }
11233 }
11234 #[doc = "Generated from 'VK_EXT_filter_cubic'"]
11235 impl Filter {
11236     pub const CUBIC_EXT: Self = Self(1_000_015_000);
11237 }
11238 #[doc = "Generated from 'VK_EXT_filter_cubic'"]
11239 impl FormatFeatureFlags {
11240     pub const SAMPLED_IMAGE_FILTER_CUBIC_EXT: Self = Self(0b10_0000_0000_0000);
11241 }
11242 #[doc = "Generated from 'VK_EXT_filter_cubic'"]
11243 impl StructureType {
11244     pub const PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT: Self = Self(1_000_170_000);
11245     pub const FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT: Self = Self(1_000_170_001);
11246 }
11247 impl QcomRenderPassShaderResolveFn {
11248     #[inline]
name() -> &'static ::std::ffi::CStr11249     pub const fn name() -> &'static ::std::ffi::CStr {
11250         unsafe {
11251             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_render_pass_shader_resolve\0")
11252         }
11253     }
11254     pub const SPEC_VERSION: u32 = 4u32;
11255 }
11256 #[derive(Clone)]
11257 pub struct QcomRenderPassShaderResolveFn {}
11258 unsafe impl Send for QcomRenderPassShaderResolveFn {}
11259 unsafe impl Sync for QcomRenderPassShaderResolveFn {}
11260 impl QcomRenderPassShaderResolveFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11261     pub fn load<F>(mut _f: F) -> Self
11262     where
11263         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11264     {
11265         Self {}
11266     }
11267 }
11268 #[doc = "Generated from 'VK_QCOM_render_pass_shader_resolve'"]
11269 impl SubpassDescriptionFlags {
11270     pub const FRAGMENT_REGION_QCOM: Self = Self(0b100);
11271     pub const SHADER_RESOLVE_QCOM: Self = Self(0b1000);
11272 }
11273 impl QcomExtension173Fn {
11274     #[inline]
name() -> &'static ::std::ffi::CStr11275     pub const fn name() -> &'static ::std::ffi::CStr {
11276         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_173\0") }
11277     }
11278     pub const SPEC_VERSION: u32 = 0u32;
11279 }
11280 #[derive(Clone)]
11281 pub struct QcomExtension173Fn {}
11282 unsafe impl Send for QcomExtension173Fn {}
11283 unsafe impl Sync for QcomExtension173Fn {}
11284 impl QcomExtension173Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11285     pub fn load<F>(mut _f: F) -> Self
11286     where
11287         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11288     {
11289         Self {}
11290     }
11291 }
11292 #[doc = "Generated from 'VK_QCOM_extension_173'"]
11293 impl BufferUsageFlags {
11294     pub const RESERVED_18_QCOM: Self = Self(0b100_0000_0000_0000_0000);
11295 }
11296 #[doc = "Generated from 'VK_QCOM_extension_173'"]
11297 impl ImageUsageFlags {
11298     pub const RESERVED_16_QCOM: Self = Self(0b1_0000_0000_0000_0000);
11299     pub const RESERVED_17_QCOM: Self = Self(0b10_0000_0000_0000_0000);
11300 }
11301 impl QcomExtension174Fn {
11302     #[inline]
name() -> &'static ::std::ffi::CStr11303     pub const fn name() -> &'static ::std::ffi::CStr {
11304         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_174\0") }
11305     }
11306     pub const SPEC_VERSION: u32 = 0u32;
11307 }
11308 #[derive(Clone)]
11309 pub struct QcomExtension174Fn {}
11310 unsafe impl Send for QcomExtension174Fn {}
11311 unsafe impl Sync for QcomExtension174Fn {}
11312 impl QcomExtension174Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11313     pub fn load<F>(mut _f: F) -> Self
11314     where
11315         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11316     {
11317         Self {}
11318     }
11319 }
11320 impl ExtGlobalPriorityFn {
11321     #[inline]
name() -> &'static ::std::ffi::CStr11322     pub const fn name() -> &'static ::std::ffi::CStr {
11323         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_global_priority\0") }
11324     }
11325     pub const SPEC_VERSION: u32 = 2u32;
11326 }
11327 #[derive(Clone)]
11328 pub struct ExtGlobalPriorityFn {}
11329 unsafe impl Send for ExtGlobalPriorityFn {}
11330 unsafe impl Sync for ExtGlobalPriorityFn {}
11331 impl ExtGlobalPriorityFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11332     pub fn load<F>(mut _f: F) -> Self
11333     where
11334         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11335     {
11336         Self {}
11337     }
11338 }
11339 #[doc = "Generated from 'VK_EXT_global_priority'"]
11340 impl Result {
11341     pub const ERROR_NOT_PERMITTED_EXT: Self = Self::ERROR_NOT_PERMITTED_KHR;
11342 }
11343 #[doc = "Generated from 'VK_EXT_global_priority'"]
11344 impl StructureType {
11345     pub const DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT: Self =
11346         Self::DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR;
11347 }
11348 impl KhrShaderSubgroupExtendedTypesFn {
11349     #[inline]
name() -> &'static ::std::ffi::CStr11350     pub const fn name() -> &'static ::std::ffi::CStr {
11351         unsafe {
11352             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11353                 b"VK_KHR_shader_subgroup_extended_types\0",
11354             )
11355         }
11356     }
11357     pub const SPEC_VERSION: u32 = 1u32;
11358 }
11359 #[derive(Clone)]
11360 pub struct KhrShaderSubgroupExtendedTypesFn {}
11361 unsafe impl Send for KhrShaderSubgroupExtendedTypesFn {}
11362 unsafe impl Sync for KhrShaderSubgroupExtendedTypesFn {}
11363 impl KhrShaderSubgroupExtendedTypesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11364     pub fn load<F>(mut _f: F) -> Self
11365     where
11366         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11367     {
11368         Self {}
11369     }
11370 }
11371 #[doc = "Generated from 'VK_KHR_shader_subgroup_extended_types'"]
11372 impl StructureType {
11373     pub const PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR: Self =
11374         Self::PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES;
11375 }
11376 impl ExtExtension177Fn {
11377     #[inline]
name() -> &'static ::std::ffi::CStr11378     pub const fn name() -> &'static ::std::ffi::CStr {
11379         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_177\0") }
11380     }
11381     pub const SPEC_VERSION: u32 = 0u32;
11382 }
11383 #[derive(Clone)]
11384 pub struct ExtExtension177Fn {}
11385 unsafe impl Send for ExtExtension177Fn {}
11386 unsafe impl Sync for ExtExtension177Fn {}
11387 impl ExtExtension177Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11388     pub fn load<F>(mut _f: F) -> Self
11389     where
11390         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11391     {
11392         Self {}
11393     }
11394 }
11395 impl Khr8bitStorageFn {
11396     #[inline]
name() -> &'static ::std::ffi::CStr11397     pub const fn name() -> &'static ::std::ffi::CStr {
11398         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_8bit_storage\0") }
11399     }
11400     pub const SPEC_VERSION: u32 = 1u32;
11401 }
11402 #[derive(Clone)]
11403 pub struct Khr8bitStorageFn {}
11404 unsafe impl Send for Khr8bitStorageFn {}
11405 unsafe impl Sync for Khr8bitStorageFn {}
11406 impl Khr8bitStorageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11407     pub fn load<F>(mut _f: F) -> Self
11408     where
11409         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11410     {
11411         Self {}
11412     }
11413 }
11414 #[doc = "Generated from 'VK_KHR_8bit_storage'"]
11415 impl StructureType {
11416     pub const PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR: Self =
11417         Self::PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES;
11418 }
11419 impl ExtExternalMemoryHostFn {
11420     #[inline]
name() -> &'static ::std::ffi::CStr11421     pub const fn name() -> &'static ::std::ffi::CStr {
11422         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_external_memory_host\0") }
11423     }
11424     pub const SPEC_VERSION: u32 = 1u32;
11425 }
11426 #[allow(non_camel_case_types)]
11427 pub type PFN_vkGetMemoryHostPointerPropertiesEXT = unsafe extern "system" fn(
11428     device: Device,
11429     handle_type: ExternalMemoryHandleTypeFlags,
11430     p_host_pointer: *const c_void,
11431     p_memory_host_pointer_properties: *mut MemoryHostPointerPropertiesEXT,
11432 ) -> Result;
11433 #[derive(Clone)]
11434 pub struct ExtExternalMemoryHostFn {
11435     pub get_memory_host_pointer_properties_ext: PFN_vkGetMemoryHostPointerPropertiesEXT,
11436 }
11437 unsafe impl Send for ExtExternalMemoryHostFn {}
11438 unsafe impl Sync for ExtExternalMemoryHostFn {}
11439 impl ExtExternalMemoryHostFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11440     pub fn load<F>(mut _f: F) -> Self
11441     where
11442         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11443     {
11444         Self {
11445             get_memory_host_pointer_properties_ext: unsafe {
11446                 unsafe extern "system" fn get_memory_host_pointer_properties_ext(
11447                     _device: Device,
11448                     _handle_type: ExternalMemoryHandleTypeFlags,
11449                     _p_host_pointer: *const c_void,
11450                     _p_memory_host_pointer_properties: *mut MemoryHostPointerPropertiesEXT,
11451                 ) -> Result {
11452                     panic!(concat!(
11453                         "Unable to load ",
11454                         stringify!(get_memory_host_pointer_properties_ext)
11455                     ))
11456                 }
11457                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11458                     b"vkGetMemoryHostPointerPropertiesEXT\0",
11459                 );
11460                 let val = _f(cname);
11461                 if val.is_null() {
11462                     get_memory_host_pointer_properties_ext
11463                 } else {
11464                     ::std::mem::transmute(val)
11465                 }
11466             },
11467         }
11468     }
11469 }
11470 #[doc = "Generated from 'VK_EXT_external_memory_host'"]
11471 impl ExternalMemoryHandleTypeFlags {
11472     pub const HOST_ALLOCATION_EXT: Self = Self(0b1000_0000);
11473     pub const HOST_MAPPED_FOREIGN_MEMORY_EXT: Self = Self(0b1_0000_0000);
11474 }
11475 #[doc = "Generated from 'VK_EXT_external_memory_host'"]
11476 impl StructureType {
11477     pub const IMPORT_MEMORY_HOST_POINTER_INFO_EXT: Self = Self(1_000_178_000);
11478     pub const MEMORY_HOST_POINTER_PROPERTIES_EXT: Self = Self(1_000_178_001);
11479     pub const PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT: Self = Self(1_000_178_002);
11480 }
11481 impl AmdBufferMarkerFn {
11482     #[inline]
name() -> &'static ::std::ffi::CStr11483     pub const fn name() -> &'static ::std::ffi::CStr {
11484         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_buffer_marker\0") }
11485     }
11486     pub const SPEC_VERSION: u32 = 1u32;
11487 }
11488 #[allow(non_camel_case_types)]
11489 pub type PFN_vkCmdWriteBufferMarkerAMD = unsafe extern "system" fn(
11490     command_buffer: CommandBuffer,
11491     pipeline_stage: PipelineStageFlags,
11492     dst_buffer: Buffer,
11493     dst_offset: DeviceSize,
11494     marker: u32,
11495 );
11496 #[derive(Clone)]
11497 pub struct AmdBufferMarkerFn {
11498     pub cmd_write_buffer_marker_amd: PFN_vkCmdWriteBufferMarkerAMD,
11499 }
11500 unsafe impl Send for AmdBufferMarkerFn {}
11501 unsafe impl Sync for AmdBufferMarkerFn {}
11502 impl AmdBufferMarkerFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11503     pub fn load<F>(mut _f: F) -> Self
11504     where
11505         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11506     {
11507         Self {
11508             cmd_write_buffer_marker_amd: unsafe {
11509                 unsafe extern "system" fn cmd_write_buffer_marker_amd(
11510                     _command_buffer: CommandBuffer,
11511                     _pipeline_stage: PipelineStageFlags,
11512                     _dst_buffer: Buffer,
11513                     _dst_offset: DeviceSize,
11514                     _marker: u32,
11515                 ) {
11516                     panic!(concat!(
11517                         "Unable to load ",
11518                         stringify!(cmd_write_buffer_marker_amd)
11519                     ))
11520                 }
11521                 let cname =
11522                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdWriteBufferMarkerAMD\0");
11523                 let val = _f(cname);
11524                 if val.is_null() {
11525                     cmd_write_buffer_marker_amd
11526                 } else {
11527                     ::std::mem::transmute(val)
11528                 }
11529             },
11530         }
11531     }
11532 }
11533 impl KhrShaderAtomicInt64Fn {
11534     #[inline]
name() -> &'static ::std::ffi::CStr11535     pub const fn name() -> &'static ::std::ffi::CStr {
11536         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_atomic_int64\0") }
11537     }
11538     pub const SPEC_VERSION: u32 = 1u32;
11539 }
11540 #[derive(Clone)]
11541 pub struct KhrShaderAtomicInt64Fn {}
11542 unsafe impl Send for KhrShaderAtomicInt64Fn {}
11543 unsafe impl Sync for KhrShaderAtomicInt64Fn {}
11544 impl KhrShaderAtomicInt64Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11545     pub fn load<F>(mut _f: F) -> Self
11546     where
11547         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11548     {
11549         Self {}
11550     }
11551 }
11552 #[doc = "Generated from 'VK_KHR_shader_atomic_int64'"]
11553 impl StructureType {
11554     pub const PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR: Self =
11555         Self::PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES;
11556 }
11557 impl KhrShaderClockFn {
11558     #[inline]
name() -> &'static ::std::ffi::CStr11559     pub const fn name() -> &'static ::std::ffi::CStr {
11560         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_clock\0") }
11561     }
11562     pub const SPEC_VERSION: u32 = 1u32;
11563 }
11564 #[derive(Clone)]
11565 pub struct KhrShaderClockFn {}
11566 unsafe impl Send for KhrShaderClockFn {}
11567 unsafe impl Sync for KhrShaderClockFn {}
11568 impl KhrShaderClockFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11569     pub fn load<F>(mut _f: F) -> Self
11570     where
11571         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11572     {
11573         Self {}
11574     }
11575 }
11576 #[doc = "Generated from 'VK_KHR_shader_clock'"]
11577 impl StructureType {
11578     pub const PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR: Self = Self(1_000_181_000);
11579 }
11580 impl AmdExtension183Fn {
11581     #[inline]
name() -> &'static ::std::ffi::CStr11582     pub const fn name() -> &'static ::std::ffi::CStr {
11583         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_183\0") }
11584     }
11585     pub const SPEC_VERSION: u32 = 0u32;
11586 }
11587 #[derive(Clone)]
11588 pub struct AmdExtension183Fn {}
11589 unsafe impl Send for AmdExtension183Fn {}
11590 unsafe impl Sync for AmdExtension183Fn {}
11591 impl AmdExtension183Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11592     pub fn load<F>(mut _f: F) -> Self
11593     where
11594         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11595     {
11596         Self {}
11597     }
11598 }
11599 impl AmdPipelineCompilerControlFn {
11600     #[inline]
name() -> &'static ::std::ffi::CStr11601     pub const fn name() -> &'static ::std::ffi::CStr {
11602         unsafe {
11603             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_pipeline_compiler_control\0")
11604         }
11605     }
11606     pub const SPEC_VERSION: u32 = 1u32;
11607 }
11608 #[derive(Clone)]
11609 pub struct AmdPipelineCompilerControlFn {}
11610 unsafe impl Send for AmdPipelineCompilerControlFn {}
11611 unsafe impl Sync for AmdPipelineCompilerControlFn {}
11612 impl AmdPipelineCompilerControlFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11613     pub fn load<F>(mut _f: F) -> Self
11614     where
11615         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11616     {
11617         Self {}
11618     }
11619 }
11620 #[doc = "Generated from 'VK_AMD_pipeline_compiler_control'"]
11621 impl StructureType {
11622     pub const PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD: Self = Self(1_000_183_000);
11623 }
11624 impl ExtCalibratedTimestampsFn {
11625     #[inline]
name() -> &'static ::std::ffi::CStr11626     pub const fn name() -> &'static ::std::ffi::CStr {
11627         unsafe {
11628             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_calibrated_timestamps\0")
11629         }
11630     }
11631     pub const SPEC_VERSION: u32 = 2u32;
11632 }
11633 #[allow(non_camel_case_types)]
11634 pub type PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = unsafe extern "system" fn(
11635     physical_device: PhysicalDevice,
11636     p_time_domain_count: *mut u32,
11637     p_time_domains: *mut TimeDomainEXT,
11638 ) -> Result;
11639 #[allow(non_camel_case_types)]
11640 pub type PFN_vkGetCalibratedTimestampsEXT = unsafe extern "system" fn(
11641     device: Device,
11642     timestamp_count: u32,
11643     p_timestamp_infos: *const CalibratedTimestampInfoEXT,
11644     p_timestamps: *mut u64,
11645     p_max_deviation: *mut u64,
11646 ) -> Result;
11647 #[derive(Clone)]
11648 pub struct ExtCalibratedTimestampsFn {
11649     pub get_physical_device_calibrateable_time_domains_ext:
11650         PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT,
11651     pub get_calibrated_timestamps_ext: PFN_vkGetCalibratedTimestampsEXT,
11652 }
11653 unsafe impl Send for ExtCalibratedTimestampsFn {}
11654 unsafe impl Sync for ExtCalibratedTimestampsFn {}
11655 impl ExtCalibratedTimestampsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11656     pub fn load<F>(mut _f: F) -> Self
11657     where
11658         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11659     {
11660         Self {
11661             get_physical_device_calibrateable_time_domains_ext: unsafe {
11662                 unsafe extern "system" fn get_physical_device_calibrateable_time_domains_ext(
11663                     _physical_device: PhysicalDevice,
11664                     _p_time_domain_count: *mut u32,
11665                     _p_time_domains: *mut TimeDomainEXT,
11666                 ) -> Result {
11667                     panic!(concat!(
11668                         "Unable to load ",
11669                         stringify!(get_physical_device_calibrateable_time_domains_ext)
11670                     ))
11671                 }
11672                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11673                     b"vkGetPhysicalDeviceCalibrateableTimeDomainsEXT\0",
11674                 );
11675                 let val = _f(cname);
11676                 if val.is_null() {
11677                     get_physical_device_calibrateable_time_domains_ext
11678                 } else {
11679                     ::std::mem::transmute(val)
11680                 }
11681             },
11682             get_calibrated_timestamps_ext: unsafe {
11683                 unsafe extern "system" fn get_calibrated_timestamps_ext(
11684                     _device: Device,
11685                     _timestamp_count: u32,
11686                     _p_timestamp_infos: *const CalibratedTimestampInfoEXT,
11687                     _p_timestamps: *mut u64,
11688                     _p_max_deviation: *mut u64,
11689                 ) -> Result {
11690                     panic!(concat!(
11691                         "Unable to load ",
11692                         stringify!(get_calibrated_timestamps_ext)
11693                     ))
11694                 }
11695                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11696                     b"vkGetCalibratedTimestampsEXT\0",
11697                 );
11698                 let val = _f(cname);
11699                 if val.is_null() {
11700                     get_calibrated_timestamps_ext
11701                 } else {
11702                     ::std::mem::transmute(val)
11703                 }
11704             },
11705         }
11706     }
11707 }
11708 #[doc = "Generated from 'VK_EXT_calibrated_timestamps'"]
11709 impl StructureType {
11710     pub const CALIBRATED_TIMESTAMP_INFO_EXT: Self = Self(1_000_184_000);
11711 }
11712 impl AmdShaderCorePropertiesFn {
11713     #[inline]
name() -> &'static ::std::ffi::CStr11714     pub const fn name() -> &'static ::std::ffi::CStr {
11715         unsafe {
11716             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_core_properties\0")
11717         }
11718     }
11719     pub const SPEC_VERSION: u32 = 2u32;
11720 }
11721 #[derive(Clone)]
11722 pub struct AmdShaderCorePropertiesFn {}
11723 unsafe impl Send for AmdShaderCorePropertiesFn {}
11724 unsafe impl Sync for AmdShaderCorePropertiesFn {}
11725 impl AmdShaderCorePropertiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11726     pub fn load<F>(mut _f: F) -> Self
11727     where
11728         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11729     {
11730         Self {}
11731     }
11732 }
11733 #[doc = "Generated from 'VK_AMD_shader_core_properties'"]
11734 impl StructureType {
11735     pub const PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD: Self = Self(1_000_185_000);
11736 }
11737 impl AmdExtension187Fn {
11738     #[inline]
name() -> &'static ::std::ffi::CStr11739     pub const fn name() -> &'static ::std::ffi::CStr {
11740         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_187\0") }
11741     }
11742     pub const SPEC_VERSION: u32 = 0u32;
11743 }
11744 #[derive(Clone)]
11745 pub struct AmdExtension187Fn {}
11746 unsafe impl Send for AmdExtension187Fn {}
11747 unsafe impl Sync for AmdExtension187Fn {}
11748 impl AmdExtension187Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11749     pub fn load<F>(mut _f: F) -> Self
11750     where
11751         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11752     {
11753         Self {}
11754     }
11755 }
11756 impl KhrVideoDecodeH265Fn {
11757     #[inline]
name() -> &'static ::std::ffi::CStr11758     pub const fn name() -> &'static ::std::ffi::CStr {
11759         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_decode_h265\0") }
11760     }
11761     pub const SPEC_VERSION: u32 = 7u32;
11762 }
11763 #[derive(Clone)]
11764 pub struct KhrVideoDecodeH265Fn {}
11765 unsafe impl Send for KhrVideoDecodeH265Fn {}
11766 unsafe impl Sync for KhrVideoDecodeH265Fn {}
11767 impl KhrVideoDecodeH265Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11768     pub fn load<F>(mut _f: F) -> Self
11769     where
11770         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11771     {
11772         Self {}
11773     }
11774 }
11775 #[doc = "Generated from 'VK_KHR_video_decode_h265'"]
11776 impl StructureType {
11777     pub const VIDEO_DECODE_H265_CAPABILITIES_KHR: Self = Self(1_000_187_000);
11778     pub const VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR: Self = Self(1_000_187_001);
11779     pub const VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR: Self = Self(1_000_187_002);
11780     pub const VIDEO_DECODE_H265_PROFILE_INFO_KHR: Self = Self(1_000_187_003);
11781     pub const VIDEO_DECODE_H265_PICTURE_INFO_KHR: Self = Self(1_000_187_004);
11782     pub const VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR: Self = Self(1_000_187_005);
11783 }
11784 #[doc = "Generated from 'VK_KHR_video_decode_h265'"]
11785 impl VideoCodecOperationFlagsKHR {
11786     pub const DECODE_H265: Self = Self(0b10);
11787 }
11788 impl KhrGlobalPriorityFn {
11789     #[inline]
name() -> &'static ::std::ffi::CStr11790     pub const fn name() -> &'static ::std::ffi::CStr {
11791         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_global_priority\0") }
11792     }
11793     pub const SPEC_VERSION: u32 = 1u32;
11794 }
11795 #[derive(Clone)]
11796 pub struct KhrGlobalPriorityFn {}
11797 unsafe impl Send for KhrGlobalPriorityFn {}
11798 unsafe impl Sync for KhrGlobalPriorityFn {}
11799 impl KhrGlobalPriorityFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11800     pub fn load<F>(mut _f: F) -> Self
11801     where
11802         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11803     {
11804         Self {}
11805     }
11806 }
11807 #[doc = "Generated from 'VK_KHR_global_priority'"]
11808 impl Result {
11809     pub const ERROR_NOT_PERMITTED_KHR: Self = Self(-1_000_174_001);
11810 }
11811 #[doc = "Generated from 'VK_KHR_global_priority'"]
11812 impl StructureType {
11813     pub const DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR: Self = Self(1_000_174_000);
11814     pub const PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR: Self = Self(1_000_388_000);
11815     pub const QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR: Self = Self(1_000_388_001);
11816 }
11817 impl AmdMemoryOverallocationBehaviorFn {
11818     #[inline]
name() -> &'static ::std::ffi::CStr11819     pub const fn name() -> &'static ::std::ffi::CStr {
11820         unsafe {
11821             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11822                 b"VK_AMD_memory_overallocation_behavior\0",
11823             )
11824         }
11825     }
11826     pub const SPEC_VERSION: u32 = 1u32;
11827 }
11828 #[derive(Clone)]
11829 pub struct AmdMemoryOverallocationBehaviorFn {}
11830 unsafe impl Send for AmdMemoryOverallocationBehaviorFn {}
11831 unsafe impl Sync for AmdMemoryOverallocationBehaviorFn {}
11832 impl AmdMemoryOverallocationBehaviorFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11833     pub fn load<F>(mut _f: F) -> Self
11834     where
11835         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11836     {
11837         Self {}
11838     }
11839 }
11840 #[doc = "Generated from 'VK_AMD_memory_overallocation_behavior'"]
11841 impl StructureType {
11842     pub const DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD: Self = Self(1_000_189_000);
11843 }
11844 impl ExtVertexAttributeDivisorFn {
11845     #[inline]
name() -> &'static ::std::ffi::CStr11846     pub const fn name() -> &'static ::std::ffi::CStr {
11847         unsafe {
11848             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_vertex_attribute_divisor\0")
11849         }
11850     }
11851     pub const SPEC_VERSION: u32 = 3u32;
11852 }
11853 #[derive(Clone)]
11854 pub struct ExtVertexAttributeDivisorFn {}
11855 unsafe impl Send for ExtVertexAttributeDivisorFn {}
11856 unsafe impl Sync for ExtVertexAttributeDivisorFn {}
11857 impl ExtVertexAttributeDivisorFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11858     pub fn load<F>(mut _f: F) -> Self
11859     where
11860         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11861     {
11862         Self {}
11863     }
11864 }
11865 #[doc = "Generated from 'VK_EXT_vertex_attribute_divisor'"]
11866 impl StructureType {
11867     pub const PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: Self = Self(1_000_190_000);
11868     pub const PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: Self = Self(1_000_190_001);
11869     pub const PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT: Self = Self(1_000_190_002);
11870 }
11871 impl GgpFrameTokenFn {
11872     #[inline]
name() -> &'static ::std::ffi::CStr11873     pub const fn name() -> &'static ::std::ffi::CStr {
11874         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GGP_frame_token\0") }
11875     }
11876     pub const SPEC_VERSION: u32 = 1u32;
11877 }
11878 #[derive(Clone)]
11879 pub struct GgpFrameTokenFn {}
11880 unsafe impl Send for GgpFrameTokenFn {}
11881 unsafe impl Sync for GgpFrameTokenFn {}
11882 impl GgpFrameTokenFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11883     pub fn load<F>(mut _f: F) -> Self
11884     where
11885         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11886     {
11887         Self {}
11888     }
11889 }
11890 #[doc = "Generated from 'VK_GGP_frame_token'"]
11891 impl StructureType {
11892     pub const PRESENT_FRAME_TOKEN_GGP: Self = Self(1_000_191_000);
11893 }
11894 impl ExtPipelineCreationFeedbackFn {
11895     #[inline]
name() -> &'static ::std::ffi::CStr11896     pub const fn name() -> &'static ::std::ffi::CStr {
11897         unsafe {
11898             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pipeline_creation_feedback\0")
11899         }
11900     }
11901     pub const SPEC_VERSION: u32 = 1u32;
11902 }
11903 #[derive(Clone)]
11904 pub struct ExtPipelineCreationFeedbackFn {}
11905 unsafe impl Send for ExtPipelineCreationFeedbackFn {}
11906 unsafe impl Sync for ExtPipelineCreationFeedbackFn {}
11907 impl ExtPipelineCreationFeedbackFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11908     pub fn load<F>(mut _f: F) -> Self
11909     where
11910         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11911     {
11912         Self {}
11913     }
11914 }
11915 #[doc = "Generated from 'VK_EXT_pipeline_creation_feedback'"]
11916 impl StructureType {
11917     pub const PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT: Self =
11918         Self::PIPELINE_CREATION_FEEDBACK_CREATE_INFO;
11919 }
11920 impl GoogleExtension194Fn {
11921     #[inline]
name() -> &'static ::std::ffi::CStr11922     pub const fn name() -> &'static ::std::ffi::CStr {
11923         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_extension_194\0") }
11924     }
11925     pub const SPEC_VERSION: u32 = 0u32;
11926 }
11927 #[derive(Clone)]
11928 pub struct GoogleExtension194Fn {}
11929 unsafe impl Send for GoogleExtension194Fn {}
11930 unsafe impl Sync for GoogleExtension194Fn {}
11931 impl GoogleExtension194Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11932     pub fn load<F>(mut _f: F) -> Self
11933     where
11934         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11935     {
11936         Self {}
11937     }
11938 }
11939 impl GoogleExtension195Fn {
11940     #[inline]
name() -> &'static ::std::ffi::CStr11941     pub const fn name() -> &'static ::std::ffi::CStr {
11942         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_extension_195\0") }
11943     }
11944     pub const SPEC_VERSION: u32 = 0u32;
11945 }
11946 #[derive(Clone)]
11947 pub struct GoogleExtension195Fn {}
11948 unsafe impl Send for GoogleExtension195Fn {}
11949 unsafe impl Sync for GoogleExtension195Fn {}
11950 impl GoogleExtension195Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11951     pub fn load<F>(mut _f: F) -> Self
11952     where
11953         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11954     {
11955         Self {}
11956     }
11957 }
11958 impl KhrDriverPropertiesFn {
11959     #[inline]
name() -> &'static ::std::ffi::CStr11960     pub const fn name() -> &'static ::std::ffi::CStr {
11961         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_driver_properties\0") }
11962     }
11963     pub const SPEC_VERSION: u32 = 1u32;
11964 }
11965 #[derive(Clone)]
11966 pub struct KhrDriverPropertiesFn {}
11967 unsafe impl Send for KhrDriverPropertiesFn {}
11968 unsafe impl Sync for KhrDriverPropertiesFn {}
11969 impl KhrDriverPropertiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11970     pub fn load<F>(mut _f: F) -> Self
11971     where
11972         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11973     {
11974         Self {}
11975     }
11976 }
11977 #[doc = "Generated from 'VK_KHR_driver_properties'"]
11978 impl DriverId {
11979     pub const AMD_PROPRIETARY_KHR: Self = Self::AMD_PROPRIETARY;
11980     pub const AMD_OPEN_SOURCE_KHR: Self = Self::AMD_OPEN_SOURCE;
11981     pub const MESA_RADV_KHR: Self = Self::MESA_RADV;
11982     pub const NVIDIA_PROPRIETARY_KHR: Self = Self::NVIDIA_PROPRIETARY;
11983     pub const INTEL_PROPRIETARY_WINDOWS_KHR: Self = Self::INTEL_PROPRIETARY_WINDOWS;
11984     pub const INTEL_OPEN_SOURCE_MESA_KHR: Self = Self::INTEL_OPEN_SOURCE_MESA;
11985     pub const IMAGINATION_PROPRIETARY_KHR: Self = Self::IMAGINATION_PROPRIETARY;
11986     pub const QUALCOMM_PROPRIETARY_KHR: Self = Self::QUALCOMM_PROPRIETARY;
11987     pub const ARM_PROPRIETARY_KHR: Self = Self::ARM_PROPRIETARY;
11988     pub const GOOGLE_SWIFTSHADER_KHR: Self = Self::GOOGLE_SWIFTSHADER;
11989     pub const GGP_PROPRIETARY_KHR: Self = Self::GGP_PROPRIETARY;
11990     pub const BROADCOM_PROPRIETARY_KHR: Self = Self::BROADCOM_PROPRIETARY;
11991 }
11992 #[doc = "Generated from 'VK_KHR_driver_properties'"]
11993 impl StructureType {
11994     pub const PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR: Self = Self::PHYSICAL_DEVICE_DRIVER_PROPERTIES;
11995 }
11996 impl KhrShaderFloatControlsFn {
11997     #[inline]
name() -> &'static ::std::ffi::CStr11998     pub const fn name() -> &'static ::std::ffi::CStr {
11999         unsafe {
12000             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_float_controls\0")
12001         }
12002     }
12003     pub const SPEC_VERSION: u32 = 4u32;
12004 }
12005 #[derive(Clone)]
12006 pub struct KhrShaderFloatControlsFn {}
12007 unsafe impl Send for KhrShaderFloatControlsFn {}
12008 unsafe impl Sync for KhrShaderFloatControlsFn {}
12009 impl KhrShaderFloatControlsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12010     pub fn load<F>(mut _f: F) -> Self
12011     where
12012         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12013     {
12014         Self {}
12015     }
12016 }
12017 #[doc = "Generated from 'VK_KHR_shader_float_controls'"]
12018 impl ShaderFloatControlsIndependence {
12019     pub const TYPE_32_ONLY_KHR: Self = Self::TYPE_32_ONLY;
12020     pub const ALL_KHR: Self = Self::ALL;
12021     pub const NONE_KHR: Self = Self::NONE;
12022 }
12023 #[doc = "Generated from 'VK_KHR_shader_float_controls'"]
12024 impl StructureType {
12025     pub const PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR: Self =
12026         Self::PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES;
12027 }
12028 impl NvShaderSubgroupPartitionedFn {
12029     #[inline]
name() -> &'static ::std::ffi::CStr12030     pub const fn name() -> &'static ::std::ffi::CStr {
12031         unsafe {
12032             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_shader_subgroup_partitioned\0")
12033         }
12034     }
12035     pub const SPEC_VERSION: u32 = 1u32;
12036 }
12037 #[derive(Clone)]
12038 pub struct NvShaderSubgroupPartitionedFn {}
12039 unsafe impl Send for NvShaderSubgroupPartitionedFn {}
12040 unsafe impl Sync for NvShaderSubgroupPartitionedFn {}
12041 impl NvShaderSubgroupPartitionedFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12042     pub fn load<F>(mut _f: F) -> Self
12043     where
12044         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12045     {
12046         Self {}
12047     }
12048 }
12049 #[doc = "Generated from 'VK_NV_shader_subgroup_partitioned'"]
12050 impl SubgroupFeatureFlags {
12051     pub const PARTITIONED_NV: Self = Self(0b1_0000_0000);
12052 }
12053 impl KhrDepthStencilResolveFn {
12054     #[inline]
name() -> &'static ::std::ffi::CStr12055     pub const fn name() -> &'static ::std::ffi::CStr {
12056         unsafe {
12057             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_depth_stencil_resolve\0")
12058         }
12059     }
12060     pub const SPEC_VERSION: u32 = 1u32;
12061 }
12062 #[derive(Clone)]
12063 pub struct KhrDepthStencilResolveFn {}
12064 unsafe impl Send for KhrDepthStencilResolveFn {}
12065 unsafe impl Sync for KhrDepthStencilResolveFn {}
12066 impl KhrDepthStencilResolveFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12067     pub fn load<F>(mut _f: F) -> Self
12068     where
12069         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12070     {
12071         Self {}
12072     }
12073 }
12074 #[doc = "Generated from 'VK_KHR_depth_stencil_resolve'"]
12075 impl ResolveModeFlags {
12076     pub const NONE_KHR: Self = Self::NONE;
12077     pub const SAMPLE_ZERO_KHR: Self = Self::SAMPLE_ZERO;
12078     pub const AVERAGE_KHR: Self = Self::AVERAGE;
12079     pub const MIN_KHR: Self = Self::MIN;
12080     pub const MAX_KHR: Self = Self::MAX;
12081 }
12082 #[doc = "Generated from 'VK_KHR_depth_stencil_resolve'"]
12083 impl StructureType {
12084     pub const PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR: Self =
12085         Self::PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES;
12086     pub const SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR: Self =
12087         Self::SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE;
12088 }
12089 impl KhrSwapchainMutableFormatFn {
12090     #[inline]
name() -> &'static ::std::ffi::CStr12091     pub const fn name() -> &'static ::std::ffi::CStr {
12092         unsafe {
12093             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_swapchain_mutable_format\0")
12094         }
12095     }
12096     pub const SPEC_VERSION: u32 = 1u32;
12097 }
12098 #[derive(Clone)]
12099 pub struct KhrSwapchainMutableFormatFn {}
12100 unsafe impl Send for KhrSwapchainMutableFormatFn {}
12101 unsafe impl Sync for KhrSwapchainMutableFormatFn {}
12102 impl KhrSwapchainMutableFormatFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12103     pub fn load<F>(mut _f: F) -> Self
12104     where
12105         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12106     {
12107         Self {}
12108     }
12109 }
12110 #[doc = "Generated from 'VK_KHR_swapchain_mutable_format'"]
12111 impl SwapchainCreateFlagsKHR {
12112     pub const MUTABLE_FORMAT: Self = Self(0b100);
12113 }
12114 impl NvComputeShaderDerivativesFn {
12115     #[inline]
name() -> &'static ::std::ffi::CStr12116     pub const fn name() -> &'static ::std::ffi::CStr {
12117         unsafe {
12118             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_compute_shader_derivatives\0")
12119         }
12120     }
12121     pub const SPEC_VERSION: u32 = 1u32;
12122 }
12123 #[derive(Clone)]
12124 pub struct NvComputeShaderDerivativesFn {}
12125 unsafe impl Send for NvComputeShaderDerivativesFn {}
12126 unsafe impl Sync for NvComputeShaderDerivativesFn {}
12127 impl NvComputeShaderDerivativesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12128     pub fn load<F>(mut _f: F) -> Self
12129     where
12130         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12131     {
12132         Self {}
12133     }
12134 }
12135 #[doc = "Generated from 'VK_NV_compute_shader_derivatives'"]
12136 impl StructureType {
12137     pub const PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: Self = Self(1_000_201_000);
12138 }
12139 impl NvMeshShaderFn {
12140     #[inline]
name() -> &'static ::std::ffi::CStr12141     pub const fn name() -> &'static ::std::ffi::CStr {
12142         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_mesh_shader\0") }
12143     }
12144     pub const SPEC_VERSION: u32 = 1u32;
12145 }
12146 #[allow(non_camel_case_types)]
12147 pub type PFN_vkCmdDrawMeshTasksNV =
12148     unsafe extern "system" fn(command_buffer: CommandBuffer, task_count: u32, first_task: u32);
12149 #[allow(non_camel_case_types)]
12150 pub type PFN_vkCmdDrawMeshTasksIndirectNV = unsafe extern "system" fn(
12151     command_buffer: CommandBuffer,
12152     buffer: Buffer,
12153     offset: DeviceSize,
12154     draw_count: u32,
12155     stride: u32,
12156 );
12157 #[allow(non_camel_case_types)]
12158 pub type PFN_vkCmdDrawMeshTasksIndirectCountNV = unsafe extern "system" fn(
12159     command_buffer: CommandBuffer,
12160     buffer: Buffer,
12161     offset: DeviceSize,
12162     count_buffer: Buffer,
12163     count_buffer_offset: DeviceSize,
12164     max_draw_count: u32,
12165     stride: u32,
12166 );
12167 #[derive(Clone)]
12168 pub struct NvMeshShaderFn {
12169     pub cmd_draw_mesh_tasks_nv: PFN_vkCmdDrawMeshTasksNV,
12170     pub cmd_draw_mesh_tasks_indirect_nv: PFN_vkCmdDrawMeshTasksIndirectNV,
12171     pub cmd_draw_mesh_tasks_indirect_count_nv: PFN_vkCmdDrawMeshTasksIndirectCountNV,
12172 }
12173 unsafe impl Send for NvMeshShaderFn {}
12174 unsafe impl Sync for NvMeshShaderFn {}
12175 impl NvMeshShaderFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12176     pub fn load<F>(mut _f: F) -> Self
12177     where
12178         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12179     {
12180         Self {
12181             cmd_draw_mesh_tasks_nv: unsafe {
12182                 unsafe extern "system" fn cmd_draw_mesh_tasks_nv(
12183                     _command_buffer: CommandBuffer,
12184                     _task_count: u32,
12185                     _first_task: u32,
12186                 ) {
12187                     panic!(concat!(
12188                         "Unable to load ",
12189                         stringify!(cmd_draw_mesh_tasks_nv)
12190                     ))
12191                 }
12192                 let cname =
12193                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMeshTasksNV\0");
12194                 let val = _f(cname);
12195                 if val.is_null() {
12196                     cmd_draw_mesh_tasks_nv
12197                 } else {
12198                     ::std::mem::transmute(val)
12199                 }
12200             },
12201             cmd_draw_mesh_tasks_indirect_nv: unsafe {
12202                 unsafe extern "system" fn cmd_draw_mesh_tasks_indirect_nv(
12203                     _command_buffer: CommandBuffer,
12204                     _buffer: Buffer,
12205                     _offset: DeviceSize,
12206                     _draw_count: u32,
12207                     _stride: u32,
12208                 ) {
12209                     panic!(concat!(
12210                         "Unable to load ",
12211                         stringify!(cmd_draw_mesh_tasks_indirect_nv)
12212                     ))
12213                 }
12214                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12215                     b"vkCmdDrawMeshTasksIndirectNV\0",
12216                 );
12217                 let val = _f(cname);
12218                 if val.is_null() {
12219                     cmd_draw_mesh_tasks_indirect_nv
12220                 } else {
12221                     ::std::mem::transmute(val)
12222                 }
12223             },
12224             cmd_draw_mesh_tasks_indirect_count_nv: unsafe {
12225                 unsafe extern "system" fn cmd_draw_mesh_tasks_indirect_count_nv(
12226                     _command_buffer: CommandBuffer,
12227                     _buffer: Buffer,
12228                     _offset: DeviceSize,
12229                     _count_buffer: Buffer,
12230                     _count_buffer_offset: DeviceSize,
12231                     _max_draw_count: u32,
12232                     _stride: u32,
12233                 ) {
12234                     panic!(concat!(
12235                         "Unable to load ",
12236                         stringify!(cmd_draw_mesh_tasks_indirect_count_nv)
12237                     ))
12238                 }
12239                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12240                     b"vkCmdDrawMeshTasksIndirectCountNV\0",
12241                 );
12242                 let val = _f(cname);
12243                 if val.is_null() {
12244                     cmd_draw_mesh_tasks_indirect_count_nv
12245                 } else {
12246                     ::std::mem::transmute(val)
12247                 }
12248             },
12249         }
12250     }
12251 }
12252 #[doc = "Generated from 'VK_NV_mesh_shader'"]
12253 impl PipelineStageFlags {
12254     pub const TASK_SHADER_NV: Self = Self::TASK_SHADER_EXT;
12255     pub const MESH_SHADER_NV: Self = Self::MESH_SHADER_EXT;
12256 }
12257 #[doc = "Generated from 'VK_NV_mesh_shader'"]
12258 impl ShaderStageFlags {
12259     pub const TASK_NV: Self = Self::TASK_EXT;
12260     pub const MESH_NV: Self = Self::MESH_EXT;
12261 }
12262 #[doc = "Generated from 'VK_NV_mesh_shader'"]
12263 impl StructureType {
12264     pub const PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV: Self = Self(1_000_202_000);
12265     pub const PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV: Self = Self(1_000_202_001);
12266 }
12267 impl NvFragmentShaderBarycentricFn {
12268     #[inline]
name() -> &'static ::std::ffi::CStr12269     pub const fn name() -> &'static ::std::ffi::CStr {
12270         unsafe {
12271             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_fragment_shader_barycentric\0")
12272         }
12273     }
12274     pub const SPEC_VERSION: u32 = 1u32;
12275 }
12276 #[derive(Clone)]
12277 pub struct NvFragmentShaderBarycentricFn {}
12278 unsafe impl Send for NvFragmentShaderBarycentricFn {}
12279 unsafe impl Sync for NvFragmentShaderBarycentricFn {}
12280 impl NvFragmentShaderBarycentricFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12281     pub fn load<F>(mut _f: F) -> Self
12282     where
12283         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12284     {
12285         Self {}
12286     }
12287 }
12288 #[doc = "Generated from 'VK_NV_fragment_shader_barycentric'"]
12289 impl StructureType {
12290     pub const PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV: Self =
12291         Self::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR;
12292 }
12293 impl NvShaderImageFootprintFn {
12294     #[inline]
name() -> &'static ::std::ffi::CStr12295     pub const fn name() -> &'static ::std::ffi::CStr {
12296         unsafe {
12297             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_shader_image_footprint\0")
12298         }
12299     }
12300     pub const SPEC_VERSION: u32 = 2u32;
12301 }
12302 #[derive(Clone)]
12303 pub struct NvShaderImageFootprintFn {}
12304 unsafe impl Send for NvShaderImageFootprintFn {}
12305 unsafe impl Sync for NvShaderImageFootprintFn {}
12306 impl NvShaderImageFootprintFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12307     pub fn load<F>(mut _f: F) -> Self
12308     where
12309         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12310     {
12311         Self {}
12312     }
12313 }
12314 #[doc = "Generated from 'VK_NV_shader_image_footprint'"]
12315 impl StructureType {
12316     pub const PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV: Self = Self(1_000_204_000);
12317 }
12318 impl NvScissorExclusiveFn {
12319     #[inline]
name() -> &'static ::std::ffi::CStr12320     pub const fn name() -> &'static ::std::ffi::CStr {
12321         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_scissor_exclusive\0") }
12322     }
12323     pub const SPEC_VERSION: u32 = 2u32;
12324 }
12325 #[allow(non_camel_case_types)]
12326 pub type PFN_vkCmdSetExclusiveScissorEnableNV = unsafe extern "system" fn(
12327     command_buffer: CommandBuffer,
12328     first_exclusive_scissor: u32,
12329     exclusive_scissor_count: u32,
12330     p_exclusive_scissor_enables: *const Bool32,
12331 );
12332 #[allow(non_camel_case_types)]
12333 pub type PFN_vkCmdSetExclusiveScissorNV = unsafe extern "system" fn(
12334     command_buffer: CommandBuffer,
12335     first_exclusive_scissor: u32,
12336     exclusive_scissor_count: u32,
12337     p_exclusive_scissors: *const Rect2D,
12338 );
12339 #[derive(Clone)]
12340 pub struct NvScissorExclusiveFn {
12341     pub cmd_set_exclusive_scissor_enable_nv: PFN_vkCmdSetExclusiveScissorEnableNV,
12342     pub cmd_set_exclusive_scissor_nv: PFN_vkCmdSetExclusiveScissorNV,
12343 }
12344 unsafe impl Send for NvScissorExclusiveFn {}
12345 unsafe impl Sync for NvScissorExclusiveFn {}
12346 impl NvScissorExclusiveFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12347     pub fn load<F>(mut _f: F) -> Self
12348     where
12349         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12350     {
12351         Self {
12352             cmd_set_exclusive_scissor_enable_nv: unsafe {
12353                 unsafe extern "system" fn cmd_set_exclusive_scissor_enable_nv(
12354                     _command_buffer: CommandBuffer,
12355                     _first_exclusive_scissor: u32,
12356                     _exclusive_scissor_count: u32,
12357                     _p_exclusive_scissor_enables: *const Bool32,
12358                 ) {
12359                     panic!(concat!(
12360                         "Unable to load ",
12361                         stringify!(cmd_set_exclusive_scissor_enable_nv)
12362                     ))
12363                 }
12364                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12365                     b"vkCmdSetExclusiveScissorEnableNV\0",
12366                 );
12367                 let val = _f(cname);
12368                 if val.is_null() {
12369                     cmd_set_exclusive_scissor_enable_nv
12370                 } else {
12371                     ::std::mem::transmute(val)
12372                 }
12373             },
12374             cmd_set_exclusive_scissor_nv: unsafe {
12375                 unsafe extern "system" fn cmd_set_exclusive_scissor_nv(
12376                     _command_buffer: CommandBuffer,
12377                     _first_exclusive_scissor: u32,
12378                     _exclusive_scissor_count: u32,
12379                     _p_exclusive_scissors: *const Rect2D,
12380                 ) {
12381                     panic!(concat!(
12382                         "Unable to load ",
12383                         stringify!(cmd_set_exclusive_scissor_nv)
12384                     ))
12385                 }
12386                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12387                     b"vkCmdSetExclusiveScissorNV\0",
12388                 );
12389                 let val = _f(cname);
12390                 if val.is_null() {
12391                     cmd_set_exclusive_scissor_nv
12392                 } else {
12393                     ::std::mem::transmute(val)
12394                 }
12395             },
12396         }
12397     }
12398 }
12399 #[doc = "Generated from 'VK_NV_scissor_exclusive'"]
12400 impl DynamicState {
12401     pub const EXCLUSIVE_SCISSOR_ENABLE_NV: Self = Self(1_000_205_000);
12402     pub const EXCLUSIVE_SCISSOR_NV: Self = Self(1_000_205_001);
12403 }
12404 #[doc = "Generated from 'VK_NV_scissor_exclusive'"]
12405 impl StructureType {
12406     pub const PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV: Self = Self(1_000_205_000);
12407     pub const PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV: Self = Self(1_000_205_002);
12408 }
12409 impl NvDeviceDiagnosticCheckpointsFn {
12410     #[inline]
name() -> &'static ::std::ffi::CStr12411     pub const fn name() -> &'static ::std::ffi::CStr {
12412         unsafe {
12413             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12414                 b"VK_NV_device_diagnostic_checkpoints\0",
12415             )
12416         }
12417     }
12418     pub const SPEC_VERSION: u32 = 2u32;
12419 }
12420 #[allow(non_camel_case_types)]
12421 pub type PFN_vkCmdSetCheckpointNV =
12422     unsafe extern "system" fn(command_buffer: CommandBuffer, p_checkpoint_marker: *const c_void);
12423 #[allow(non_camel_case_types)]
12424 pub type PFN_vkGetQueueCheckpointDataNV = unsafe extern "system" fn(
12425     queue: Queue,
12426     p_checkpoint_data_count: *mut u32,
12427     p_checkpoint_data: *mut CheckpointDataNV,
12428 );
12429 #[derive(Clone)]
12430 pub struct NvDeviceDiagnosticCheckpointsFn {
12431     pub cmd_set_checkpoint_nv: PFN_vkCmdSetCheckpointNV,
12432     pub get_queue_checkpoint_data_nv: PFN_vkGetQueueCheckpointDataNV,
12433 }
12434 unsafe impl Send for NvDeviceDiagnosticCheckpointsFn {}
12435 unsafe impl Sync for NvDeviceDiagnosticCheckpointsFn {}
12436 impl NvDeviceDiagnosticCheckpointsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12437     pub fn load<F>(mut _f: F) -> Self
12438     where
12439         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12440     {
12441         Self {
12442             cmd_set_checkpoint_nv: unsafe {
12443                 unsafe extern "system" fn cmd_set_checkpoint_nv(
12444                     _command_buffer: CommandBuffer,
12445                     _p_checkpoint_marker: *const c_void,
12446                 ) {
12447                     panic!(concat!(
12448                         "Unable to load ",
12449                         stringify!(cmd_set_checkpoint_nv)
12450                     ))
12451                 }
12452                 let cname =
12453                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCheckpointNV\0");
12454                 let val = _f(cname);
12455                 if val.is_null() {
12456                     cmd_set_checkpoint_nv
12457                 } else {
12458                     ::std::mem::transmute(val)
12459                 }
12460             },
12461             get_queue_checkpoint_data_nv: unsafe {
12462                 unsafe extern "system" fn get_queue_checkpoint_data_nv(
12463                     _queue: Queue,
12464                     _p_checkpoint_data_count: *mut u32,
12465                     _p_checkpoint_data: *mut CheckpointDataNV,
12466                 ) {
12467                     panic!(concat!(
12468                         "Unable to load ",
12469                         stringify!(get_queue_checkpoint_data_nv)
12470                     ))
12471                 }
12472                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12473                     b"vkGetQueueCheckpointDataNV\0",
12474                 );
12475                 let val = _f(cname);
12476                 if val.is_null() {
12477                     get_queue_checkpoint_data_nv
12478                 } else {
12479                     ::std::mem::transmute(val)
12480                 }
12481             },
12482         }
12483     }
12484 }
12485 #[doc = "Generated from 'VK_NV_device_diagnostic_checkpoints'"]
12486 impl StructureType {
12487     pub const CHECKPOINT_DATA_NV: Self = Self(1_000_206_000);
12488     pub const QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV: Self = Self(1_000_206_001);
12489 }
12490 impl KhrTimelineSemaphoreFn {
12491     #[inline]
name() -> &'static ::std::ffi::CStr12492     pub const fn name() -> &'static ::std::ffi::CStr {
12493         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_timeline_semaphore\0") }
12494     }
12495     pub const SPEC_VERSION: u32 = 2u32;
12496 }
12497 #[allow(non_camel_case_types)]
12498 pub type PFN_vkGetSemaphoreCounterValue =
12499     unsafe extern "system" fn(device: Device, semaphore: Semaphore, p_value: *mut u64) -> Result;
12500 #[allow(non_camel_case_types)]
12501 pub type PFN_vkWaitSemaphores = unsafe extern "system" fn(
12502     device: Device,
12503     p_wait_info: *const SemaphoreWaitInfo,
12504     timeout: u64,
12505 ) -> Result;
12506 #[allow(non_camel_case_types)]
12507 pub type PFN_vkSignalSemaphore =
12508     unsafe extern "system" fn(device: Device, p_signal_info: *const SemaphoreSignalInfo) -> Result;
12509 #[derive(Clone)]
12510 pub struct KhrTimelineSemaphoreFn {
12511     pub get_semaphore_counter_value_khr: PFN_vkGetSemaphoreCounterValue,
12512     pub wait_semaphores_khr: PFN_vkWaitSemaphores,
12513     pub signal_semaphore_khr: PFN_vkSignalSemaphore,
12514 }
12515 unsafe impl Send for KhrTimelineSemaphoreFn {}
12516 unsafe impl Sync for KhrTimelineSemaphoreFn {}
12517 impl KhrTimelineSemaphoreFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12518     pub fn load<F>(mut _f: F) -> Self
12519     where
12520         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12521     {
12522         Self {
12523             get_semaphore_counter_value_khr: unsafe {
12524                 unsafe extern "system" fn get_semaphore_counter_value_khr(
12525                     _device: Device,
12526                     _semaphore: Semaphore,
12527                     _p_value: *mut u64,
12528                 ) -> Result {
12529                     panic!(concat!(
12530                         "Unable to load ",
12531                         stringify!(get_semaphore_counter_value_khr)
12532                     ))
12533                 }
12534                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12535                     b"vkGetSemaphoreCounterValueKHR\0",
12536                 );
12537                 let val = _f(cname);
12538                 if val.is_null() {
12539                     get_semaphore_counter_value_khr
12540                 } else {
12541                     ::std::mem::transmute(val)
12542                 }
12543             },
12544             wait_semaphores_khr: unsafe {
12545                 unsafe extern "system" fn wait_semaphores_khr(
12546                     _device: Device,
12547                     _p_wait_info: *const SemaphoreWaitInfo,
12548                     _timeout: u64,
12549                 ) -> Result {
12550                     panic!(concat!("Unable to load ", stringify!(wait_semaphores_khr)))
12551                 }
12552                 let cname =
12553                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkWaitSemaphoresKHR\0");
12554                 let val = _f(cname);
12555                 if val.is_null() {
12556                     wait_semaphores_khr
12557                 } else {
12558                     ::std::mem::transmute(val)
12559                 }
12560             },
12561             signal_semaphore_khr: unsafe {
12562                 unsafe extern "system" fn signal_semaphore_khr(
12563                     _device: Device,
12564                     _p_signal_info: *const SemaphoreSignalInfo,
12565                 ) -> Result {
12566                     panic!(concat!("Unable to load ", stringify!(signal_semaphore_khr)))
12567                 }
12568                 let cname =
12569                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkSignalSemaphoreKHR\0");
12570                 let val = _f(cname);
12571                 if val.is_null() {
12572                     signal_semaphore_khr
12573                 } else {
12574                     ::std::mem::transmute(val)
12575                 }
12576             },
12577         }
12578     }
12579 }
12580 #[doc = "Generated from 'VK_KHR_timeline_semaphore'"]
12581 impl SemaphoreType {
12582     pub const BINARY_KHR: Self = Self::BINARY;
12583     pub const TIMELINE_KHR: Self = Self::TIMELINE;
12584 }
12585 #[doc = "Generated from 'VK_KHR_timeline_semaphore'"]
12586 impl SemaphoreWaitFlags {
12587     pub const ANY_KHR: Self = Self::ANY;
12588 }
12589 #[doc = "Generated from 'VK_KHR_timeline_semaphore'"]
12590 impl StructureType {
12591     pub const PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR: Self =
12592         Self::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES;
12593     pub const PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR: Self =
12594         Self::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES;
12595     pub const SEMAPHORE_TYPE_CREATE_INFO_KHR: Self = Self::SEMAPHORE_TYPE_CREATE_INFO;
12596     pub const TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR: Self = Self::TIMELINE_SEMAPHORE_SUBMIT_INFO;
12597     pub const SEMAPHORE_WAIT_INFO_KHR: Self = Self::SEMAPHORE_WAIT_INFO;
12598     pub const SEMAPHORE_SIGNAL_INFO_KHR: Self = Self::SEMAPHORE_SIGNAL_INFO;
12599 }
12600 impl KhrExtension209Fn {
12601     #[inline]
name() -> &'static ::std::ffi::CStr12602     pub const fn name() -> &'static ::std::ffi::CStr {
12603         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_209\0") }
12604     }
12605     pub const SPEC_VERSION: u32 = 0u32;
12606 }
12607 #[derive(Clone)]
12608 pub struct KhrExtension209Fn {}
12609 unsafe impl Send for KhrExtension209Fn {}
12610 unsafe impl Sync for KhrExtension209Fn {}
12611 impl KhrExtension209Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12612     pub fn load<F>(mut _f: F) -> Self
12613     where
12614         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12615     {
12616         Self {}
12617     }
12618 }
12619 impl IntelShaderIntegerFunctions2Fn {
12620     #[inline]
name() -> &'static ::std::ffi::CStr12621     pub const fn name() -> &'static ::std::ffi::CStr {
12622         unsafe {
12623             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_INTEL_shader_integer_functions2\0")
12624         }
12625     }
12626     pub const SPEC_VERSION: u32 = 1u32;
12627 }
12628 #[derive(Clone)]
12629 pub struct IntelShaderIntegerFunctions2Fn {}
12630 unsafe impl Send for IntelShaderIntegerFunctions2Fn {}
12631 unsafe impl Sync for IntelShaderIntegerFunctions2Fn {}
12632 impl IntelShaderIntegerFunctions2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12633     pub fn load<F>(mut _f: F) -> Self
12634     where
12635         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12636     {
12637         Self {}
12638     }
12639 }
12640 #[doc = "Generated from 'VK_INTEL_shader_integer_functions2'"]
12641 impl StructureType {
12642     pub const PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL: Self = Self(1_000_209_000);
12643 }
12644 impl IntelPerformanceQueryFn {
12645     #[inline]
name() -> &'static ::std::ffi::CStr12646     pub const fn name() -> &'static ::std::ffi::CStr {
12647         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_INTEL_performance_query\0") }
12648     }
12649     pub const SPEC_VERSION: u32 = 2u32;
12650 }
12651 #[allow(non_camel_case_types)]
12652 pub type PFN_vkInitializePerformanceApiINTEL = unsafe extern "system" fn(
12653     device: Device,
12654     p_initialize_info: *const InitializePerformanceApiInfoINTEL,
12655 ) -> Result;
12656 #[allow(non_camel_case_types)]
12657 pub type PFN_vkUninitializePerformanceApiINTEL = unsafe extern "system" fn(device: Device);
12658 #[allow(non_camel_case_types)]
12659 pub type PFN_vkCmdSetPerformanceMarkerINTEL = unsafe extern "system" fn(
12660     command_buffer: CommandBuffer,
12661     p_marker_info: *const PerformanceMarkerInfoINTEL,
12662 ) -> Result;
12663 #[allow(non_camel_case_types)]
12664 pub type PFN_vkCmdSetPerformanceStreamMarkerINTEL = unsafe extern "system" fn(
12665     command_buffer: CommandBuffer,
12666     p_marker_info: *const PerformanceStreamMarkerInfoINTEL,
12667 ) -> Result;
12668 #[allow(non_camel_case_types)]
12669 pub type PFN_vkCmdSetPerformanceOverrideINTEL = unsafe extern "system" fn(
12670     command_buffer: CommandBuffer,
12671     p_override_info: *const PerformanceOverrideInfoINTEL,
12672 ) -> Result;
12673 #[allow(non_camel_case_types)]
12674 pub type PFN_vkAcquirePerformanceConfigurationINTEL = unsafe extern "system" fn(
12675     device: Device,
12676     p_acquire_info: *const PerformanceConfigurationAcquireInfoINTEL,
12677     p_configuration: *mut PerformanceConfigurationINTEL,
12678 ) -> Result;
12679 #[allow(non_camel_case_types)]
12680 pub type PFN_vkReleasePerformanceConfigurationINTEL = unsafe extern "system" fn(
12681     device: Device,
12682     configuration: PerformanceConfigurationINTEL,
12683 ) -> Result;
12684 #[allow(non_camel_case_types)]
12685 pub type PFN_vkQueueSetPerformanceConfigurationINTEL =
12686     unsafe extern "system" fn(queue: Queue, configuration: PerformanceConfigurationINTEL) -> Result;
12687 #[allow(non_camel_case_types)]
12688 pub type PFN_vkGetPerformanceParameterINTEL = unsafe extern "system" fn(
12689     device: Device,
12690     parameter: PerformanceParameterTypeINTEL,
12691     p_value: *mut PerformanceValueINTEL,
12692 ) -> Result;
12693 #[derive(Clone)]
12694 pub struct IntelPerformanceQueryFn {
12695     pub initialize_performance_api_intel: PFN_vkInitializePerformanceApiINTEL,
12696     pub uninitialize_performance_api_intel: PFN_vkUninitializePerformanceApiINTEL,
12697     pub cmd_set_performance_marker_intel: PFN_vkCmdSetPerformanceMarkerINTEL,
12698     pub cmd_set_performance_stream_marker_intel: PFN_vkCmdSetPerformanceStreamMarkerINTEL,
12699     pub cmd_set_performance_override_intel: PFN_vkCmdSetPerformanceOverrideINTEL,
12700     pub acquire_performance_configuration_intel: PFN_vkAcquirePerformanceConfigurationINTEL,
12701     pub release_performance_configuration_intel: PFN_vkReleasePerformanceConfigurationINTEL,
12702     pub queue_set_performance_configuration_intel: PFN_vkQueueSetPerformanceConfigurationINTEL,
12703     pub get_performance_parameter_intel: PFN_vkGetPerformanceParameterINTEL,
12704 }
12705 unsafe impl Send for IntelPerformanceQueryFn {}
12706 unsafe impl Sync for IntelPerformanceQueryFn {}
12707 impl IntelPerformanceQueryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12708     pub fn load<F>(mut _f: F) -> Self
12709     where
12710         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12711     {
12712         Self {
12713             initialize_performance_api_intel: unsafe {
12714                 unsafe extern "system" fn initialize_performance_api_intel(
12715                     _device: Device,
12716                     _p_initialize_info: *const InitializePerformanceApiInfoINTEL,
12717                 ) -> Result {
12718                     panic!(concat!(
12719                         "Unable to load ",
12720                         stringify!(initialize_performance_api_intel)
12721                     ))
12722                 }
12723                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12724                     b"vkInitializePerformanceApiINTEL\0",
12725                 );
12726                 let val = _f(cname);
12727                 if val.is_null() {
12728                     initialize_performance_api_intel
12729                 } else {
12730                     ::std::mem::transmute(val)
12731                 }
12732             },
12733             uninitialize_performance_api_intel: unsafe {
12734                 unsafe extern "system" fn uninitialize_performance_api_intel(_device: Device) {
12735                     panic!(concat!(
12736                         "Unable to load ",
12737                         stringify!(uninitialize_performance_api_intel)
12738                     ))
12739                 }
12740                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12741                     b"vkUninitializePerformanceApiINTEL\0",
12742                 );
12743                 let val = _f(cname);
12744                 if val.is_null() {
12745                     uninitialize_performance_api_intel
12746                 } else {
12747                     ::std::mem::transmute(val)
12748                 }
12749             },
12750             cmd_set_performance_marker_intel: unsafe {
12751                 unsafe extern "system" fn cmd_set_performance_marker_intel(
12752                     _command_buffer: CommandBuffer,
12753                     _p_marker_info: *const PerformanceMarkerInfoINTEL,
12754                 ) -> Result {
12755                     panic!(concat!(
12756                         "Unable to load ",
12757                         stringify!(cmd_set_performance_marker_intel)
12758                     ))
12759                 }
12760                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12761                     b"vkCmdSetPerformanceMarkerINTEL\0",
12762                 );
12763                 let val = _f(cname);
12764                 if val.is_null() {
12765                     cmd_set_performance_marker_intel
12766                 } else {
12767                     ::std::mem::transmute(val)
12768                 }
12769             },
12770             cmd_set_performance_stream_marker_intel: unsafe {
12771                 unsafe extern "system" fn cmd_set_performance_stream_marker_intel(
12772                     _command_buffer: CommandBuffer,
12773                     _p_marker_info: *const PerformanceStreamMarkerInfoINTEL,
12774                 ) -> Result {
12775                     panic!(concat!(
12776                         "Unable to load ",
12777                         stringify!(cmd_set_performance_stream_marker_intel)
12778                     ))
12779                 }
12780                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12781                     b"vkCmdSetPerformanceStreamMarkerINTEL\0",
12782                 );
12783                 let val = _f(cname);
12784                 if val.is_null() {
12785                     cmd_set_performance_stream_marker_intel
12786                 } else {
12787                     ::std::mem::transmute(val)
12788                 }
12789             },
12790             cmd_set_performance_override_intel: unsafe {
12791                 unsafe extern "system" fn cmd_set_performance_override_intel(
12792                     _command_buffer: CommandBuffer,
12793                     _p_override_info: *const PerformanceOverrideInfoINTEL,
12794                 ) -> Result {
12795                     panic!(concat!(
12796                         "Unable to load ",
12797                         stringify!(cmd_set_performance_override_intel)
12798                     ))
12799                 }
12800                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12801                     b"vkCmdSetPerformanceOverrideINTEL\0",
12802                 );
12803                 let val = _f(cname);
12804                 if val.is_null() {
12805                     cmd_set_performance_override_intel
12806                 } else {
12807                     ::std::mem::transmute(val)
12808                 }
12809             },
12810             acquire_performance_configuration_intel: unsafe {
12811                 unsafe extern "system" fn acquire_performance_configuration_intel(
12812                     _device: Device,
12813                     _p_acquire_info: *const PerformanceConfigurationAcquireInfoINTEL,
12814                     _p_configuration: *mut PerformanceConfigurationINTEL,
12815                 ) -> Result {
12816                     panic!(concat!(
12817                         "Unable to load ",
12818                         stringify!(acquire_performance_configuration_intel)
12819                     ))
12820                 }
12821                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12822                     b"vkAcquirePerformanceConfigurationINTEL\0",
12823                 );
12824                 let val = _f(cname);
12825                 if val.is_null() {
12826                     acquire_performance_configuration_intel
12827                 } else {
12828                     ::std::mem::transmute(val)
12829                 }
12830             },
12831             release_performance_configuration_intel: unsafe {
12832                 unsafe extern "system" fn release_performance_configuration_intel(
12833                     _device: Device,
12834                     _configuration: PerformanceConfigurationINTEL,
12835                 ) -> Result {
12836                     panic!(concat!(
12837                         "Unable to load ",
12838                         stringify!(release_performance_configuration_intel)
12839                     ))
12840                 }
12841                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12842                     b"vkReleasePerformanceConfigurationINTEL\0",
12843                 );
12844                 let val = _f(cname);
12845                 if val.is_null() {
12846                     release_performance_configuration_intel
12847                 } else {
12848                     ::std::mem::transmute(val)
12849                 }
12850             },
12851             queue_set_performance_configuration_intel: unsafe {
12852                 unsafe extern "system" fn queue_set_performance_configuration_intel(
12853                     _queue: Queue,
12854                     _configuration: PerformanceConfigurationINTEL,
12855                 ) -> Result {
12856                     panic!(concat!(
12857                         "Unable to load ",
12858                         stringify!(queue_set_performance_configuration_intel)
12859                     ))
12860                 }
12861                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12862                     b"vkQueueSetPerformanceConfigurationINTEL\0",
12863                 );
12864                 let val = _f(cname);
12865                 if val.is_null() {
12866                     queue_set_performance_configuration_intel
12867                 } else {
12868                     ::std::mem::transmute(val)
12869                 }
12870             },
12871             get_performance_parameter_intel: unsafe {
12872                 unsafe extern "system" fn get_performance_parameter_intel(
12873                     _device: Device,
12874                     _parameter: PerformanceParameterTypeINTEL,
12875                     _p_value: *mut PerformanceValueINTEL,
12876                 ) -> Result {
12877                     panic!(concat!(
12878                         "Unable to load ",
12879                         stringify!(get_performance_parameter_intel)
12880                     ))
12881                 }
12882                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12883                     b"vkGetPerformanceParameterINTEL\0",
12884                 );
12885                 let val = _f(cname);
12886                 if val.is_null() {
12887                     get_performance_parameter_intel
12888                 } else {
12889                     ::std::mem::transmute(val)
12890                 }
12891             },
12892         }
12893     }
12894 }
12895 #[doc = "Generated from 'VK_INTEL_performance_query'"]
12896 impl ObjectType {
12897     pub const PERFORMANCE_CONFIGURATION_INTEL: Self = Self(1_000_210_000);
12898 }
12899 #[doc = "Generated from 'VK_INTEL_performance_query'"]
12900 impl QueryType {
12901     pub const PERFORMANCE_QUERY_INTEL: Self = Self(1_000_210_000);
12902 }
12903 #[doc = "Generated from 'VK_INTEL_performance_query'"]
12904 impl StructureType {
12905     pub const QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL: Self = Self(1_000_210_000);
12906     pub const INITIALIZE_PERFORMANCE_API_INFO_INTEL: Self = Self(1_000_210_001);
12907     pub const PERFORMANCE_MARKER_INFO_INTEL: Self = Self(1_000_210_002);
12908     pub const PERFORMANCE_STREAM_MARKER_INFO_INTEL: Self = Self(1_000_210_003);
12909     pub const PERFORMANCE_OVERRIDE_INFO_INTEL: Self = Self(1_000_210_004);
12910     pub const PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL: Self = Self(1_000_210_005);
12911 }
12912 impl KhrVulkanMemoryModelFn {
12913     #[inline]
name() -> &'static ::std::ffi::CStr12914     pub const fn name() -> &'static ::std::ffi::CStr {
12915         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_vulkan_memory_model\0") }
12916     }
12917     pub const SPEC_VERSION: u32 = 3u32;
12918 }
12919 #[derive(Clone)]
12920 pub struct KhrVulkanMemoryModelFn {}
12921 unsafe impl Send for KhrVulkanMemoryModelFn {}
12922 unsafe impl Sync for KhrVulkanMemoryModelFn {}
12923 impl KhrVulkanMemoryModelFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12924     pub fn load<F>(mut _f: F) -> Self
12925     where
12926         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12927     {
12928         Self {}
12929     }
12930 }
12931 #[doc = "Generated from 'VK_KHR_vulkan_memory_model'"]
12932 impl StructureType {
12933     pub const PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR: Self =
12934         Self::PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES;
12935 }
12936 impl ExtPciBusInfoFn {
12937     #[inline]
name() -> &'static ::std::ffi::CStr12938     pub const fn name() -> &'static ::std::ffi::CStr {
12939         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pci_bus_info\0") }
12940     }
12941     pub const SPEC_VERSION: u32 = 2u32;
12942 }
12943 #[derive(Clone)]
12944 pub struct ExtPciBusInfoFn {}
12945 unsafe impl Send for ExtPciBusInfoFn {}
12946 unsafe impl Sync for ExtPciBusInfoFn {}
12947 impl ExtPciBusInfoFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12948     pub fn load<F>(mut _f: F) -> Self
12949     where
12950         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12951     {
12952         Self {}
12953     }
12954 }
12955 #[doc = "Generated from 'VK_EXT_pci_bus_info'"]
12956 impl StructureType {
12957     pub const PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT: Self = Self(1_000_212_000);
12958 }
12959 impl AmdDisplayNativeHdrFn {
12960     #[inline]
name() -> &'static ::std::ffi::CStr12961     pub const fn name() -> &'static ::std::ffi::CStr {
12962         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_display_native_hdr\0") }
12963     }
12964     pub const SPEC_VERSION: u32 = 1u32;
12965 }
12966 #[allow(non_camel_case_types)]
12967 pub type PFN_vkSetLocalDimmingAMD = unsafe extern "system" fn(
12968     device: Device,
12969     swap_chain: SwapchainKHR,
12970     local_dimming_enable: Bool32,
12971 );
12972 #[derive(Clone)]
12973 pub struct AmdDisplayNativeHdrFn {
12974     pub set_local_dimming_amd: PFN_vkSetLocalDimmingAMD,
12975 }
12976 unsafe impl Send for AmdDisplayNativeHdrFn {}
12977 unsafe impl Sync for AmdDisplayNativeHdrFn {}
12978 impl AmdDisplayNativeHdrFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12979     pub fn load<F>(mut _f: F) -> Self
12980     where
12981         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12982     {
12983         Self {
12984             set_local_dimming_amd: unsafe {
12985                 unsafe extern "system" fn set_local_dimming_amd(
12986                     _device: Device,
12987                     _swap_chain: SwapchainKHR,
12988                     _local_dimming_enable: Bool32,
12989                 ) {
12990                     panic!(concat!(
12991                         "Unable to load ",
12992                         stringify!(set_local_dimming_amd)
12993                     ))
12994                 }
12995                 let cname =
12996                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkSetLocalDimmingAMD\0");
12997                 let val = _f(cname);
12998                 if val.is_null() {
12999                     set_local_dimming_amd
13000                 } else {
13001                     ::std::mem::transmute(val)
13002                 }
13003             },
13004         }
13005     }
13006 }
13007 #[doc = "Generated from 'VK_AMD_display_native_hdr'"]
13008 impl ColorSpaceKHR {
13009     pub const DISPLAY_NATIVE_AMD: Self = Self(1_000_213_000);
13010 }
13011 #[doc = "Generated from 'VK_AMD_display_native_hdr'"]
13012 impl StructureType {
13013     pub const DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD: Self = Self(1_000_213_000);
13014     pub const SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD: Self = Self(1_000_213_001);
13015 }
13016 impl FuchsiaImagepipeSurfaceFn {
13017     #[inline]
name() -> &'static ::std::ffi::CStr13018     pub const fn name() -> &'static ::std::ffi::CStr {
13019         unsafe {
13020             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_FUCHSIA_imagepipe_surface\0")
13021         }
13022     }
13023     pub const SPEC_VERSION: u32 = 1u32;
13024 }
13025 #[allow(non_camel_case_types)]
13026 pub type PFN_vkCreateImagePipeSurfaceFUCHSIA = unsafe extern "system" fn(
13027     instance: Instance,
13028     p_create_info: *const ImagePipeSurfaceCreateInfoFUCHSIA,
13029     p_allocator: *const AllocationCallbacks,
13030     p_surface: *mut SurfaceKHR,
13031 ) -> Result;
13032 #[derive(Clone)]
13033 pub struct FuchsiaImagepipeSurfaceFn {
13034     pub create_image_pipe_surface_fuchsia: PFN_vkCreateImagePipeSurfaceFUCHSIA,
13035 }
13036 unsafe impl Send for FuchsiaImagepipeSurfaceFn {}
13037 unsafe impl Sync for FuchsiaImagepipeSurfaceFn {}
13038 impl FuchsiaImagepipeSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13039     pub fn load<F>(mut _f: F) -> Self
13040     where
13041         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13042     {
13043         Self {
13044             create_image_pipe_surface_fuchsia: unsafe {
13045                 unsafe extern "system" fn create_image_pipe_surface_fuchsia(
13046                     _instance: Instance,
13047                     _p_create_info: *const ImagePipeSurfaceCreateInfoFUCHSIA,
13048                     _p_allocator: *const AllocationCallbacks,
13049                     _p_surface: *mut SurfaceKHR,
13050                 ) -> Result {
13051                     panic!(concat!(
13052                         "Unable to load ",
13053                         stringify!(create_image_pipe_surface_fuchsia)
13054                     ))
13055                 }
13056                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13057                     b"vkCreateImagePipeSurfaceFUCHSIA\0",
13058                 );
13059                 let val = _f(cname);
13060                 if val.is_null() {
13061                     create_image_pipe_surface_fuchsia
13062                 } else {
13063                     ::std::mem::transmute(val)
13064                 }
13065             },
13066         }
13067     }
13068 }
13069 #[doc = "Generated from 'VK_FUCHSIA_imagepipe_surface'"]
13070 impl StructureType {
13071     pub const IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA: Self = Self(1_000_214_000);
13072 }
13073 impl KhrShaderTerminateInvocationFn {
13074     #[inline]
name() -> &'static ::std::ffi::CStr13075     pub const fn name() -> &'static ::std::ffi::CStr {
13076         unsafe {
13077             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_terminate_invocation\0")
13078         }
13079     }
13080     pub const SPEC_VERSION: u32 = 1u32;
13081 }
13082 #[derive(Clone)]
13083 pub struct KhrShaderTerminateInvocationFn {}
13084 unsafe impl Send for KhrShaderTerminateInvocationFn {}
13085 unsafe impl Sync for KhrShaderTerminateInvocationFn {}
13086 impl KhrShaderTerminateInvocationFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13087     pub fn load<F>(mut _f: F) -> Self
13088     where
13089         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13090     {
13091         Self {}
13092     }
13093 }
13094 #[doc = "Generated from 'VK_KHR_shader_terminate_invocation'"]
13095 impl StructureType {
13096     pub const PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR: Self =
13097         Self::PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES;
13098 }
13099 impl GoogleExtension217Fn {
13100     #[inline]
name() -> &'static ::std::ffi::CStr13101     pub const fn name() -> &'static ::std::ffi::CStr {
13102         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_extension_217\0") }
13103     }
13104     pub const SPEC_VERSION: u32 = 0u32;
13105 }
13106 #[derive(Clone)]
13107 pub struct GoogleExtension217Fn {}
13108 unsafe impl Send for GoogleExtension217Fn {}
13109 unsafe impl Sync for GoogleExtension217Fn {}
13110 impl GoogleExtension217Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13111     pub fn load<F>(mut _f: F) -> Self
13112     where
13113         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13114     {
13115         Self {}
13116     }
13117 }
13118 impl ExtMetalSurfaceFn {
13119     #[inline]
name() -> &'static ::std::ffi::CStr13120     pub const fn name() -> &'static ::std::ffi::CStr {
13121         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_metal_surface\0") }
13122     }
13123     pub const SPEC_VERSION: u32 = 1u32;
13124 }
13125 #[allow(non_camel_case_types)]
13126 pub type PFN_vkCreateMetalSurfaceEXT = unsafe extern "system" fn(
13127     instance: Instance,
13128     p_create_info: *const MetalSurfaceCreateInfoEXT,
13129     p_allocator: *const AllocationCallbacks,
13130     p_surface: *mut SurfaceKHR,
13131 ) -> Result;
13132 #[derive(Clone)]
13133 pub struct ExtMetalSurfaceFn {
13134     pub create_metal_surface_ext: PFN_vkCreateMetalSurfaceEXT,
13135 }
13136 unsafe impl Send for ExtMetalSurfaceFn {}
13137 unsafe impl Sync for ExtMetalSurfaceFn {}
13138 impl ExtMetalSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13139     pub fn load<F>(mut _f: F) -> Self
13140     where
13141         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13142     {
13143         Self {
13144             create_metal_surface_ext: unsafe {
13145                 unsafe extern "system" fn create_metal_surface_ext(
13146                     _instance: Instance,
13147                     _p_create_info: *const MetalSurfaceCreateInfoEXT,
13148                     _p_allocator: *const AllocationCallbacks,
13149                     _p_surface: *mut SurfaceKHR,
13150                 ) -> Result {
13151                     panic!(concat!(
13152                         "Unable to load ",
13153                         stringify!(create_metal_surface_ext)
13154                     ))
13155                 }
13156                 let cname =
13157                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateMetalSurfaceEXT\0");
13158                 let val = _f(cname);
13159                 if val.is_null() {
13160                     create_metal_surface_ext
13161                 } else {
13162                     ::std::mem::transmute(val)
13163                 }
13164             },
13165         }
13166     }
13167 }
13168 #[doc = "Generated from 'VK_EXT_metal_surface'"]
13169 impl StructureType {
13170     pub const METAL_SURFACE_CREATE_INFO_EXT: Self = Self(1_000_217_000);
13171 }
13172 impl ExtFragmentDensityMapFn {
13173     #[inline]
name() -> &'static ::std::ffi::CStr13174     pub const fn name() -> &'static ::std::ffi::CStr {
13175         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_fragment_density_map\0") }
13176     }
13177     pub const SPEC_VERSION: u32 = 2u32;
13178 }
13179 #[derive(Clone)]
13180 pub struct ExtFragmentDensityMapFn {}
13181 unsafe impl Send for ExtFragmentDensityMapFn {}
13182 unsafe impl Sync for ExtFragmentDensityMapFn {}
13183 impl ExtFragmentDensityMapFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13184     pub fn load<F>(mut _f: F) -> Self
13185     where
13186         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13187     {
13188         Self {}
13189     }
13190 }
13191 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
13192 impl AccessFlags {
13193     pub const FRAGMENT_DENSITY_MAP_READ_EXT: Self = Self(0b1_0000_0000_0000_0000_0000_0000);
13194 }
13195 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
13196 impl FormatFeatureFlags {
13197     pub const FRAGMENT_DENSITY_MAP_EXT: Self = Self(0b1_0000_0000_0000_0000_0000_0000);
13198 }
13199 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
13200 impl FormatFeatureFlags2 {
13201     pub const FRAGMENT_DENSITY_MAP_EXT: Self = Self(0b1_0000_0000_0000_0000_0000_0000);
13202 }
13203 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
13204 impl ImageCreateFlags {
13205     pub const SUBSAMPLED_EXT: Self = Self(0b100_0000_0000_0000);
13206 }
13207 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
13208 impl ImageLayout {
13209     pub const FRAGMENT_DENSITY_MAP_OPTIMAL_EXT: Self = Self(1_000_218_000);
13210 }
13211 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
13212 impl ImageUsageFlags {
13213     pub const FRAGMENT_DENSITY_MAP_EXT: Self = Self(0b10_0000_0000);
13214 }
13215 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
13216 impl ImageViewCreateFlags {
13217     pub const FRAGMENT_DENSITY_MAP_DYNAMIC_EXT: Self = Self(0b1);
13218 }
13219 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
13220 impl PipelineStageFlags {
13221     pub const FRAGMENT_DENSITY_PROCESS_EXT: Self = Self(0b1000_0000_0000_0000_0000_0000);
13222 }
13223 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
13224 impl SamplerCreateFlags {
13225     pub const SUBSAMPLED_EXT: Self = Self(0b1);
13226     pub const SUBSAMPLED_COARSE_RECONSTRUCTION_EXT: Self = Self(0b10);
13227 }
13228 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
13229 impl StructureType {
13230     pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: Self = Self(1_000_218_000);
13231     pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: Self = Self(1_000_218_001);
13232     pub const RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: Self = Self(1_000_218_002);
13233 }
13234 impl ExtExtension220Fn {
13235     #[inline]
name() -> &'static ::std::ffi::CStr13236     pub const fn name() -> &'static ::std::ffi::CStr {
13237         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_220\0") }
13238     }
13239     pub const SPEC_VERSION: u32 = 0u32;
13240 }
13241 #[derive(Clone)]
13242 pub struct ExtExtension220Fn {}
13243 unsafe impl Send for ExtExtension220Fn {}
13244 unsafe impl Sync for ExtExtension220Fn {}
13245 impl ExtExtension220Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13246     pub fn load<F>(mut _f: F) -> Self
13247     where
13248         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13249     {
13250         Self {}
13251     }
13252 }
13253 impl KhrExtension221Fn {
13254     #[inline]
name() -> &'static ::std::ffi::CStr13255     pub const fn name() -> &'static ::std::ffi::CStr {
13256         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_221\0") }
13257     }
13258     pub const SPEC_VERSION: u32 = 0u32;
13259 }
13260 #[derive(Clone)]
13261 pub struct KhrExtension221Fn {}
13262 unsafe impl Send for KhrExtension221Fn {}
13263 unsafe impl Sync for KhrExtension221Fn {}
13264 impl KhrExtension221Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13265     pub fn load<F>(mut _f: F) -> Self
13266     where
13267         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13268     {
13269         Self {}
13270     }
13271 }
13272 #[doc = "Generated from 'VK_KHR_extension_221'"]
13273 impl RenderPassCreateFlags {
13274     pub const RESERVED_0_KHR: Self = Self(0b1);
13275 }
13276 impl ExtScalarBlockLayoutFn {
13277     #[inline]
name() -> &'static ::std::ffi::CStr13278     pub const fn name() -> &'static ::std::ffi::CStr {
13279         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_scalar_block_layout\0") }
13280     }
13281     pub const SPEC_VERSION: u32 = 1u32;
13282 }
13283 #[derive(Clone)]
13284 pub struct ExtScalarBlockLayoutFn {}
13285 unsafe impl Send for ExtScalarBlockLayoutFn {}
13286 unsafe impl Sync for ExtScalarBlockLayoutFn {}
13287 impl ExtScalarBlockLayoutFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13288     pub fn load<F>(mut _f: F) -> Self
13289     where
13290         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13291     {
13292         Self {}
13293     }
13294 }
13295 #[doc = "Generated from 'VK_EXT_scalar_block_layout'"]
13296 impl StructureType {
13297     pub const PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT: Self =
13298         Self::PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES;
13299 }
13300 impl ExtExtension223Fn {
13301     #[inline]
name() -> &'static ::std::ffi::CStr13302     pub const fn name() -> &'static ::std::ffi::CStr {
13303         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_223\0") }
13304     }
13305     pub const SPEC_VERSION: u32 = 0u32;
13306 }
13307 #[derive(Clone)]
13308 pub struct ExtExtension223Fn {}
13309 unsafe impl Send for ExtExtension223Fn {}
13310 unsafe impl Sync for ExtExtension223Fn {}
13311 impl ExtExtension223Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13312     pub fn load<F>(mut _f: F) -> Self
13313     where
13314         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13315     {
13316         Self {}
13317     }
13318 }
13319 impl GoogleHlslFunctionality1Fn {
13320     #[inline]
name() -> &'static ::std::ffi::CStr13321     pub const fn name() -> &'static ::std::ffi::CStr {
13322         unsafe {
13323             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_hlsl_functionality1\0")
13324         }
13325     }
13326     pub const SPEC_VERSION: u32 = 1u32;
13327 }
13328 #[derive(Clone)]
13329 pub struct GoogleHlslFunctionality1Fn {}
13330 unsafe impl Send for GoogleHlslFunctionality1Fn {}
13331 unsafe impl Sync for GoogleHlslFunctionality1Fn {}
13332 impl GoogleHlslFunctionality1Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13333     pub fn load<F>(mut _f: F) -> Self
13334     where
13335         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13336     {
13337         Self {}
13338     }
13339 }
13340 impl GoogleDecorateStringFn {
13341     #[inline]
name() -> &'static ::std::ffi::CStr13342     pub const fn name() -> &'static ::std::ffi::CStr {
13343         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_decorate_string\0") }
13344     }
13345     pub const SPEC_VERSION: u32 = 1u32;
13346 }
13347 #[derive(Clone)]
13348 pub struct GoogleDecorateStringFn {}
13349 unsafe impl Send for GoogleDecorateStringFn {}
13350 unsafe impl Sync for GoogleDecorateStringFn {}
13351 impl GoogleDecorateStringFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13352     pub fn load<F>(mut _f: F) -> Self
13353     where
13354         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13355     {
13356         Self {}
13357     }
13358 }
13359 impl ExtSubgroupSizeControlFn {
13360     #[inline]
name() -> &'static ::std::ffi::CStr13361     pub const fn name() -> &'static ::std::ffi::CStr {
13362         unsafe {
13363             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_subgroup_size_control\0")
13364         }
13365     }
13366     pub const SPEC_VERSION: u32 = 2u32;
13367 }
13368 #[derive(Clone)]
13369 pub struct ExtSubgroupSizeControlFn {}
13370 unsafe impl Send for ExtSubgroupSizeControlFn {}
13371 unsafe impl Sync for ExtSubgroupSizeControlFn {}
13372 impl ExtSubgroupSizeControlFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13373     pub fn load<F>(mut _f: F) -> Self
13374     where
13375         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13376     {
13377         Self {}
13378     }
13379 }
13380 #[doc = "Generated from 'VK_EXT_subgroup_size_control'"]
13381 impl PipelineShaderStageCreateFlags {
13382     pub const ALLOW_VARYING_SUBGROUP_SIZE_EXT: Self = Self::ALLOW_VARYING_SUBGROUP_SIZE;
13383     pub const REQUIRE_FULL_SUBGROUPS_EXT: Self = Self::REQUIRE_FULL_SUBGROUPS;
13384 }
13385 #[doc = "Generated from 'VK_EXT_subgroup_size_control'"]
13386 impl StructureType {
13387     pub const PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT: Self =
13388         Self::PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES;
13389     pub const PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT: Self =
13390         Self::PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO;
13391     pub const PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT: Self =
13392         Self::PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES;
13393 }
13394 impl KhrFragmentShadingRateFn {
13395     #[inline]
name() -> &'static ::std::ffi::CStr13396     pub const fn name() -> &'static ::std::ffi::CStr {
13397         unsafe {
13398             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_fragment_shading_rate\0")
13399         }
13400     }
13401     pub const SPEC_VERSION: u32 = 2u32;
13402 }
13403 #[allow(non_camel_case_types)]
13404 pub type PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = unsafe extern "system" fn(
13405     physical_device: PhysicalDevice,
13406     p_fragment_shading_rate_count: *mut u32,
13407     p_fragment_shading_rates: *mut PhysicalDeviceFragmentShadingRateKHR,
13408 ) -> Result;
13409 #[allow(non_camel_case_types)]
13410 pub type PFN_vkCmdSetFragmentShadingRateKHR = unsafe extern "system" fn(
13411     command_buffer: CommandBuffer,
13412     p_fragment_size: *const Extent2D,
13413     combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2usize],
13414 );
13415 #[derive(Clone)]
13416 pub struct KhrFragmentShadingRateFn {
13417     pub get_physical_device_fragment_shading_rates_khr:
13418         PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR,
13419     pub cmd_set_fragment_shading_rate_khr: PFN_vkCmdSetFragmentShadingRateKHR,
13420 }
13421 unsafe impl Send for KhrFragmentShadingRateFn {}
13422 unsafe impl Sync for KhrFragmentShadingRateFn {}
13423 impl KhrFragmentShadingRateFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13424     pub fn load<F>(mut _f: F) -> Self
13425     where
13426         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13427     {
13428         Self {
13429             get_physical_device_fragment_shading_rates_khr: unsafe {
13430                 unsafe extern "system" fn get_physical_device_fragment_shading_rates_khr(
13431                     _physical_device: PhysicalDevice,
13432                     _p_fragment_shading_rate_count: *mut u32,
13433                     _p_fragment_shading_rates: *mut PhysicalDeviceFragmentShadingRateKHR,
13434                 ) -> Result {
13435                     panic!(concat!(
13436                         "Unable to load ",
13437                         stringify!(get_physical_device_fragment_shading_rates_khr)
13438                     ))
13439                 }
13440                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13441                     b"vkGetPhysicalDeviceFragmentShadingRatesKHR\0",
13442                 );
13443                 let val = _f(cname);
13444                 if val.is_null() {
13445                     get_physical_device_fragment_shading_rates_khr
13446                 } else {
13447                     ::std::mem::transmute(val)
13448                 }
13449             },
13450             cmd_set_fragment_shading_rate_khr: unsafe {
13451                 unsafe extern "system" fn cmd_set_fragment_shading_rate_khr(
13452                     _command_buffer: CommandBuffer,
13453                     _p_fragment_size: *const Extent2D,
13454                     _combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2usize],
13455                 ) {
13456                     panic!(concat!(
13457                         "Unable to load ",
13458                         stringify!(cmd_set_fragment_shading_rate_khr)
13459                     ))
13460                 }
13461                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13462                     b"vkCmdSetFragmentShadingRateKHR\0",
13463                 );
13464                 let val = _f(cname);
13465                 if val.is_null() {
13466                     cmd_set_fragment_shading_rate_khr
13467                 } else {
13468                     ::std::mem::transmute(val)
13469                 }
13470             },
13471         }
13472     }
13473 }
13474 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
13475 impl AccessFlags {
13476     pub const FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR: Self =
13477         Self(0b1000_0000_0000_0000_0000_0000);
13478 }
13479 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
13480 impl DynamicState {
13481     pub const FRAGMENT_SHADING_RATE_KHR: Self = Self(1_000_226_000);
13482 }
13483 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
13484 impl FormatFeatureFlags {
13485     pub const FRAGMENT_SHADING_RATE_ATTACHMENT_KHR: Self =
13486         Self(0b100_0000_0000_0000_0000_0000_0000_0000);
13487 }
13488 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
13489 impl FormatFeatureFlags2 {
13490     pub const FRAGMENT_SHADING_RATE_ATTACHMENT_KHR: Self =
13491         Self(0b100_0000_0000_0000_0000_0000_0000_0000);
13492 }
13493 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
13494 impl ImageLayout {
13495     pub const FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR: Self = Self(1_000_164_003);
13496 }
13497 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
13498 impl ImageUsageFlags {
13499     pub const FRAGMENT_SHADING_RATE_ATTACHMENT_KHR: Self = Self(0b1_0000_0000);
13500 }
13501 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
13502 impl PipelineStageFlags {
13503     pub const FRAGMENT_SHADING_RATE_ATTACHMENT_KHR: Self = Self(0b100_0000_0000_0000_0000_0000);
13504 }
13505 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
13506 impl StructureType {
13507     pub const FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: Self = Self(1_000_226_000);
13508     pub const PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR: Self = Self(1_000_226_001);
13509     pub const PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR: Self = Self(1_000_226_002);
13510     pub const PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR: Self = Self(1_000_226_003);
13511     pub const PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR: Self = Self(1_000_226_004);
13512 }
13513 impl AmdShaderCoreProperties2Fn {
13514     #[inline]
name() -> &'static ::std::ffi::CStr13515     pub const fn name() -> &'static ::std::ffi::CStr {
13516         unsafe {
13517             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_core_properties2\0")
13518         }
13519     }
13520     pub const SPEC_VERSION: u32 = 1u32;
13521 }
13522 #[derive(Clone)]
13523 pub struct AmdShaderCoreProperties2Fn {}
13524 unsafe impl Send for AmdShaderCoreProperties2Fn {}
13525 unsafe impl Sync for AmdShaderCoreProperties2Fn {}
13526 impl AmdShaderCoreProperties2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13527     pub fn load<F>(mut _f: F) -> Self
13528     where
13529         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13530     {
13531         Self {}
13532     }
13533 }
13534 #[doc = "Generated from 'VK_AMD_shader_core_properties2'"]
13535 impl StructureType {
13536     pub const PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD: Self = Self(1_000_227_000);
13537 }
13538 impl AmdExtension229Fn {
13539     #[inline]
name() -> &'static ::std::ffi::CStr13540     pub const fn name() -> &'static ::std::ffi::CStr {
13541         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_229\0") }
13542     }
13543     pub const SPEC_VERSION: u32 = 0u32;
13544 }
13545 #[derive(Clone)]
13546 pub struct AmdExtension229Fn {}
13547 unsafe impl Send for AmdExtension229Fn {}
13548 unsafe impl Sync for AmdExtension229Fn {}
13549 impl AmdExtension229Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13550     pub fn load<F>(mut _f: F) -> Self
13551     where
13552         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13553     {
13554         Self {}
13555     }
13556 }
13557 impl AmdDeviceCoherentMemoryFn {
13558     #[inline]
name() -> &'static ::std::ffi::CStr13559     pub const fn name() -> &'static ::std::ffi::CStr {
13560         unsafe {
13561             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_device_coherent_memory\0")
13562         }
13563     }
13564     pub const SPEC_VERSION: u32 = 1u32;
13565 }
13566 #[derive(Clone)]
13567 pub struct AmdDeviceCoherentMemoryFn {}
13568 unsafe impl Send for AmdDeviceCoherentMemoryFn {}
13569 unsafe impl Sync for AmdDeviceCoherentMemoryFn {}
13570 impl AmdDeviceCoherentMemoryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13571     pub fn load<F>(mut _f: F) -> Self
13572     where
13573         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13574     {
13575         Self {}
13576     }
13577 }
13578 #[doc = "Generated from 'VK_AMD_device_coherent_memory'"]
13579 impl MemoryPropertyFlags {
13580     pub const DEVICE_COHERENT_AMD: Self = Self(0b100_0000);
13581     pub const DEVICE_UNCACHED_AMD: Self = Self(0b1000_0000);
13582 }
13583 #[doc = "Generated from 'VK_AMD_device_coherent_memory'"]
13584 impl StructureType {
13585     pub const PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD: Self = Self(1_000_229_000);
13586 }
13587 impl AmdExtension231Fn {
13588     #[inline]
name() -> &'static ::std::ffi::CStr13589     pub const fn name() -> &'static ::std::ffi::CStr {
13590         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_231\0") }
13591     }
13592     pub const SPEC_VERSION: u32 = 0u32;
13593 }
13594 #[derive(Clone)]
13595 pub struct AmdExtension231Fn {}
13596 unsafe impl Send for AmdExtension231Fn {}
13597 unsafe impl Sync for AmdExtension231Fn {}
13598 impl AmdExtension231Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13599     pub fn load<F>(mut _f: F) -> Self
13600     where
13601         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13602     {
13603         Self {}
13604     }
13605 }
13606 impl AmdExtension232Fn {
13607     #[inline]
name() -> &'static ::std::ffi::CStr13608     pub const fn name() -> &'static ::std::ffi::CStr {
13609         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_232\0") }
13610     }
13611     pub const SPEC_VERSION: u32 = 0u32;
13612 }
13613 #[derive(Clone)]
13614 pub struct AmdExtension232Fn {}
13615 unsafe impl Send for AmdExtension232Fn {}
13616 unsafe impl Sync for AmdExtension232Fn {}
13617 impl AmdExtension232Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13618     pub fn load<F>(mut _f: F) -> Self
13619     where
13620         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13621     {
13622         Self {}
13623     }
13624 }
13625 impl AmdExtension233Fn {
13626     #[inline]
name() -> &'static ::std::ffi::CStr13627     pub const fn name() -> &'static ::std::ffi::CStr {
13628         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_233\0") }
13629     }
13630     pub const SPEC_VERSION: u32 = 0u32;
13631 }
13632 #[derive(Clone)]
13633 pub struct AmdExtension233Fn {}
13634 unsafe impl Send for AmdExtension233Fn {}
13635 unsafe impl Sync for AmdExtension233Fn {}
13636 impl AmdExtension233Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13637     pub fn load<F>(mut _f: F) -> Self
13638     where
13639         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13640     {
13641         Self {}
13642     }
13643 }
13644 impl AmdExtension234Fn {
13645     #[inline]
name() -> &'static ::std::ffi::CStr13646     pub const fn name() -> &'static ::std::ffi::CStr {
13647         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_234\0") }
13648     }
13649     pub const SPEC_VERSION: u32 = 0u32;
13650 }
13651 #[derive(Clone)]
13652 pub struct AmdExtension234Fn {}
13653 unsafe impl Send for AmdExtension234Fn {}
13654 unsafe impl Sync for AmdExtension234Fn {}
13655 impl AmdExtension234Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13656     pub fn load<F>(mut _f: F) -> Self
13657     where
13658         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13659     {
13660         Self {}
13661     }
13662 }
13663 impl ExtShaderImageAtomicInt64Fn {
13664     #[inline]
name() -> &'static ::std::ffi::CStr13665     pub const fn name() -> &'static ::std::ffi::CStr {
13666         unsafe {
13667             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_image_atomic_int64\0")
13668         }
13669     }
13670     pub const SPEC_VERSION: u32 = 1u32;
13671 }
13672 #[derive(Clone)]
13673 pub struct ExtShaderImageAtomicInt64Fn {}
13674 unsafe impl Send for ExtShaderImageAtomicInt64Fn {}
13675 unsafe impl Sync for ExtShaderImageAtomicInt64Fn {}
13676 impl ExtShaderImageAtomicInt64Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13677     pub fn load<F>(mut _f: F) -> Self
13678     where
13679         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13680     {
13681         Self {}
13682     }
13683 }
13684 #[doc = "Generated from 'VK_EXT_shader_image_atomic_int64'"]
13685 impl StructureType {
13686     pub const PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT: Self = Self(1_000_234_000);
13687 }
13688 impl AmdExtension236Fn {
13689     #[inline]
name() -> &'static ::std::ffi::CStr13690     pub const fn name() -> &'static ::std::ffi::CStr {
13691         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_236\0") }
13692     }
13693     pub const SPEC_VERSION: u32 = 0u32;
13694 }
13695 #[derive(Clone)]
13696 pub struct AmdExtension236Fn {}
13697 unsafe impl Send for AmdExtension236Fn {}
13698 unsafe impl Sync for AmdExtension236Fn {}
13699 impl AmdExtension236Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13700     pub fn load<F>(mut _f: F) -> Self
13701     where
13702         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13703     {
13704         Self {}
13705     }
13706 }
13707 impl KhrSpirv14Fn {
13708     #[inline]
name() -> &'static ::std::ffi::CStr13709     pub const fn name() -> &'static ::std::ffi::CStr {
13710         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_spirv_1_4\0") }
13711     }
13712     pub const SPEC_VERSION: u32 = 1u32;
13713 }
13714 #[derive(Clone)]
13715 pub struct KhrSpirv14Fn {}
13716 unsafe impl Send for KhrSpirv14Fn {}
13717 unsafe impl Sync for KhrSpirv14Fn {}
13718 impl KhrSpirv14Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13719     pub fn load<F>(mut _f: F) -> Self
13720     where
13721         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13722     {
13723         Self {}
13724     }
13725 }
13726 impl ExtMemoryBudgetFn {
13727     #[inline]
name() -> &'static ::std::ffi::CStr13728     pub const fn name() -> &'static ::std::ffi::CStr {
13729         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_memory_budget\0") }
13730     }
13731     pub const SPEC_VERSION: u32 = 1u32;
13732 }
13733 #[derive(Clone)]
13734 pub struct ExtMemoryBudgetFn {}
13735 unsafe impl Send for ExtMemoryBudgetFn {}
13736 unsafe impl Sync for ExtMemoryBudgetFn {}
13737 impl ExtMemoryBudgetFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13738     pub fn load<F>(mut _f: F) -> Self
13739     where
13740         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13741     {
13742         Self {}
13743     }
13744 }
13745 #[doc = "Generated from 'VK_EXT_memory_budget'"]
13746 impl StructureType {
13747     pub const PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT: Self = Self(1_000_237_000);
13748 }
13749 impl ExtMemoryPriorityFn {
13750     #[inline]
name() -> &'static ::std::ffi::CStr13751     pub const fn name() -> &'static ::std::ffi::CStr {
13752         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_memory_priority\0") }
13753     }
13754     pub const SPEC_VERSION: u32 = 1u32;
13755 }
13756 #[derive(Clone)]
13757 pub struct ExtMemoryPriorityFn {}
13758 unsafe impl Send for ExtMemoryPriorityFn {}
13759 unsafe impl Sync for ExtMemoryPriorityFn {}
13760 impl ExtMemoryPriorityFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13761     pub fn load<F>(mut _f: F) -> Self
13762     where
13763         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13764     {
13765         Self {}
13766     }
13767 }
13768 #[doc = "Generated from 'VK_EXT_memory_priority'"]
13769 impl StructureType {
13770     pub const PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT: Self = Self(1_000_238_000);
13771     pub const MEMORY_PRIORITY_ALLOCATE_INFO_EXT: Self = Self(1_000_238_001);
13772 }
13773 impl KhrSurfaceProtectedCapabilitiesFn {
13774     #[inline]
name() -> &'static ::std::ffi::CStr13775     pub const fn name() -> &'static ::std::ffi::CStr {
13776         unsafe {
13777             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13778                 b"VK_KHR_surface_protected_capabilities\0",
13779             )
13780         }
13781     }
13782     pub const SPEC_VERSION: u32 = 1u32;
13783 }
13784 #[derive(Clone)]
13785 pub struct KhrSurfaceProtectedCapabilitiesFn {}
13786 unsafe impl Send for KhrSurfaceProtectedCapabilitiesFn {}
13787 unsafe impl Sync for KhrSurfaceProtectedCapabilitiesFn {}
13788 impl KhrSurfaceProtectedCapabilitiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13789     pub fn load<F>(mut _f: F) -> Self
13790     where
13791         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13792     {
13793         Self {}
13794     }
13795 }
13796 #[doc = "Generated from 'VK_KHR_surface_protected_capabilities'"]
13797 impl StructureType {
13798     pub const SURFACE_PROTECTED_CAPABILITIES_KHR: Self = Self(1_000_239_000);
13799 }
13800 impl NvDedicatedAllocationImageAliasingFn {
13801     #[inline]
name() -> &'static ::std::ffi::CStr13802     pub const fn name() -> &'static ::std::ffi::CStr {
13803         unsafe {
13804             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13805                 b"VK_NV_dedicated_allocation_image_aliasing\0",
13806             )
13807         }
13808     }
13809     pub const SPEC_VERSION: u32 = 1u32;
13810 }
13811 #[derive(Clone)]
13812 pub struct NvDedicatedAllocationImageAliasingFn {}
13813 unsafe impl Send for NvDedicatedAllocationImageAliasingFn {}
13814 unsafe impl Sync for NvDedicatedAllocationImageAliasingFn {}
13815 impl NvDedicatedAllocationImageAliasingFn {
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         Self {}
13821     }
13822 }
13823 #[doc = "Generated from 'VK_NV_dedicated_allocation_image_aliasing'"]
13824 impl StructureType {
13825     pub const PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV: Self =
13826         Self(1_000_240_000);
13827 }
13828 impl KhrSeparateDepthStencilLayoutsFn {
13829     #[inline]
name() -> &'static ::std::ffi::CStr13830     pub const fn name() -> &'static ::std::ffi::CStr {
13831         unsafe {
13832             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13833                 b"VK_KHR_separate_depth_stencil_layouts\0",
13834             )
13835         }
13836     }
13837     pub const SPEC_VERSION: u32 = 1u32;
13838 }
13839 #[derive(Clone)]
13840 pub struct KhrSeparateDepthStencilLayoutsFn {}
13841 unsafe impl Send for KhrSeparateDepthStencilLayoutsFn {}
13842 unsafe impl Sync for KhrSeparateDepthStencilLayoutsFn {}
13843 impl KhrSeparateDepthStencilLayoutsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13844     pub fn load<F>(mut _f: F) -> Self
13845     where
13846         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13847     {
13848         Self {}
13849     }
13850 }
13851 #[doc = "Generated from 'VK_KHR_separate_depth_stencil_layouts'"]
13852 impl ImageLayout {
13853     pub const DEPTH_ATTACHMENT_OPTIMAL_KHR: Self = Self::DEPTH_ATTACHMENT_OPTIMAL;
13854     pub const DEPTH_READ_ONLY_OPTIMAL_KHR: Self = Self::DEPTH_READ_ONLY_OPTIMAL;
13855     pub const STENCIL_ATTACHMENT_OPTIMAL_KHR: Self = Self::STENCIL_ATTACHMENT_OPTIMAL;
13856     pub const STENCIL_READ_ONLY_OPTIMAL_KHR: Self = Self::STENCIL_READ_ONLY_OPTIMAL;
13857 }
13858 #[doc = "Generated from 'VK_KHR_separate_depth_stencil_layouts'"]
13859 impl StructureType {
13860     pub const PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR: Self =
13861         Self::PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES;
13862     pub const ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR: Self =
13863         Self::ATTACHMENT_REFERENCE_STENCIL_LAYOUT;
13864     pub const ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR: Self =
13865         Self::ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT;
13866 }
13867 impl IntelExtension243Fn {
13868     #[inline]
name() -> &'static ::std::ffi::CStr13869     pub const fn name() -> &'static ::std::ffi::CStr {
13870         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_INTEL_extension_243\0") }
13871     }
13872     pub const SPEC_VERSION: u32 = 0u32;
13873 }
13874 #[derive(Clone)]
13875 pub struct IntelExtension243Fn {}
13876 unsafe impl Send for IntelExtension243Fn {}
13877 unsafe impl Sync for IntelExtension243Fn {}
13878 impl IntelExtension243Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13879     pub fn load<F>(mut _f: F) -> Self
13880     where
13881         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13882     {
13883         Self {}
13884     }
13885 }
13886 #[doc = "Generated from 'VK_INTEL_extension_243'"]
13887 impl AccessFlags2 {
13888     pub const RESERVED_46_EXT: Self =
13889         Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
13890 }
13891 impl MesaExtension244Fn {
13892     #[inline]
name() -> &'static ::std::ffi::CStr13893     pub const fn name() -> &'static ::std::ffi::CStr {
13894         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_MESA_extension_244\0") }
13895     }
13896     pub const SPEC_VERSION: u32 = 0u32;
13897 }
13898 #[derive(Clone)]
13899 pub struct MesaExtension244Fn {}
13900 unsafe impl Send for MesaExtension244Fn {}
13901 unsafe impl Sync for MesaExtension244Fn {}
13902 impl MesaExtension244Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13903     pub fn load<F>(mut _f: F) -> Self
13904     where
13905         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13906     {
13907         Self {}
13908     }
13909 }
13910 impl ExtBufferDeviceAddressFn {
13911     #[inline]
name() -> &'static ::std::ffi::CStr13912     pub const fn name() -> &'static ::std::ffi::CStr {
13913         unsafe {
13914             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_buffer_device_address\0")
13915         }
13916     }
13917     pub const SPEC_VERSION: u32 = 2u32;
13918 }
13919 #[allow(non_camel_case_types)]
13920 pub type PFN_vkGetBufferDeviceAddress = unsafe extern "system" fn(
13921     device: Device,
13922     p_info: *const BufferDeviceAddressInfo,
13923 ) -> DeviceAddress;
13924 #[derive(Clone)]
13925 pub struct ExtBufferDeviceAddressFn {
13926     pub get_buffer_device_address_ext: PFN_vkGetBufferDeviceAddress,
13927 }
13928 unsafe impl Send for ExtBufferDeviceAddressFn {}
13929 unsafe impl Sync for ExtBufferDeviceAddressFn {}
13930 impl ExtBufferDeviceAddressFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13931     pub fn load<F>(mut _f: F) -> Self
13932     where
13933         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13934     {
13935         Self {
13936             get_buffer_device_address_ext: unsafe {
13937                 unsafe extern "system" fn get_buffer_device_address_ext(
13938                     _device: Device,
13939                     _p_info: *const BufferDeviceAddressInfo,
13940                 ) -> DeviceAddress {
13941                     panic!(concat!(
13942                         "Unable to load ",
13943                         stringify!(get_buffer_device_address_ext)
13944                     ))
13945                 }
13946                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13947                     b"vkGetBufferDeviceAddressEXT\0",
13948                 );
13949                 let val = _f(cname);
13950                 if val.is_null() {
13951                     get_buffer_device_address_ext
13952                 } else {
13953                     ::std::mem::transmute(val)
13954                 }
13955             },
13956         }
13957     }
13958 }
13959 #[doc = "Generated from 'VK_EXT_buffer_device_address'"]
13960 impl BufferCreateFlags {
13961     pub const DEVICE_ADDRESS_CAPTURE_REPLAY_EXT: Self = Self::DEVICE_ADDRESS_CAPTURE_REPLAY;
13962 }
13963 #[doc = "Generated from 'VK_EXT_buffer_device_address'"]
13964 impl BufferUsageFlags {
13965     pub const SHADER_DEVICE_ADDRESS_EXT: Self = Self::SHADER_DEVICE_ADDRESS;
13966 }
13967 #[doc = "Generated from 'VK_EXT_buffer_device_address'"]
13968 impl Result {
13969     pub const ERROR_INVALID_DEVICE_ADDRESS_EXT: Self = Self::ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS;
13970 }
13971 #[doc = "Generated from 'VK_EXT_buffer_device_address'"]
13972 impl StructureType {
13973     pub const PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT: Self = Self(1_000_244_000);
13974     pub const PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT: Self =
13975         Self::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT;
13976     pub const BUFFER_DEVICE_ADDRESS_INFO_EXT: Self = Self::BUFFER_DEVICE_ADDRESS_INFO;
13977     pub const BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT: Self = Self(1_000_244_002);
13978 }
13979 impl ExtToolingInfoFn {
13980     #[inline]
name() -> &'static ::std::ffi::CStr13981     pub const fn name() -> &'static ::std::ffi::CStr {
13982         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_tooling_info\0") }
13983     }
13984     pub const SPEC_VERSION: u32 = 1u32;
13985 }
13986 #[allow(non_camel_case_types)]
13987 pub type PFN_vkGetPhysicalDeviceToolProperties = unsafe extern "system" fn(
13988     physical_device: PhysicalDevice,
13989     p_tool_count: *mut u32,
13990     p_tool_properties: *mut PhysicalDeviceToolProperties,
13991 ) -> Result;
13992 #[derive(Clone)]
13993 pub struct ExtToolingInfoFn {
13994     pub get_physical_device_tool_properties_ext: PFN_vkGetPhysicalDeviceToolProperties,
13995 }
13996 unsafe impl Send for ExtToolingInfoFn {}
13997 unsafe impl Sync for ExtToolingInfoFn {}
13998 impl ExtToolingInfoFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13999     pub fn load<F>(mut _f: F) -> Self
14000     where
14001         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14002     {
14003         Self {
14004             get_physical_device_tool_properties_ext: unsafe {
14005                 unsafe extern "system" fn get_physical_device_tool_properties_ext(
14006                     _physical_device: PhysicalDevice,
14007                     _p_tool_count: *mut u32,
14008                     _p_tool_properties: *mut PhysicalDeviceToolProperties,
14009                 ) -> Result {
14010                     panic!(concat!(
14011                         "Unable to load ",
14012                         stringify!(get_physical_device_tool_properties_ext)
14013                     ))
14014                 }
14015                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14016                     b"vkGetPhysicalDeviceToolPropertiesEXT\0",
14017                 );
14018                 let val = _f(cname);
14019                 if val.is_null() {
14020                     get_physical_device_tool_properties_ext
14021                 } else {
14022                     ::std::mem::transmute(val)
14023                 }
14024             },
14025         }
14026     }
14027 }
14028 #[doc = "Generated from 'VK_EXT_tooling_info'"]
14029 impl StructureType {
14030     pub const PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT: Self = Self::PHYSICAL_DEVICE_TOOL_PROPERTIES;
14031 }
14032 #[doc = "Generated from 'VK_EXT_tooling_info'"]
14033 impl ToolPurposeFlags {
14034     pub const DEBUG_REPORTING_EXT: Self = Self(0b10_0000);
14035     pub const DEBUG_MARKERS_EXT: Self = Self(0b100_0000);
14036 }
14037 impl ExtSeparateStencilUsageFn {
14038     #[inline]
name() -> &'static ::std::ffi::CStr14039     pub const fn name() -> &'static ::std::ffi::CStr {
14040         unsafe {
14041             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_separate_stencil_usage\0")
14042         }
14043     }
14044     pub const SPEC_VERSION: u32 = 1u32;
14045 }
14046 #[derive(Clone)]
14047 pub struct ExtSeparateStencilUsageFn {}
14048 unsafe impl Send for ExtSeparateStencilUsageFn {}
14049 unsafe impl Sync for ExtSeparateStencilUsageFn {}
14050 impl ExtSeparateStencilUsageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14051     pub fn load<F>(mut _f: F) -> Self
14052     where
14053         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14054     {
14055         Self {}
14056     }
14057 }
14058 #[doc = "Generated from 'VK_EXT_separate_stencil_usage'"]
14059 impl StructureType {
14060     pub const IMAGE_STENCIL_USAGE_CREATE_INFO_EXT: Self = Self::IMAGE_STENCIL_USAGE_CREATE_INFO;
14061 }
14062 impl ExtValidationFeaturesFn {
14063     #[inline]
name() -> &'static ::std::ffi::CStr14064     pub const fn name() -> &'static ::std::ffi::CStr {
14065         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_validation_features\0") }
14066     }
14067     pub const SPEC_VERSION: u32 = 5u32;
14068 }
14069 #[derive(Clone)]
14070 pub struct ExtValidationFeaturesFn {}
14071 unsafe impl Send for ExtValidationFeaturesFn {}
14072 unsafe impl Sync for ExtValidationFeaturesFn {}
14073 impl ExtValidationFeaturesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14074     pub fn load<F>(mut _f: F) -> Self
14075     where
14076         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14077     {
14078         Self {}
14079     }
14080 }
14081 #[doc = "Generated from 'VK_EXT_validation_features'"]
14082 impl StructureType {
14083     pub const VALIDATION_FEATURES_EXT: Self = Self(1_000_247_000);
14084 }
14085 impl KhrPresentWaitFn {
14086     #[inline]
name() -> &'static ::std::ffi::CStr14087     pub const fn name() -> &'static ::std::ffi::CStr {
14088         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_present_wait\0") }
14089     }
14090     pub const SPEC_VERSION: u32 = 1u32;
14091 }
14092 #[allow(non_camel_case_types)]
14093 pub type PFN_vkWaitForPresentKHR = unsafe extern "system" fn(
14094     device: Device,
14095     swapchain: SwapchainKHR,
14096     present_id: u64,
14097     timeout: u64,
14098 ) -> Result;
14099 #[derive(Clone)]
14100 pub struct KhrPresentWaitFn {
14101     pub wait_for_present_khr: PFN_vkWaitForPresentKHR,
14102 }
14103 unsafe impl Send for KhrPresentWaitFn {}
14104 unsafe impl Sync for KhrPresentWaitFn {}
14105 impl KhrPresentWaitFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14106     pub fn load<F>(mut _f: F) -> Self
14107     where
14108         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14109     {
14110         Self {
14111             wait_for_present_khr: unsafe {
14112                 unsafe extern "system" fn wait_for_present_khr(
14113                     _device: Device,
14114                     _swapchain: SwapchainKHR,
14115                     _present_id: u64,
14116                     _timeout: u64,
14117                 ) -> Result {
14118                     panic!(concat!("Unable to load ", stringify!(wait_for_present_khr)))
14119                 }
14120                 let cname =
14121                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkWaitForPresentKHR\0");
14122                 let val = _f(cname);
14123                 if val.is_null() {
14124                     wait_for_present_khr
14125                 } else {
14126                     ::std::mem::transmute(val)
14127                 }
14128             },
14129         }
14130     }
14131 }
14132 #[doc = "Generated from 'VK_KHR_present_wait'"]
14133 impl StructureType {
14134     pub const PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR: Self = Self(1_000_248_000);
14135 }
14136 impl NvCooperativeMatrixFn {
14137     #[inline]
name() -> &'static ::std::ffi::CStr14138     pub const fn name() -> &'static ::std::ffi::CStr {
14139         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_cooperative_matrix\0") }
14140     }
14141     pub const SPEC_VERSION: u32 = 1u32;
14142 }
14143 #[allow(non_camel_case_types)]
14144 pub type PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = unsafe extern "system" fn(
14145     physical_device: PhysicalDevice,
14146     p_property_count: *mut u32,
14147     p_properties: *mut CooperativeMatrixPropertiesNV,
14148 )
14149     -> Result;
14150 #[derive(Clone)]
14151 pub struct NvCooperativeMatrixFn {
14152     pub get_physical_device_cooperative_matrix_properties_nv:
14153         PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV,
14154 }
14155 unsafe impl Send for NvCooperativeMatrixFn {}
14156 unsafe impl Sync for NvCooperativeMatrixFn {}
14157 impl NvCooperativeMatrixFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14158     pub fn load<F>(mut _f: F) -> Self
14159     where
14160         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14161     {
14162         Self {
14163             get_physical_device_cooperative_matrix_properties_nv: unsafe {
14164                 unsafe extern "system" fn get_physical_device_cooperative_matrix_properties_nv(
14165                     _physical_device: PhysicalDevice,
14166                     _p_property_count: *mut u32,
14167                     _p_properties: *mut CooperativeMatrixPropertiesNV,
14168                 ) -> Result {
14169                     panic!(concat!(
14170                         "Unable to load ",
14171                         stringify!(get_physical_device_cooperative_matrix_properties_nv)
14172                     ))
14173                 }
14174                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14175                     b"vkGetPhysicalDeviceCooperativeMatrixPropertiesNV\0",
14176                 );
14177                 let val = _f(cname);
14178                 if val.is_null() {
14179                     get_physical_device_cooperative_matrix_properties_nv
14180                 } else {
14181                     ::std::mem::transmute(val)
14182                 }
14183             },
14184         }
14185     }
14186 }
14187 #[doc = "Generated from 'VK_NV_cooperative_matrix'"]
14188 impl StructureType {
14189     pub const PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV: Self = Self(1_000_249_000);
14190     pub const COOPERATIVE_MATRIX_PROPERTIES_NV: Self = Self(1_000_249_001);
14191     pub const PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV: Self = Self(1_000_249_002);
14192 }
14193 impl NvCoverageReductionModeFn {
14194     #[inline]
name() -> &'static ::std::ffi::CStr14195     pub const fn name() -> &'static ::std::ffi::CStr {
14196         unsafe {
14197             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_coverage_reduction_mode\0")
14198         }
14199     }
14200     pub const SPEC_VERSION: u32 = 1u32;
14201 }
14202 #[allow(non_camel_case_types)]
14203 pub type PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV =
14204     unsafe extern "system" fn(
14205         physical_device: PhysicalDevice,
14206         p_combination_count: *mut u32,
14207         p_combinations: *mut FramebufferMixedSamplesCombinationNV,
14208     ) -> Result;
14209 #[derive(Clone)]
14210 pub struct NvCoverageReductionModeFn {
14211     pub get_physical_device_supported_framebuffer_mixed_samples_combinations_nv:
14212         PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV,
14213 }
14214 unsafe impl Send for NvCoverageReductionModeFn {}
14215 unsafe impl Sync for NvCoverageReductionModeFn {}
14216 impl NvCoverageReductionModeFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14217     pub fn load<F>(mut _f: F) -> Self
14218     where
14219         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14220     {
14221         Self {
14222             get_physical_device_supported_framebuffer_mixed_samples_combinations_nv: unsafe {
14223                 unsafe extern "system" fn get_physical_device_supported_framebuffer_mixed_samples_combinations_nv(
14224                     _physical_device: PhysicalDevice,
14225                     _p_combination_count: *mut u32,
14226                     _p_combinations: *mut FramebufferMixedSamplesCombinationNV,
14227                 ) -> Result {
14228                     panic!(concat!(
14229                         "Unable to load ",
14230                         stringify!(
14231                             get_physical_device_supported_framebuffer_mixed_samples_combinations_nv
14232                         )
14233                     ))
14234                 }
14235                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14236                     b"vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\0",
14237                 );
14238                 let val = _f(cname);
14239                 if val.is_null() {
14240                     get_physical_device_supported_framebuffer_mixed_samples_combinations_nv
14241                 } else {
14242                     ::std::mem::transmute(val)
14243                 }
14244             },
14245         }
14246     }
14247 }
14248 #[doc = "Generated from 'VK_NV_coverage_reduction_mode'"]
14249 impl StructureType {
14250     pub const PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV: Self = Self(1_000_250_000);
14251     pub const PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV: Self = Self(1_000_250_001);
14252     pub const FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV: Self = Self(1_000_250_002);
14253 }
14254 impl ExtFragmentShaderInterlockFn {
14255     #[inline]
name() -> &'static ::std::ffi::CStr14256     pub const fn name() -> &'static ::std::ffi::CStr {
14257         unsafe {
14258             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_fragment_shader_interlock\0")
14259         }
14260     }
14261     pub const SPEC_VERSION: u32 = 1u32;
14262 }
14263 #[derive(Clone)]
14264 pub struct ExtFragmentShaderInterlockFn {}
14265 unsafe impl Send for ExtFragmentShaderInterlockFn {}
14266 unsafe impl Sync for ExtFragmentShaderInterlockFn {}
14267 impl ExtFragmentShaderInterlockFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14268     pub fn load<F>(mut _f: F) -> Self
14269     where
14270         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14271     {
14272         Self {}
14273     }
14274 }
14275 #[doc = "Generated from 'VK_EXT_fragment_shader_interlock'"]
14276 impl StructureType {
14277     pub const PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT: Self = Self(1_000_251_000);
14278 }
14279 impl ExtYcbcrImageArraysFn {
14280     #[inline]
name() -> &'static ::std::ffi::CStr14281     pub const fn name() -> &'static ::std::ffi::CStr {
14282         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_ycbcr_image_arrays\0") }
14283     }
14284     pub const SPEC_VERSION: u32 = 1u32;
14285 }
14286 #[derive(Clone)]
14287 pub struct ExtYcbcrImageArraysFn {}
14288 unsafe impl Send for ExtYcbcrImageArraysFn {}
14289 unsafe impl Sync for ExtYcbcrImageArraysFn {}
14290 impl ExtYcbcrImageArraysFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14291     pub fn load<F>(mut _f: F) -> Self
14292     where
14293         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14294     {
14295         Self {}
14296     }
14297 }
14298 #[doc = "Generated from 'VK_EXT_ycbcr_image_arrays'"]
14299 impl StructureType {
14300     pub const PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT: Self = Self(1_000_252_000);
14301 }
14302 impl KhrUniformBufferStandardLayoutFn {
14303     #[inline]
name() -> &'static ::std::ffi::CStr14304     pub const fn name() -> &'static ::std::ffi::CStr {
14305         unsafe {
14306             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14307                 b"VK_KHR_uniform_buffer_standard_layout\0",
14308             )
14309         }
14310     }
14311     pub const SPEC_VERSION: u32 = 1u32;
14312 }
14313 #[derive(Clone)]
14314 pub struct KhrUniformBufferStandardLayoutFn {}
14315 unsafe impl Send for KhrUniformBufferStandardLayoutFn {}
14316 unsafe impl Sync for KhrUniformBufferStandardLayoutFn {}
14317 impl KhrUniformBufferStandardLayoutFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14318     pub fn load<F>(mut _f: F) -> Self
14319     where
14320         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14321     {
14322         Self {}
14323     }
14324 }
14325 #[doc = "Generated from 'VK_KHR_uniform_buffer_standard_layout'"]
14326 impl StructureType {
14327     pub const PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR: Self =
14328         Self::PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES;
14329 }
14330 impl ExtProvokingVertexFn {
14331     #[inline]
name() -> &'static ::std::ffi::CStr14332     pub const fn name() -> &'static ::std::ffi::CStr {
14333         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_provoking_vertex\0") }
14334     }
14335     pub const SPEC_VERSION: u32 = 1u32;
14336 }
14337 #[derive(Clone)]
14338 pub struct ExtProvokingVertexFn {}
14339 unsafe impl Send for ExtProvokingVertexFn {}
14340 unsafe impl Sync for ExtProvokingVertexFn {}
14341 impl ExtProvokingVertexFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14342     pub fn load<F>(mut _f: F) -> Self
14343     where
14344         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14345     {
14346         Self {}
14347     }
14348 }
14349 #[doc = "Generated from 'VK_EXT_provoking_vertex'"]
14350 impl StructureType {
14351     pub const PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: Self = Self(1_000_254_000);
14352     pub const PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: Self =
14353         Self(1_000_254_001);
14354     pub const PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: Self = Self(1_000_254_002);
14355 }
14356 impl ExtFullScreenExclusiveFn {
14357     #[inline]
name() -> &'static ::std::ffi::CStr14358     pub const fn name() -> &'static ::std::ffi::CStr {
14359         unsafe {
14360             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_full_screen_exclusive\0")
14361         }
14362     }
14363     pub const SPEC_VERSION: u32 = 4u32;
14364 }
14365 #[allow(non_camel_case_types)]
14366 pub type PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT = unsafe extern "system" fn(
14367     physical_device: PhysicalDevice,
14368     p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
14369     p_present_mode_count: *mut u32,
14370     p_present_modes: *mut PresentModeKHR,
14371 ) -> Result;
14372 #[allow(non_camel_case_types)]
14373 pub type PFN_vkAcquireFullScreenExclusiveModeEXT =
14374     unsafe extern "system" fn(device: Device, swapchain: SwapchainKHR) -> Result;
14375 #[allow(non_camel_case_types)]
14376 pub type PFN_vkReleaseFullScreenExclusiveModeEXT =
14377     unsafe extern "system" fn(device: Device, swapchain: SwapchainKHR) -> Result;
14378 #[allow(non_camel_case_types)]
14379 pub type PFN_vkGetDeviceGroupSurfacePresentModes2EXT = unsafe extern "system" fn(
14380     device: Device,
14381     p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
14382     p_modes: *mut DeviceGroupPresentModeFlagsKHR,
14383 ) -> Result;
14384 #[derive(Clone)]
14385 pub struct ExtFullScreenExclusiveFn {
14386     pub get_physical_device_surface_present_modes2_ext:
14387         PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT,
14388     pub acquire_full_screen_exclusive_mode_ext: PFN_vkAcquireFullScreenExclusiveModeEXT,
14389     pub release_full_screen_exclusive_mode_ext: PFN_vkReleaseFullScreenExclusiveModeEXT,
14390     pub get_device_group_surface_present_modes2_ext: PFN_vkGetDeviceGroupSurfacePresentModes2EXT,
14391 }
14392 unsafe impl Send for ExtFullScreenExclusiveFn {}
14393 unsafe impl Sync for ExtFullScreenExclusiveFn {}
14394 impl ExtFullScreenExclusiveFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14395     pub fn load<F>(mut _f: F) -> Self
14396     where
14397         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14398     {
14399         Self {
14400             get_physical_device_surface_present_modes2_ext: unsafe {
14401                 unsafe extern "system" fn get_physical_device_surface_present_modes2_ext(
14402                     _physical_device: PhysicalDevice,
14403                     _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
14404                     _p_present_mode_count: *mut u32,
14405                     _p_present_modes: *mut PresentModeKHR,
14406                 ) -> Result {
14407                     panic!(concat!(
14408                         "Unable to load ",
14409                         stringify!(get_physical_device_surface_present_modes2_ext)
14410                     ))
14411                 }
14412                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14413                     b"vkGetPhysicalDeviceSurfacePresentModes2EXT\0",
14414                 );
14415                 let val = _f(cname);
14416                 if val.is_null() {
14417                     get_physical_device_surface_present_modes2_ext
14418                 } else {
14419                     ::std::mem::transmute(val)
14420                 }
14421             },
14422             acquire_full_screen_exclusive_mode_ext: unsafe {
14423                 unsafe extern "system" fn acquire_full_screen_exclusive_mode_ext(
14424                     _device: Device,
14425                     _swapchain: SwapchainKHR,
14426                 ) -> Result {
14427                     panic!(concat!(
14428                         "Unable to load ",
14429                         stringify!(acquire_full_screen_exclusive_mode_ext)
14430                     ))
14431                 }
14432                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14433                     b"vkAcquireFullScreenExclusiveModeEXT\0",
14434                 );
14435                 let val = _f(cname);
14436                 if val.is_null() {
14437                     acquire_full_screen_exclusive_mode_ext
14438                 } else {
14439                     ::std::mem::transmute(val)
14440                 }
14441             },
14442             release_full_screen_exclusive_mode_ext: unsafe {
14443                 unsafe extern "system" fn release_full_screen_exclusive_mode_ext(
14444                     _device: Device,
14445                     _swapchain: SwapchainKHR,
14446                 ) -> Result {
14447                     panic!(concat!(
14448                         "Unable to load ",
14449                         stringify!(release_full_screen_exclusive_mode_ext)
14450                     ))
14451                 }
14452                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14453                     b"vkReleaseFullScreenExclusiveModeEXT\0",
14454                 );
14455                 let val = _f(cname);
14456                 if val.is_null() {
14457                     release_full_screen_exclusive_mode_ext
14458                 } else {
14459                     ::std::mem::transmute(val)
14460                 }
14461             },
14462             get_device_group_surface_present_modes2_ext: unsafe {
14463                 unsafe extern "system" fn get_device_group_surface_present_modes2_ext(
14464                     _device: Device,
14465                     _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
14466                     _p_modes: *mut DeviceGroupPresentModeFlagsKHR,
14467                 ) -> Result {
14468                     panic!(concat!(
14469                         "Unable to load ",
14470                         stringify!(get_device_group_surface_present_modes2_ext)
14471                     ))
14472                 }
14473                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14474                     b"vkGetDeviceGroupSurfacePresentModes2EXT\0",
14475                 );
14476                 let val = _f(cname);
14477                 if val.is_null() {
14478                     get_device_group_surface_present_modes2_ext
14479                 } else {
14480                     ::std::mem::transmute(val)
14481                 }
14482             },
14483         }
14484     }
14485 }
14486 #[doc = "Generated from 'VK_EXT_full_screen_exclusive'"]
14487 impl Result {
14488     pub const ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT: Self = Self(-1_000_255_000);
14489 }
14490 #[doc = "Generated from 'VK_EXT_full_screen_exclusive'"]
14491 impl StructureType {
14492     pub const SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT: Self = Self(1_000_255_000);
14493     pub const SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT: Self = Self(1_000_255_002);
14494     pub const SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT: Self = Self(1_000_255_001);
14495 }
14496 impl ExtHeadlessSurfaceFn {
14497     #[inline]
name() -> &'static ::std::ffi::CStr14498     pub const fn name() -> &'static ::std::ffi::CStr {
14499         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_headless_surface\0") }
14500     }
14501     pub const SPEC_VERSION: u32 = 1u32;
14502 }
14503 #[allow(non_camel_case_types)]
14504 pub type PFN_vkCreateHeadlessSurfaceEXT = unsafe extern "system" fn(
14505     instance: Instance,
14506     p_create_info: *const HeadlessSurfaceCreateInfoEXT,
14507     p_allocator: *const AllocationCallbacks,
14508     p_surface: *mut SurfaceKHR,
14509 ) -> Result;
14510 #[derive(Clone)]
14511 pub struct ExtHeadlessSurfaceFn {
14512     pub create_headless_surface_ext: PFN_vkCreateHeadlessSurfaceEXT,
14513 }
14514 unsafe impl Send for ExtHeadlessSurfaceFn {}
14515 unsafe impl Sync for ExtHeadlessSurfaceFn {}
14516 impl ExtHeadlessSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14517     pub fn load<F>(mut _f: F) -> Self
14518     where
14519         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14520     {
14521         Self {
14522             create_headless_surface_ext: unsafe {
14523                 unsafe extern "system" fn create_headless_surface_ext(
14524                     _instance: Instance,
14525                     _p_create_info: *const HeadlessSurfaceCreateInfoEXT,
14526                     _p_allocator: *const AllocationCallbacks,
14527                     _p_surface: *mut SurfaceKHR,
14528                 ) -> Result {
14529                     panic!(concat!(
14530                         "Unable to load ",
14531                         stringify!(create_headless_surface_ext)
14532                     ))
14533                 }
14534                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14535                     b"vkCreateHeadlessSurfaceEXT\0",
14536                 );
14537                 let val = _f(cname);
14538                 if val.is_null() {
14539                     create_headless_surface_ext
14540                 } else {
14541                     ::std::mem::transmute(val)
14542                 }
14543             },
14544         }
14545     }
14546 }
14547 #[doc = "Generated from 'VK_EXT_headless_surface'"]
14548 impl StructureType {
14549     pub const HEADLESS_SURFACE_CREATE_INFO_EXT: Self = Self(1_000_256_000);
14550 }
14551 impl KhrBufferDeviceAddressFn {
14552     #[inline]
name() -> &'static ::std::ffi::CStr14553     pub const fn name() -> &'static ::std::ffi::CStr {
14554         unsafe {
14555             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_buffer_device_address\0")
14556         }
14557     }
14558     pub const SPEC_VERSION: u32 = 1u32;
14559 }
14560 #[allow(non_camel_case_types)]
14561 pub type PFN_vkGetBufferOpaqueCaptureAddress =
14562     unsafe extern "system" fn(device: Device, p_info: *const BufferDeviceAddressInfo) -> u64;
14563 #[allow(non_camel_case_types)]
14564 pub type PFN_vkGetDeviceMemoryOpaqueCaptureAddress = unsafe extern "system" fn(
14565     device: Device,
14566     p_info: *const DeviceMemoryOpaqueCaptureAddressInfo,
14567 ) -> u64;
14568 #[derive(Clone)]
14569 pub struct KhrBufferDeviceAddressFn {
14570     pub get_buffer_device_address_khr: crate::vk::PFN_vkGetBufferDeviceAddress,
14571     pub get_buffer_opaque_capture_address_khr: PFN_vkGetBufferOpaqueCaptureAddress,
14572     pub get_device_memory_opaque_capture_address_khr: PFN_vkGetDeviceMemoryOpaqueCaptureAddress,
14573 }
14574 unsafe impl Send for KhrBufferDeviceAddressFn {}
14575 unsafe impl Sync for KhrBufferDeviceAddressFn {}
14576 impl KhrBufferDeviceAddressFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14577     pub fn load<F>(mut _f: F) -> Self
14578     where
14579         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14580     {
14581         Self {
14582             get_buffer_device_address_khr: unsafe {
14583                 unsafe extern "system" fn get_buffer_device_address_khr(
14584                     _device: Device,
14585                     _p_info: *const BufferDeviceAddressInfo,
14586                 ) -> DeviceAddress {
14587                     panic!(concat!(
14588                         "Unable to load ",
14589                         stringify!(get_buffer_device_address_khr)
14590                     ))
14591                 }
14592                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14593                     b"vkGetBufferDeviceAddressKHR\0",
14594                 );
14595                 let val = _f(cname);
14596                 if val.is_null() {
14597                     get_buffer_device_address_khr
14598                 } else {
14599                     ::std::mem::transmute(val)
14600                 }
14601             },
14602             get_buffer_opaque_capture_address_khr: unsafe {
14603                 unsafe extern "system" fn get_buffer_opaque_capture_address_khr(
14604                     _device: Device,
14605                     _p_info: *const BufferDeviceAddressInfo,
14606                 ) -> u64 {
14607                     panic!(concat!(
14608                         "Unable to load ",
14609                         stringify!(get_buffer_opaque_capture_address_khr)
14610                     ))
14611                 }
14612                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14613                     b"vkGetBufferOpaqueCaptureAddressKHR\0",
14614                 );
14615                 let val = _f(cname);
14616                 if val.is_null() {
14617                     get_buffer_opaque_capture_address_khr
14618                 } else {
14619                     ::std::mem::transmute(val)
14620                 }
14621             },
14622             get_device_memory_opaque_capture_address_khr: unsafe {
14623                 unsafe extern "system" fn get_device_memory_opaque_capture_address_khr(
14624                     _device: Device,
14625                     _p_info: *const DeviceMemoryOpaqueCaptureAddressInfo,
14626                 ) -> u64 {
14627                     panic!(concat!(
14628                         "Unable to load ",
14629                         stringify!(get_device_memory_opaque_capture_address_khr)
14630                     ))
14631                 }
14632                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14633                     b"vkGetDeviceMemoryOpaqueCaptureAddressKHR\0",
14634                 );
14635                 let val = _f(cname);
14636                 if val.is_null() {
14637                     get_device_memory_opaque_capture_address_khr
14638                 } else {
14639                     ::std::mem::transmute(val)
14640                 }
14641             },
14642         }
14643     }
14644 }
14645 #[doc = "Generated from 'VK_KHR_buffer_device_address'"]
14646 impl BufferCreateFlags {
14647     pub const DEVICE_ADDRESS_CAPTURE_REPLAY_KHR: Self = Self::DEVICE_ADDRESS_CAPTURE_REPLAY;
14648 }
14649 #[doc = "Generated from 'VK_KHR_buffer_device_address'"]
14650 impl BufferUsageFlags {
14651     pub const SHADER_DEVICE_ADDRESS_KHR: Self = Self::SHADER_DEVICE_ADDRESS;
14652 }
14653 #[doc = "Generated from 'VK_KHR_buffer_device_address'"]
14654 impl MemoryAllocateFlags {
14655     pub const DEVICE_ADDRESS_KHR: Self = Self::DEVICE_ADDRESS;
14656     pub const DEVICE_ADDRESS_CAPTURE_REPLAY_KHR: Self = Self::DEVICE_ADDRESS_CAPTURE_REPLAY;
14657 }
14658 #[doc = "Generated from 'VK_KHR_buffer_device_address'"]
14659 impl Result {
14660     pub const ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR: Self =
14661         Self::ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS;
14662 }
14663 #[doc = "Generated from 'VK_KHR_buffer_device_address'"]
14664 impl StructureType {
14665     pub const PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR: Self =
14666         Self::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES;
14667     pub const BUFFER_DEVICE_ADDRESS_INFO_KHR: Self = Self::BUFFER_DEVICE_ADDRESS_INFO;
14668     pub const BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR: Self =
14669         Self::BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO;
14670     pub const MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR: Self =
14671         Self::MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO;
14672     pub const DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR: Self =
14673         Self::DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO;
14674 }
14675 impl ExtExtension259Fn {
14676     #[inline]
name() -> &'static ::std::ffi::CStr14677     pub const fn name() -> &'static ::std::ffi::CStr {
14678         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_259\0") }
14679     }
14680     pub const SPEC_VERSION: u32 = 0u32;
14681 }
14682 #[derive(Clone)]
14683 pub struct ExtExtension259Fn {}
14684 unsafe impl Send for ExtExtension259Fn {}
14685 unsafe impl Sync for ExtExtension259Fn {}
14686 impl ExtExtension259Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14687     pub fn load<F>(mut _f: F) -> Self
14688     where
14689         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14690     {
14691         Self {}
14692     }
14693 }
14694 #[doc = "Generated from 'VK_EXT_extension_259'"]
14695 impl FormatFeatureFlags2 {
14696     pub const RESERVED_44_EXT: Self =
14697         Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
14698     pub const RESERVED_45_EXT: Self =
14699         Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
14700 }
14701 #[doc = "Generated from 'VK_EXT_extension_259'"]
14702 impl ImageCreateFlags {
14703     pub const RESERVED_19_EXT: Self = Self(0b1000_0000_0000_0000_0000);
14704 }
14705 #[doc = "Generated from 'VK_EXT_extension_259'"]
14706 impl QueueFlags {
14707     pub const RESERVED_9_EXT: Self = Self(0b10_0000_0000);
14708 }
14709 impl ExtLineRasterizationFn {
14710     #[inline]
name() -> &'static ::std::ffi::CStr14711     pub const fn name() -> &'static ::std::ffi::CStr {
14712         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_line_rasterization\0") }
14713     }
14714     pub const SPEC_VERSION: u32 = 1u32;
14715 }
14716 #[allow(non_camel_case_types)]
14717 pub type PFN_vkCmdSetLineStippleEXT = unsafe extern "system" fn(
14718     command_buffer: CommandBuffer,
14719     line_stipple_factor: u32,
14720     line_stipple_pattern: u16,
14721 );
14722 #[derive(Clone)]
14723 pub struct ExtLineRasterizationFn {
14724     pub cmd_set_line_stipple_ext: PFN_vkCmdSetLineStippleEXT,
14725 }
14726 unsafe impl Send for ExtLineRasterizationFn {}
14727 unsafe impl Sync for ExtLineRasterizationFn {}
14728 impl ExtLineRasterizationFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14729     pub fn load<F>(mut _f: F) -> Self
14730     where
14731         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14732     {
14733         Self {
14734             cmd_set_line_stipple_ext: unsafe {
14735                 unsafe extern "system" fn cmd_set_line_stipple_ext(
14736                     _command_buffer: CommandBuffer,
14737                     _line_stipple_factor: u32,
14738                     _line_stipple_pattern: u16,
14739                 ) {
14740                     panic!(concat!(
14741                         "Unable to load ",
14742                         stringify!(cmd_set_line_stipple_ext)
14743                     ))
14744                 }
14745                 let cname =
14746                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLineStippleEXT\0");
14747                 let val = _f(cname);
14748                 if val.is_null() {
14749                     cmd_set_line_stipple_ext
14750                 } else {
14751                     ::std::mem::transmute(val)
14752                 }
14753             },
14754         }
14755     }
14756 }
14757 #[doc = "Generated from 'VK_EXT_line_rasterization'"]
14758 impl DynamicState {
14759     pub const LINE_STIPPLE_EXT: Self = Self(1_000_259_000);
14760 }
14761 #[doc = "Generated from 'VK_EXT_line_rasterization'"]
14762 impl StructureType {
14763     pub const PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT: Self = Self(1_000_259_000);
14764     pub const PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT: Self = Self(1_000_259_001);
14765     pub const PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT: Self = Self(1_000_259_002);
14766 }
14767 impl ExtShaderAtomicFloatFn {
14768     #[inline]
name() -> &'static ::std::ffi::CStr14769     pub const fn name() -> &'static ::std::ffi::CStr {
14770         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_atomic_float\0") }
14771     }
14772     pub const SPEC_VERSION: u32 = 1u32;
14773 }
14774 #[derive(Clone)]
14775 pub struct ExtShaderAtomicFloatFn {}
14776 unsafe impl Send for ExtShaderAtomicFloatFn {}
14777 unsafe impl Sync for ExtShaderAtomicFloatFn {}
14778 impl ExtShaderAtomicFloatFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14779     pub fn load<F>(mut _f: F) -> Self
14780     where
14781         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14782     {
14783         Self {}
14784     }
14785 }
14786 #[doc = "Generated from 'VK_EXT_shader_atomic_float'"]
14787 impl StructureType {
14788     pub const PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT: Self = Self(1_000_260_000);
14789 }
14790 impl ExtHostQueryResetFn {
14791     #[inline]
name() -> &'static ::std::ffi::CStr14792     pub const fn name() -> &'static ::std::ffi::CStr {
14793         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_host_query_reset\0") }
14794     }
14795     pub const SPEC_VERSION: u32 = 1u32;
14796 }
14797 #[allow(non_camel_case_types)]
14798 pub type PFN_vkResetQueryPool = unsafe extern "system" fn(
14799     device: Device,
14800     query_pool: QueryPool,
14801     first_query: u32,
14802     query_count: u32,
14803 );
14804 #[derive(Clone)]
14805 pub struct ExtHostQueryResetFn {
14806     pub reset_query_pool_ext: PFN_vkResetQueryPool,
14807 }
14808 unsafe impl Send for ExtHostQueryResetFn {}
14809 unsafe impl Sync for ExtHostQueryResetFn {}
14810 impl ExtHostQueryResetFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14811     pub fn load<F>(mut _f: F) -> Self
14812     where
14813         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14814     {
14815         Self {
14816             reset_query_pool_ext: unsafe {
14817                 unsafe extern "system" fn reset_query_pool_ext(
14818                     _device: Device,
14819                     _query_pool: QueryPool,
14820                     _first_query: u32,
14821                     _query_count: u32,
14822                 ) {
14823                     panic!(concat!("Unable to load ", stringify!(reset_query_pool_ext)))
14824                 }
14825                 let cname =
14826                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkResetQueryPoolEXT\0");
14827                 let val = _f(cname);
14828                 if val.is_null() {
14829                     reset_query_pool_ext
14830                 } else {
14831                     ::std::mem::transmute(val)
14832                 }
14833             },
14834         }
14835     }
14836 }
14837 #[doc = "Generated from 'VK_EXT_host_query_reset'"]
14838 impl StructureType {
14839     pub const PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT: Self =
14840         Self::PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES;
14841 }
14842 impl GgpExtension263Fn {
14843     #[inline]
name() -> &'static ::std::ffi::CStr14844     pub const fn name() -> &'static ::std::ffi::CStr {
14845         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GGP_extension_263\0") }
14846     }
14847     pub const SPEC_VERSION: u32 = 0u32;
14848 }
14849 #[derive(Clone)]
14850 pub struct GgpExtension263Fn {}
14851 unsafe impl Send for GgpExtension263Fn {}
14852 unsafe impl Sync for GgpExtension263Fn {}
14853 impl GgpExtension263Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14854     pub fn load<F>(mut _f: F) -> Self
14855     where
14856         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14857     {
14858         Self {}
14859     }
14860 }
14861 impl BrcmExtension264Fn {
14862     #[inline]
name() -> &'static ::std::ffi::CStr14863     pub const fn name() -> &'static ::std::ffi::CStr {
14864         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_BRCM_extension_264\0") }
14865     }
14866     pub const SPEC_VERSION: u32 = 0u32;
14867 }
14868 #[derive(Clone)]
14869 pub struct BrcmExtension264Fn {}
14870 unsafe impl Send for BrcmExtension264Fn {}
14871 unsafe impl Sync for BrcmExtension264Fn {}
14872 impl BrcmExtension264Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14873     pub fn load<F>(mut _f: F) -> Self
14874     where
14875         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14876     {
14877         Self {}
14878     }
14879 }
14880 impl BrcmExtension265Fn {
14881     #[inline]
name() -> &'static ::std::ffi::CStr14882     pub const fn name() -> &'static ::std::ffi::CStr {
14883         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_BRCM_extension_265\0") }
14884     }
14885     pub const SPEC_VERSION: u32 = 0u32;
14886 }
14887 #[derive(Clone)]
14888 pub struct BrcmExtension265Fn {}
14889 unsafe impl Send for BrcmExtension265Fn {}
14890 unsafe impl Sync for BrcmExtension265Fn {}
14891 impl BrcmExtension265Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14892     pub fn load<F>(mut _f: F) -> Self
14893     where
14894         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14895     {
14896         Self {}
14897     }
14898 }
14899 impl ExtIndexTypeUint8Fn {
14900     #[inline]
name() -> &'static ::std::ffi::CStr14901     pub const fn name() -> &'static ::std::ffi::CStr {
14902         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_index_type_uint8\0") }
14903     }
14904     pub const SPEC_VERSION: u32 = 1u32;
14905 }
14906 #[derive(Clone)]
14907 pub struct ExtIndexTypeUint8Fn {}
14908 unsafe impl Send for ExtIndexTypeUint8Fn {}
14909 unsafe impl Sync for ExtIndexTypeUint8Fn {}
14910 impl ExtIndexTypeUint8Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14911     pub fn load<F>(mut _f: F) -> Self
14912     where
14913         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14914     {
14915         Self {}
14916     }
14917 }
14918 #[doc = "Generated from 'VK_EXT_index_type_uint8'"]
14919 impl IndexType {
14920     pub const UINT8_EXT: Self = Self(1_000_265_000);
14921 }
14922 #[doc = "Generated from 'VK_EXT_index_type_uint8'"]
14923 impl StructureType {
14924     pub const PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT: Self = Self(1_000_265_000);
14925 }
14926 impl ExtExtension267Fn {
14927     #[inline]
name() -> &'static ::std::ffi::CStr14928     pub const fn name() -> &'static ::std::ffi::CStr {
14929         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_267\0") }
14930     }
14931     pub const SPEC_VERSION: u32 = 0u32;
14932 }
14933 #[derive(Clone)]
14934 pub struct ExtExtension267Fn {}
14935 unsafe impl Send for ExtExtension267Fn {}
14936 unsafe impl Sync for ExtExtension267Fn {}
14937 impl ExtExtension267Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14938     pub fn load<F>(mut _f: F) -> Self
14939     where
14940         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14941     {
14942         Self {}
14943     }
14944 }
14945 impl ExtExtendedDynamicStateFn {
14946     #[inline]
name() -> &'static ::std::ffi::CStr14947     pub const fn name() -> &'static ::std::ffi::CStr {
14948         unsafe {
14949             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extended_dynamic_state\0")
14950         }
14951     }
14952     pub const SPEC_VERSION: u32 = 1u32;
14953 }
14954 #[allow(non_camel_case_types)]
14955 pub type PFN_vkCmdSetCullMode =
14956     unsafe extern "system" fn(command_buffer: CommandBuffer, cull_mode: CullModeFlags);
14957 #[allow(non_camel_case_types)]
14958 pub type PFN_vkCmdSetFrontFace =
14959     unsafe extern "system" fn(command_buffer: CommandBuffer, front_face: FrontFace);
14960 #[allow(non_camel_case_types)]
14961 pub type PFN_vkCmdSetPrimitiveTopology =
14962     unsafe extern "system" fn(command_buffer: CommandBuffer, primitive_topology: PrimitiveTopology);
14963 #[allow(non_camel_case_types)]
14964 pub type PFN_vkCmdSetViewportWithCount = unsafe extern "system" fn(
14965     command_buffer: CommandBuffer,
14966     viewport_count: u32,
14967     p_viewports: *const Viewport,
14968 );
14969 #[allow(non_camel_case_types)]
14970 pub type PFN_vkCmdSetScissorWithCount = unsafe extern "system" fn(
14971     command_buffer: CommandBuffer,
14972     scissor_count: u32,
14973     p_scissors: *const Rect2D,
14974 );
14975 #[allow(non_camel_case_types)]
14976 pub type PFN_vkCmdBindVertexBuffers2 = unsafe extern "system" fn(
14977     command_buffer: CommandBuffer,
14978     first_binding: u32,
14979     binding_count: u32,
14980     p_buffers: *const Buffer,
14981     p_offsets: *const DeviceSize,
14982     p_sizes: *const DeviceSize,
14983     p_strides: *const DeviceSize,
14984 );
14985 #[allow(non_camel_case_types)]
14986 pub type PFN_vkCmdSetDepthTestEnable =
14987     unsafe extern "system" fn(command_buffer: CommandBuffer, depth_test_enable: Bool32);
14988 #[allow(non_camel_case_types)]
14989 pub type PFN_vkCmdSetDepthWriteEnable =
14990     unsafe extern "system" fn(command_buffer: CommandBuffer, depth_write_enable: Bool32);
14991 #[allow(non_camel_case_types)]
14992 pub type PFN_vkCmdSetDepthCompareOp =
14993     unsafe extern "system" fn(command_buffer: CommandBuffer, depth_compare_op: CompareOp);
14994 #[allow(non_camel_case_types)]
14995 pub type PFN_vkCmdSetDepthBoundsTestEnable =
14996     unsafe extern "system" fn(command_buffer: CommandBuffer, depth_bounds_test_enable: Bool32);
14997 #[allow(non_camel_case_types)]
14998 pub type PFN_vkCmdSetStencilTestEnable =
14999     unsafe extern "system" fn(command_buffer: CommandBuffer, stencil_test_enable: Bool32);
15000 #[allow(non_camel_case_types)]
15001 pub type PFN_vkCmdSetStencilOp = unsafe extern "system" fn(
15002     command_buffer: CommandBuffer,
15003     face_mask: StencilFaceFlags,
15004     fail_op: StencilOp,
15005     pass_op: StencilOp,
15006     depth_fail_op: StencilOp,
15007     compare_op: CompareOp,
15008 );
15009 #[derive(Clone)]
15010 pub struct ExtExtendedDynamicStateFn {
15011     pub cmd_set_cull_mode_ext: PFN_vkCmdSetCullMode,
15012     pub cmd_set_front_face_ext: PFN_vkCmdSetFrontFace,
15013     pub cmd_set_primitive_topology_ext: PFN_vkCmdSetPrimitiveTopology,
15014     pub cmd_set_viewport_with_count_ext: PFN_vkCmdSetViewportWithCount,
15015     pub cmd_set_scissor_with_count_ext: PFN_vkCmdSetScissorWithCount,
15016     pub cmd_bind_vertex_buffers2_ext: PFN_vkCmdBindVertexBuffers2,
15017     pub cmd_set_depth_test_enable_ext: PFN_vkCmdSetDepthTestEnable,
15018     pub cmd_set_depth_write_enable_ext: PFN_vkCmdSetDepthWriteEnable,
15019     pub cmd_set_depth_compare_op_ext: PFN_vkCmdSetDepthCompareOp,
15020     pub cmd_set_depth_bounds_test_enable_ext: PFN_vkCmdSetDepthBoundsTestEnable,
15021     pub cmd_set_stencil_test_enable_ext: PFN_vkCmdSetStencilTestEnable,
15022     pub cmd_set_stencil_op_ext: PFN_vkCmdSetStencilOp,
15023 }
15024 unsafe impl Send for ExtExtendedDynamicStateFn {}
15025 unsafe impl Sync for ExtExtendedDynamicStateFn {}
15026 impl ExtExtendedDynamicStateFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15027     pub fn load<F>(mut _f: F) -> Self
15028     where
15029         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15030     {
15031         Self {
15032             cmd_set_cull_mode_ext: unsafe {
15033                 unsafe extern "system" fn cmd_set_cull_mode_ext(
15034                     _command_buffer: CommandBuffer,
15035                     _cull_mode: CullModeFlags,
15036                 ) {
15037                     panic!(concat!(
15038                         "Unable to load ",
15039                         stringify!(cmd_set_cull_mode_ext)
15040                     ))
15041                 }
15042                 let cname =
15043                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCullModeEXT\0");
15044                 let val = _f(cname);
15045                 if val.is_null() {
15046                     cmd_set_cull_mode_ext
15047                 } else {
15048                     ::std::mem::transmute(val)
15049                 }
15050             },
15051             cmd_set_front_face_ext: unsafe {
15052                 unsafe extern "system" fn cmd_set_front_face_ext(
15053                     _command_buffer: CommandBuffer,
15054                     _front_face: FrontFace,
15055                 ) {
15056                     panic!(concat!(
15057                         "Unable to load ",
15058                         stringify!(cmd_set_front_face_ext)
15059                     ))
15060                 }
15061                 let cname =
15062                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetFrontFaceEXT\0");
15063                 let val = _f(cname);
15064                 if val.is_null() {
15065                     cmd_set_front_face_ext
15066                 } else {
15067                     ::std::mem::transmute(val)
15068                 }
15069             },
15070             cmd_set_primitive_topology_ext: unsafe {
15071                 unsafe extern "system" fn cmd_set_primitive_topology_ext(
15072                     _command_buffer: CommandBuffer,
15073                     _primitive_topology: PrimitiveTopology,
15074                 ) {
15075                     panic!(concat!(
15076                         "Unable to load ",
15077                         stringify!(cmd_set_primitive_topology_ext)
15078                     ))
15079                 }
15080                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15081                     b"vkCmdSetPrimitiveTopologyEXT\0",
15082                 );
15083                 let val = _f(cname);
15084                 if val.is_null() {
15085                     cmd_set_primitive_topology_ext
15086                 } else {
15087                     ::std::mem::transmute(val)
15088                 }
15089             },
15090             cmd_set_viewport_with_count_ext: unsafe {
15091                 unsafe extern "system" fn cmd_set_viewport_with_count_ext(
15092                     _command_buffer: CommandBuffer,
15093                     _viewport_count: u32,
15094                     _p_viewports: *const Viewport,
15095                 ) {
15096                     panic!(concat!(
15097                         "Unable to load ",
15098                         stringify!(cmd_set_viewport_with_count_ext)
15099                     ))
15100                 }
15101                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15102                     b"vkCmdSetViewportWithCountEXT\0",
15103                 );
15104                 let val = _f(cname);
15105                 if val.is_null() {
15106                     cmd_set_viewport_with_count_ext
15107                 } else {
15108                     ::std::mem::transmute(val)
15109                 }
15110             },
15111             cmd_set_scissor_with_count_ext: unsafe {
15112                 unsafe extern "system" fn cmd_set_scissor_with_count_ext(
15113                     _command_buffer: CommandBuffer,
15114                     _scissor_count: u32,
15115                     _p_scissors: *const Rect2D,
15116                 ) {
15117                     panic!(concat!(
15118                         "Unable to load ",
15119                         stringify!(cmd_set_scissor_with_count_ext)
15120                     ))
15121                 }
15122                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15123                     b"vkCmdSetScissorWithCountEXT\0",
15124                 );
15125                 let val = _f(cname);
15126                 if val.is_null() {
15127                     cmd_set_scissor_with_count_ext
15128                 } else {
15129                     ::std::mem::transmute(val)
15130                 }
15131             },
15132             cmd_bind_vertex_buffers2_ext: unsafe {
15133                 unsafe extern "system" fn cmd_bind_vertex_buffers2_ext(
15134                     _command_buffer: CommandBuffer,
15135                     _first_binding: u32,
15136                     _binding_count: u32,
15137                     _p_buffers: *const Buffer,
15138                     _p_offsets: *const DeviceSize,
15139                     _p_sizes: *const DeviceSize,
15140                     _p_strides: *const DeviceSize,
15141                 ) {
15142                     panic!(concat!(
15143                         "Unable to load ",
15144                         stringify!(cmd_bind_vertex_buffers2_ext)
15145                     ))
15146                 }
15147                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15148                     b"vkCmdBindVertexBuffers2EXT\0",
15149                 );
15150                 let val = _f(cname);
15151                 if val.is_null() {
15152                     cmd_bind_vertex_buffers2_ext
15153                 } else {
15154                     ::std::mem::transmute(val)
15155                 }
15156             },
15157             cmd_set_depth_test_enable_ext: unsafe {
15158                 unsafe extern "system" fn cmd_set_depth_test_enable_ext(
15159                     _command_buffer: CommandBuffer,
15160                     _depth_test_enable: Bool32,
15161                 ) {
15162                     panic!(concat!(
15163                         "Unable to load ",
15164                         stringify!(cmd_set_depth_test_enable_ext)
15165                     ))
15166                 }
15167                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15168                     b"vkCmdSetDepthTestEnableEXT\0",
15169                 );
15170                 let val = _f(cname);
15171                 if val.is_null() {
15172                     cmd_set_depth_test_enable_ext
15173                 } else {
15174                     ::std::mem::transmute(val)
15175                 }
15176             },
15177             cmd_set_depth_write_enable_ext: unsafe {
15178                 unsafe extern "system" fn cmd_set_depth_write_enable_ext(
15179                     _command_buffer: CommandBuffer,
15180                     _depth_write_enable: Bool32,
15181                 ) {
15182                     panic!(concat!(
15183                         "Unable to load ",
15184                         stringify!(cmd_set_depth_write_enable_ext)
15185                     ))
15186                 }
15187                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15188                     b"vkCmdSetDepthWriteEnableEXT\0",
15189                 );
15190                 let val = _f(cname);
15191                 if val.is_null() {
15192                     cmd_set_depth_write_enable_ext
15193                 } else {
15194                     ::std::mem::transmute(val)
15195                 }
15196             },
15197             cmd_set_depth_compare_op_ext: unsafe {
15198                 unsafe extern "system" fn cmd_set_depth_compare_op_ext(
15199                     _command_buffer: CommandBuffer,
15200                     _depth_compare_op: CompareOp,
15201                 ) {
15202                     panic!(concat!(
15203                         "Unable to load ",
15204                         stringify!(cmd_set_depth_compare_op_ext)
15205                     ))
15206                 }
15207                 let cname =
15208                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthCompareOpEXT\0");
15209                 let val = _f(cname);
15210                 if val.is_null() {
15211                     cmd_set_depth_compare_op_ext
15212                 } else {
15213                     ::std::mem::transmute(val)
15214                 }
15215             },
15216             cmd_set_depth_bounds_test_enable_ext: unsafe {
15217                 unsafe extern "system" fn cmd_set_depth_bounds_test_enable_ext(
15218                     _command_buffer: CommandBuffer,
15219                     _depth_bounds_test_enable: Bool32,
15220                 ) {
15221                     panic!(concat!(
15222                         "Unable to load ",
15223                         stringify!(cmd_set_depth_bounds_test_enable_ext)
15224                     ))
15225                 }
15226                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15227                     b"vkCmdSetDepthBoundsTestEnableEXT\0",
15228                 );
15229                 let val = _f(cname);
15230                 if val.is_null() {
15231                     cmd_set_depth_bounds_test_enable_ext
15232                 } else {
15233                     ::std::mem::transmute(val)
15234                 }
15235             },
15236             cmd_set_stencil_test_enable_ext: unsafe {
15237                 unsafe extern "system" fn cmd_set_stencil_test_enable_ext(
15238                     _command_buffer: CommandBuffer,
15239                     _stencil_test_enable: Bool32,
15240                 ) {
15241                     panic!(concat!(
15242                         "Unable to load ",
15243                         stringify!(cmd_set_stencil_test_enable_ext)
15244                     ))
15245                 }
15246                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15247                     b"vkCmdSetStencilTestEnableEXT\0",
15248                 );
15249                 let val = _f(cname);
15250                 if val.is_null() {
15251                     cmd_set_stencil_test_enable_ext
15252                 } else {
15253                     ::std::mem::transmute(val)
15254                 }
15255             },
15256             cmd_set_stencil_op_ext: unsafe {
15257                 unsafe extern "system" fn cmd_set_stencil_op_ext(
15258                     _command_buffer: CommandBuffer,
15259                     _face_mask: StencilFaceFlags,
15260                     _fail_op: StencilOp,
15261                     _pass_op: StencilOp,
15262                     _depth_fail_op: StencilOp,
15263                     _compare_op: CompareOp,
15264                 ) {
15265                     panic!(concat!(
15266                         "Unable to load ",
15267                         stringify!(cmd_set_stencil_op_ext)
15268                     ))
15269                 }
15270                 let cname =
15271                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilOpEXT\0");
15272                 let val = _f(cname);
15273                 if val.is_null() {
15274                     cmd_set_stencil_op_ext
15275                 } else {
15276                     ::std::mem::transmute(val)
15277                 }
15278             },
15279         }
15280     }
15281 }
15282 #[doc = "Generated from 'VK_EXT_extended_dynamic_state'"]
15283 impl DynamicState {
15284     pub const CULL_MODE_EXT: Self = Self::CULL_MODE;
15285     pub const FRONT_FACE_EXT: Self = Self::FRONT_FACE;
15286     pub const PRIMITIVE_TOPOLOGY_EXT: Self = Self::PRIMITIVE_TOPOLOGY;
15287     pub const VIEWPORT_WITH_COUNT_EXT: Self = Self::VIEWPORT_WITH_COUNT;
15288     pub const SCISSOR_WITH_COUNT_EXT: Self = Self::SCISSOR_WITH_COUNT;
15289     pub const VERTEX_INPUT_BINDING_STRIDE_EXT: Self = Self::VERTEX_INPUT_BINDING_STRIDE;
15290     pub const DEPTH_TEST_ENABLE_EXT: Self = Self::DEPTH_TEST_ENABLE;
15291     pub const DEPTH_WRITE_ENABLE_EXT: Self = Self::DEPTH_WRITE_ENABLE;
15292     pub const DEPTH_COMPARE_OP_EXT: Self = Self::DEPTH_COMPARE_OP;
15293     pub const DEPTH_BOUNDS_TEST_ENABLE_EXT: Self = Self::DEPTH_BOUNDS_TEST_ENABLE;
15294     pub const STENCIL_TEST_ENABLE_EXT: Self = Self::STENCIL_TEST_ENABLE;
15295     pub const STENCIL_OP_EXT: Self = Self::STENCIL_OP;
15296 }
15297 #[doc = "Generated from 'VK_EXT_extended_dynamic_state'"]
15298 impl StructureType {
15299     #[doc = "Not promoted to 1.3"]
15300     pub const PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: Self = Self(1_000_267_000);
15301 }
15302 impl KhrDeferredHostOperationsFn {
15303     #[inline]
name() -> &'static ::std::ffi::CStr15304     pub const fn name() -> &'static ::std::ffi::CStr {
15305         unsafe {
15306             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_deferred_host_operations\0")
15307         }
15308     }
15309     pub const SPEC_VERSION: u32 = 4u32;
15310 }
15311 #[allow(non_camel_case_types)]
15312 pub type PFN_vkCreateDeferredOperationKHR = unsafe extern "system" fn(
15313     device: Device,
15314     p_allocator: *const AllocationCallbacks,
15315     p_deferred_operation: *mut DeferredOperationKHR,
15316 ) -> Result;
15317 #[allow(non_camel_case_types)]
15318 pub type PFN_vkDestroyDeferredOperationKHR = unsafe extern "system" fn(
15319     device: Device,
15320     operation: DeferredOperationKHR,
15321     p_allocator: *const AllocationCallbacks,
15322 );
15323 #[allow(non_camel_case_types)]
15324 pub type PFN_vkGetDeferredOperationMaxConcurrencyKHR =
15325     unsafe extern "system" fn(device: Device, operation: DeferredOperationKHR) -> u32;
15326 #[allow(non_camel_case_types)]
15327 pub type PFN_vkGetDeferredOperationResultKHR =
15328     unsafe extern "system" fn(device: Device, operation: DeferredOperationKHR) -> Result;
15329 #[allow(non_camel_case_types)]
15330 pub type PFN_vkDeferredOperationJoinKHR =
15331     unsafe extern "system" fn(device: Device, operation: DeferredOperationKHR) -> Result;
15332 #[derive(Clone)]
15333 pub struct KhrDeferredHostOperationsFn {
15334     pub create_deferred_operation_khr: PFN_vkCreateDeferredOperationKHR,
15335     pub destroy_deferred_operation_khr: PFN_vkDestroyDeferredOperationKHR,
15336     pub get_deferred_operation_max_concurrency_khr: PFN_vkGetDeferredOperationMaxConcurrencyKHR,
15337     pub get_deferred_operation_result_khr: PFN_vkGetDeferredOperationResultKHR,
15338     pub deferred_operation_join_khr: PFN_vkDeferredOperationJoinKHR,
15339 }
15340 unsafe impl Send for KhrDeferredHostOperationsFn {}
15341 unsafe impl Sync for KhrDeferredHostOperationsFn {}
15342 impl KhrDeferredHostOperationsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15343     pub fn load<F>(mut _f: F) -> Self
15344     where
15345         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15346     {
15347         Self {
15348             create_deferred_operation_khr: unsafe {
15349                 unsafe extern "system" fn create_deferred_operation_khr(
15350                     _device: Device,
15351                     _p_allocator: *const AllocationCallbacks,
15352                     _p_deferred_operation: *mut DeferredOperationKHR,
15353                 ) -> Result {
15354                     panic!(concat!(
15355                         "Unable to load ",
15356                         stringify!(create_deferred_operation_khr)
15357                     ))
15358                 }
15359                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15360                     b"vkCreateDeferredOperationKHR\0",
15361                 );
15362                 let val = _f(cname);
15363                 if val.is_null() {
15364                     create_deferred_operation_khr
15365                 } else {
15366                     ::std::mem::transmute(val)
15367                 }
15368             },
15369             destroy_deferred_operation_khr: unsafe {
15370                 unsafe extern "system" fn destroy_deferred_operation_khr(
15371                     _device: Device,
15372                     _operation: DeferredOperationKHR,
15373                     _p_allocator: *const AllocationCallbacks,
15374                 ) {
15375                     panic!(concat!(
15376                         "Unable to load ",
15377                         stringify!(destroy_deferred_operation_khr)
15378                     ))
15379                 }
15380                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15381                     b"vkDestroyDeferredOperationKHR\0",
15382                 );
15383                 let val = _f(cname);
15384                 if val.is_null() {
15385                     destroy_deferred_operation_khr
15386                 } else {
15387                     ::std::mem::transmute(val)
15388                 }
15389             },
15390             get_deferred_operation_max_concurrency_khr: unsafe {
15391                 unsafe extern "system" fn get_deferred_operation_max_concurrency_khr(
15392                     _device: Device,
15393                     _operation: DeferredOperationKHR,
15394                 ) -> u32 {
15395                     panic!(concat!(
15396                         "Unable to load ",
15397                         stringify!(get_deferred_operation_max_concurrency_khr)
15398                     ))
15399                 }
15400                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15401                     b"vkGetDeferredOperationMaxConcurrencyKHR\0",
15402                 );
15403                 let val = _f(cname);
15404                 if val.is_null() {
15405                     get_deferred_operation_max_concurrency_khr
15406                 } else {
15407                     ::std::mem::transmute(val)
15408                 }
15409             },
15410             get_deferred_operation_result_khr: unsafe {
15411                 unsafe extern "system" fn get_deferred_operation_result_khr(
15412                     _device: Device,
15413                     _operation: DeferredOperationKHR,
15414                 ) -> Result {
15415                     panic!(concat!(
15416                         "Unable to load ",
15417                         stringify!(get_deferred_operation_result_khr)
15418                     ))
15419                 }
15420                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15421                     b"vkGetDeferredOperationResultKHR\0",
15422                 );
15423                 let val = _f(cname);
15424                 if val.is_null() {
15425                     get_deferred_operation_result_khr
15426                 } else {
15427                     ::std::mem::transmute(val)
15428                 }
15429             },
15430             deferred_operation_join_khr: unsafe {
15431                 unsafe extern "system" fn deferred_operation_join_khr(
15432                     _device: Device,
15433                     _operation: DeferredOperationKHR,
15434                 ) -> Result {
15435                     panic!(concat!(
15436                         "Unable to load ",
15437                         stringify!(deferred_operation_join_khr)
15438                     ))
15439                 }
15440                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15441                     b"vkDeferredOperationJoinKHR\0",
15442                 );
15443                 let val = _f(cname);
15444                 if val.is_null() {
15445                     deferred_operation_join_khr
15446                 } else {
15447                     ::std::mem::transmute(val)
15448                 }
15449             },
15450         }
15451     }
15452 }
15453 #[doc = "Generated from 'VK_KHR_deferred_host_operations'"]
15454 impl ObjectType {
15455     pub const DEFERRED_OPERATION_KHR: Self = Self(1_000_268_000);
15456 }
15457 #[doc = "Generated from 'VK_KHR_deferred_host_operations'"]
15458 impl Result {
15459     pub const THREAD_IDLE_KHR: Self = Self(1_000_268_000);
15460     pub const THREAD_DONE_KHR: Self = Self(1_000_268_001);
15461     pub const OPERATION_DEFERRED_KHR: Self = Self(1_000_268_002);
15462     pub const OPERATION_NOT_DEFERRED_KHR: Self = Self(1_000_268_003);
15463 }
15464 impl KhrPipelineExecutablePropertiesFn {
15465     #[inline]
name() -> &'static ::std::ffi::CStr15466     pub const fn name() -> &'static ::std::ffi::CStr {
15467         unsafe {
15468             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15469                 b"VK_KHR_pipeline_executable_properties\0",
15470             )
15471         }
15472     }
15473     pub const SPEC_VERSION: u32 = 1u32;
15474 }
15475 #[allow(non_camel_case_types)]
15476 pub type PFN_vkGetPipelineExecutablePropertiesKHR = unsafe extern "system" fn(
15477     device: Device,
15478     p_pipeline_info: *const PipelineInfoKHR,
15479     p_executable_count: *mut u32,
15480     p_properties: *mut PipelineExecutablePropertiesKHR,
15481 ) -> Result;
15482 #[allow(non_camel_case_types)]
15483 pub type PFN_vkGetPipelineExecutableStatisticsKHR = unsafe extern "system" fn(
15484     device: Device,
15485     p_executable_info: *const PipelineExecutableInfoKHR,
15486     p_statistic_count: *mut u32,
15487     p_statistics: *mut PipelineExecutableStatisticKHR,
15488 ) -> Result;
15489 #[allow(non_camel_case_types)]
15490 pub type PFN_vkGetPipelineExecutableInternalRepresentationsKHR =
15491     unsafe extern "system" fn(
15492         device: Device,
15493         p_executable_info: *const PipelineExecutableInfoKHR,
15494         p_internal_representation_count: *mut u32,
15495         p_internal_representations: *mut PipelineExecutableInternalRepresentationKHR,
15496     ) -> Result;
15497 #[derive(Clone)]
15498 pub struct KhrPipelineExecutablePropertiesFn {
15499     pub get_pipeline_executable_properties_khr: PFN_vkGetPipelineExecutablePropertiesKHR,
15500     pub get_pipeline_executable_statistics_khr: PFN_vkGetPipelineExecutableStatisticsKHR,
15501     pub get_pipeline_executable_internal_representations_khr:
15502         PFN_vkGetPipelineExecutableInternalRepresentationsKHR,
15503 }
15504 unsafe impl Send for KhrPipelineExecutablePropertiesFn {}
15505 unsafe impl Sync for KhrPipelineExecutablePropertiesFn {}
15506 impl KhrPipelineExecutablePropertiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15507     pub fn load<F>(mut _f: F) -> Self
15508     where
15509         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15510     {
15511         Self {
15512             get_pipeline_executable_properties_khr: unsafe {
15513                 unsafe extern "system" fn get_pipeline_executable_properties_khr(
15514                     _device: Device,
15515                     _p_pipeline_info: *const PipelineInfoKHR,
15516                     _p_executable_count: *mut u32,
15517                     _p_properties: *mut PipelineExecutablePropertiesKHR,
15518                 ) -> Result {
15519                     panic!(concat!(
15520                         "Unable to load ",
15521                         stringify!(get_pipeline_executable_properties_khr)
15522                     ))
15523                 }
15524                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15525                     b"vkGetPipelineExecutablePropertiesKHR\0",
15526                 );
15527                 let val = _f(cname);
15528                 if val.is_null() {
15529                     get_pipeline_executable_properties_khr
15530                 } else {
15531                     ::std::mem::transmute(val)
15532                 }
15533             },
15534             get_pipeline_executable_statistics_khr: unsafe {
15535                 unsafe extern "system" fn get_pipeline_executable_statistics_khr(
15536                     _device: Device,
15537                     _p_executable_info: *const PipelineExecutableInfoKHR,
15538                     _p_statistic_count: *mut u32,
15539                     _p_statistics: *mut PipelineExecutableStatisticKHR,
15540                 ) -> Result {
15541                     panic!(concat!(
15542                         "Unable to load ",
15543                         stringify!(get_pipeline_executable_statistics_khr)
15544                     ))
15545                 }
15546                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15547                     b"vkGetPipelineExecutableStatisticsKHR\0",
15548                 );
15549                 let val = _f(cname);
15550                 if val.is_null() {
15551                     get_pipeline_executable_statistics_khr
15552                 } else {
15553                     ::std::mem::transmute(val)
15554                 }
15555             },
15556             get_pipeline_executable_internal_representations_khr: unsafe {
15557                 unsafe extern "system" fn get_pipeline_executable_internal_representations_khr(
15558                     _device: Device,
15559                     _p_executable_info: *const PipelineExecutableInfoKHR,
15560                     _p_internal_representation_count: *mut u32,
15561                     _p_internal_representations: *mut PipelineExecutableInternalRepresentationKHR,
15562                 ) -> Result {
15563                     panic!(concat!(
15564                         "Unable to load ",
15565                         stringify!(get_pipeline_executable_internal_representations_khr)
15566                     ))
15567                 }
15568                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15569                     b"vkGetPipelineExecutableInternalRepresentationsKHR\0",
15570                 );
15571                 let val = _f(cname);
15572                 if val.is_null() {
15573                     get_pipeline_executable_internal_representations_khr
15574                 } else {
15575                     ::std::mem::transmute(val)
15576                 }
15577             },
15578         }
15579     }
15580 }
15581 #[doc = "Generated from 'VK_KHR_pipeline_executable_properties'"]
15582 impl PipelineCreateFlags {
15583     pub const CAPTURE_STATISTICS_KHR: Self = Self(0b100_0000);
15584     pub const CAPTURE_INTERNAL_REPRESENTATIONS_KHR: Self = Self(0b1000_0000);
15585 }
15586 #[doc = "Generated from 'VK_KHR_pipeline_executable_properties'"]
15587 impl StructureType {
15588     pub const PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: Self =
15589         Self(1_000_269_000);
15590     pub const PIPELINE_INFO_KHR: Self = Self(1_000_269_001);
15591     pub const PIPELINE_EXECUTABLE_PROPERTIES_KHR: Self = Self(1_000_269_002);
15592     pub const PIPELINE_EXECUTABLE_INFO_KHR: Self = Self(1_000_269_003);
15593     pub const PIPELINE_EXECUTABLE_STATISTIC_KHR: Self = Self(1_000_269_004);
15594     pub const PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR: Self = Self(1_000_269_005);
15595 }
15596 impl IntelExtension271Fn {
15597     #[inline]
name() -> &'static ::std::ffi::CStr15598     pub const fn name() -> &'static ::std::ffi::CStr {
15599         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_INTEL_extension_271\0") }
15600     }
15601     pub const SPEC_VERSION: u32 = 0u32;
15602 }
15603 #[derive(Clone)]
15604 pub struct IntelExtension271Fn {}
15605 unsafe impl Send for IntelExtension271Fn {}
15606 unsafe impl Sync for IntelExtension271Fn {}
15607 impl IntelExtension271Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15608     pub fn load<F>(mut _f: F) -> Self
15609     where
15610         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15611     {
15612         Self {}
15613     }
15614 }
15615 #[doc = "Generated from 'VK_INTEL_extension_271'"]
15616 impl FormatFeatureFlags2 {
15617     pub const RESERVED_46_EXT: Self =
15618         Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
15619 }
15620 #[doc = "Generated from 'VK_INTEL_extension_271'"]
15621 impl ImageUsageFlags {
15622     pub const RESERVED_22_EXT: Self = Self(0b100_0000_0000_0000_0000_0000);
15623 }
15624 impl KhrMapMemory2Fn {
15625     #[inline]
name() -> &'static ::std::ffi::CStr15626     pub const fn name() -> &'static ::std::ffi::CStr {
15627         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_map_memory2\0") }
15628     }
15629     pub const SPEC_VERSION: u32 = 1u32;
15630 }
15631 #[allow(non_camel_case_types)]
15632 pub type PFN_vkMapMemory2KHR = unsafe extern "system" fn(
15633     device: Device,
15634     p_memory_map_info: *const MemoryMapInfoKHR,
15635     pp_data: *mut *mut c_void,
15636 ) -> Result;
15637 #[allow(non_camel_case_types)]
15638 pub type PFN_vkUnmapMemory2KHR = unsafe extern "system" fn(
15639     device: Device,
15640     p_memory_unmap_info: *const MemoryUnmapInfoKHR,
15641 ) -> Result;
15642 #[derive(Clone)]
15643 pub struct KhrMapMemory2Fn {
15644     pub map_memory2_khr: PFN_vkMapMemory2KHR,
15645     pub unmap_memory2_khr: PFN_vkUnmapMemory2KHR,
15646 }
15647 unsafe impl Send for KhrMapMemory2Fn {}
15648 unsafe impl Sync for KhrMapMemory2Fn {}
15649 impl KhrMapMemory2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15650     pub fn load<F>(mut _f: F) -> Self
15651     where
15652         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15653     {
15654         Self {
15655             map_memory2_khr: unsafe {
15656                 unsafe extern "system" fn map_memory2_khr(
15657                     _device: Device,
15658                     _p_memory_map_info: *const MemoryMapInfoKHR,
15659                     _pp_data: *mut *mut c_void,
15660                 ) -> Result {
15661                     panic!(concat!("Unable to load ", stringify!(map_memory2_khr)))
15662                 }
15663                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkMapMemory2KHR\0");
15664                 let val = _f(cname);
15665                 if val.is_null() {
15666                     map_memory2_khr
15667                 } else {
15668                     ::std::mem::transmute(val)
15669                 }
15670             },
15671             unmap_memory2_khr: unsafe {
15672                 unsafe extern "system" fn unmap_memory2_khr(
15673                     _device: Device,
15674                     _p_memory_unmap_info: *const MemoryUnmapInfoKHR,
15675                 ) -> Result {
15676                     panic!(concat!("Unable to load ", stringify!(unmap_memory2_khr)))
15677                 }
15678                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkUnmapMemory2KHR\0");
15679                 let val = _f(cname);
15680                 if val.is_null() {
15681                     unmap_memory2_khr
15682                 } else {
15683                     ::std::mem::transmute(val)
15684                 }
15685             },
15686         }
15687     }
15688 }
15689 #[doc = "Generated from 'VK_KHR_map_memory2'"]
15690 impl StructureType {
15691     pub const MEMORY_MAP_INFO_KHR: Self = Self(1_000_271_000);
15692     pub const MEMORY_UNMAP_INFO_KHR: Self = Self(1_000_271_001);
15693 }
15694 impl IntelExtension273Fn {
15695     #[inline]
name() -> &'static ::std::ffi::CStr15696     pub const fn name() -> &'static ::std::ffi::CStr {
15697         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_INTEL_extension_273\0") }
15698     }
15699     pub const SPEC_VERSION: u32 = 0u32;
15700 }
15701 #[derive(Clone)]
15702 pub struct IntelExtension273Fn {}
15703 unsafe impl Send for IntelExtension273Fn {}
15704 unsafe impl Sync for IntelExtension273Fn {}
15705 impl IntelExtension273Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15706     pub fn load<F>(mut _f: F) -> Self
15707     where
15708         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15709     {
15710         Self {}
15711     }
15712 }
15713 impl ExtShaderAtomicFloat2Fn {
15714     #[inline]
name() -> &'static ::std::ffi::CStr15715     pub const fn name() -> &'static ::std::ffi::CStr {
15716         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_atomic_float2\0") }
15717     }
15718     pub const SPEC_VERSION: u32 = 1u32;
15719 }
15720 #[derive(Clone)]
15721 pub struct ExtShaderAtomicFloat2Fn {}
15722 unsafe impl Send for ExtShaderAtomicFloat2Fn {}
15723 unsafe impl Sync for ExtShaderAtomicFloat2Fn {}
15724 impl ExtShaderAtomicFloat2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15725     pub fn load<F>(mut _f: F) -> Self
15726     where
15727         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15728     {
15729         Self {}
15730     }
15731 }
15732 #[doc = "Generated from 'VK_EXT_shader_atomic_float2'"]
15733 impl StructureType {
15734     pub const PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT: Self = Self(1_000_273_000);
15735 }
15736 impl ExtSurfaceMaintenance1Fn {
15737     #[inline]
name() -> &'static ::std::ffi::CStr15738     pub const fn name() -> &'static ::std::ffi::CStr {
15739         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_surface_maintenance1\0") }
15740     }
15741     pub const SPEC_VERSION: u32 = 1u32;
15742 }
15743 #[derive(Clone)]
15744 pub struct ExtSurfaceMaintenance1Fn {}
15745 unsafe impl Send for ExtSurfaceMaintenance1Fn {}
15746 unsafe impl Sync for ExtSurfaceMaintenance1Fn {}
15747 impl ExtSurfaceMaintenance1Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15748     pub fn load<F>(mut _f: F) -> Self
15749     where
15750         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15751     {
15752         Self {}
15753     }
15754 }
15755 #[doc = "Generated from 'VK_EXT_surface_maintenance1'"]
15756 impl StructureType {
15757     pub const SURFACE_PRESENT_MODE_EXT: Self = Self(1_000_274_000);
15758     pub const SURFACE_PRESENT_SCALING_CAPABILITIES_EXT: Self = Self(1_000_274_001);
15759     pub const SURFACE_PRESENT_MODE_COMPATIBILITY_EXT: Self = Self(1_000_274_002);
15760 }
15761 impl ExtSwapchainMaintenance1Fn {
15762     #[inline]
name() -> &'static ::std::ffi::CStr15763     pub const fn name() -> &'static ::std::ffi::CStr {
15764         unsafe {
15765             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_swapchain_maintenance1\0")
15766         }
15767     }
15768     pub const SPEC_VERSION: u32 = 1u32;
15769 }
15770 #[allow(non_camel_case_types)]
15771 pub type PFN_vkReleaseSwapchainImagesEXT = unsafe extern "system" fn(
15772     device: Device,
15773     p_release_info: *const ReleaseSwapchainImagesInfoEXT,
15774 ) -> Result;
15775 #[derive(Clone)]
15776 pub struct ExtSwapchainMaintenance1Fn {
15777     pub release_swapchain_images_ext: PFN_vkReleaseSwapchainImagesEXT,
15778 }
15779 unsafe impl Send for ExtSwapchainMaintenance1Fn {}
15780 unsafe impl Sync for ExtSwapchainMaintenance1Fn {}
15781 impl ExtSwapchainMaintenance1Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15782     pub fn load<F>(mut _f: F) -> Self
15783     where
15784         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15785     {
15786         Self {
15787             release_swapchain_images_ext: unsafe {
15788                 unsafe extern "system" fn release_swapchain_images_ext(
15789                     _device: Device,
15790                     _p_release_info: *const ReleaseSwapchainImagesInfoEXT,
15791                 ) -> Result {
15792                     panic!(concat!(
15793                         "Unable to load ",
15794                         stringify!(release_swapchain_images_ext)
15795                     ))
15796                 }
15797                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15798                     b"vkReleaseSwapchainImagesEXT\0",
15799                 );
15800                 let val = _f(cname);
15801                 if val.is_null() {
15802                     release_swapchain_images_ext
15803                 } else {
15804                     ::std::mem::transmute(val)
15805                 }
15806             },
15807         }
15808     }
15809 }
15810 #[doc = "Generated from 'VK_EXT_swapchain_maintenance1'"]
15811 impl StructureType {
15812     pub const PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: Self = Self(1_000_275_000);
15813     pub const SWAPCHAIN_PRESENT_FENCE_INFO_EXT: Self = Self(1_000_275_001);
15814     pub const SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: Self = Self(1_000_275_002);
15815     pub const SWAPCHAIN_PRESENT_MODE_INFO_EXT: Self = Self(1_000_275_003);
15816     pub const SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: Self = Self(1_000_275_004);
15817     pub const RELEASE_SWAPCHAIN_IMAGES_INFO_EXT: Self = Self(1_000_275_005);
15818 }
15819 #[doc = "Generated from 'VK_EXT_swapchain_maintenance1'"]
15820 impl SwapchainCreateFlagsKHR {
15821     pub const DEFERRED_MEMORY_ALLOCATION_EXT: Self = Self(0b1000);
15822 }
15823 impl ExtShaderDemoteToHelperInvocationFn {
15824     #[inline]
name() -> &'static ::std::ffi::CStr15825     pub const fn name() -> &'static ::std::ffi::CStr {
15826         unsafe {
15827             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15828                 b"VK_EXT_shader_demote_to_helper_invocation\0",
15829             )
15830         }
15831     }
15832     pub const SPEC_VERSION: u32 = 1u32;
15833 }
15834 #[derive(Clone)]
15835 pub struct ExtShaderDemoteToHelperInvocationFn {}
15836 unsafe impl Send for ExtShaderDemoteToHelperInvocationFn {}
15837 unsafe impl Sync for ExtShaderDemoteToHelperInvocationFn {}
15838 impl ExtShaderDemoteToHelperInvocationFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15839     pub fn load<F>(mut _f: F) -> Self
15840     where
15841         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15842     {
15843         Self {}
15844     }
15845 }
15846 #[doc = "Generated from 'VK_EXT_shader_demote_to_helper_invocation'"]
15847 impl StructureType {
15848     pub const PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT: Self =
15849         Self::PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES;
15850 }
15851 impl NvDeviceGeneratedCommandsFn {
15852     #[inline]
name() -> &'static ::std::ffi::CStr15853     pub const fn name() -> &'static ::std::ffi::CStr {
15854         unsafe {
15855             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_device_generated_commands\0")
15856         }
15857     }
15858     pub const SPEC_VERSION: u32 = 3u32;
15859 }
15860 #[allow(non_camel_case_types)]
15861 pub type PFN_vkGetGeneratedCommandsMemoryRequirementsNV = unsafe extern "system" fn(
15862     device: Device,
15863     p_info: *const GeneratedCommandsMemoryRequirementsInfoNV,
15864     p_memory_requirements: *mut MemoryRequirements2,
15865 );
15866 #[allow(non_camel_case_types)]
15867 pub type PFN_vkCmdPreprocessGeneratedCommandsNV = unsafe extern "system" fn(
15868     command_buffer: CommandBuffer,
15869     p_generated_commands_info: *const GeneratedCommandsInfoNV,
15870 );
15871 #[allow(non_camel_case_types)]
15872 pub type PFN_vkCmdExecuteGeneratedCommandsNV = unsafe extern "system" fn(
15873     command_buffer: CommandBuffer,
15874     is_preprocessed: Bool32,
15875     p_generated_commands_info: *const GeneratedCommandsInfoNV,
15876 );
15877 #[allow(non_camel_case_types)]
15878 pub type PFN_vkCmdBindPipelineShaderGroupNV = unsafe extern "system" fn(
15879     command_buffer: CommandBuffer,
15880     pipeline_bind_point: PipelineBindPoint,
15881     pipeline: Pipeline,
15882     group_index: u32,
15883 );
15884 #[allow(non_camel_case_types)]
15885 pub type PFN_vkCreateIndirectCommandsLayoutNV = unsafe extern "system" fn(
15886     device: Device,
15887     p_create_info: *const IndirectCommandsLayoutCreateInfoNV,
15888     p_allocator: *const AllocationCallbacks,
15889     p_indirect_commands_layout: *mut IndirectCommandsLayoutNV,
15890 ) -> Result;
15891 #[allow(non_camel_case_types)]
15892 pub type PFN_vkDestroyIndirectCommandsLayoutNV = unsafe extern "system" fn(
15893     device: Device,
15894     indirect_commands_layout: IndirectCommandsLayoutNV,
15895     p_allocator: *const AllocationCallbacks,
15896 );
15897 #[derive(Clone)]
15898 pub struct NvDeviceGeneratedCommandsFn {
15899     pub get_generated_commands_memory_requirements_nv:
15900         PFN_vkGetGeneratedCommandsMemoryRequirementsNV,
15901     pub cmd_preprocess_generated_commands_nv: PFN_vkCmdPreprocessGeneratedCommandsNV,
15902     pub cmd_execute_generated_commands_nv: PFN_vkCmdExecuteGeneratedCommandsNV,
15903     pub cmd_bind_pipeline_shader_group_nv: PFN_vkCmdBindPipelineShaderGroupNV,
15904     pub create_indirect_commands_layout_nv: PFN_vkCreateIndirectCommandsLayoutNV,
15905     pub destroy_indirect_commands_layout_nv: PFN_vkDestroyIndirectCommandsLayoutNV,
15906 }
15907 unsafe impl Send for NvDeviceGeneratedCommandsFn {}
15908 unsafe impl Sync for NvDeviceGeneratedCommandsFn {}
15909 impl NvDeviceGeneratedCommandsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15910     pub fn load<F>(mut _f: F) -> Self
15911     where
15912         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15913     {
15914         Self {
15915             get_generated_commands_memory_requirements_nv: unsafe {
15916                 unsafe extern "system" fn get_generated_commands_memory_requirements_nv(
15917                     _device: Device,
15918                     _p_info: *const GeneratedCommandsMemoryRequirementsInfoNV,
15919                     _p_memory_requirements: *mut MemoryRequirements2,
15920                 ) {
15921                     panic!(concat!(
15922                         "Unable to load ",
15923                         stringify!(get_generated_commands_memory_requirements_nv)
15924                     ))
15925                 }
15926                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15927                     b"vkGetGeneratedCommandsMemoryRequirementsNV\0",
15928                 );
15929                 let val = _f(cname);
15930                 if val.is_null() {
15931                     get_generated_commands_memory_requirements_nv
15932                 } else {
15933                     ::std::mem::transmute(val)
15934                 }
15935             },
15936             cmd_preprocess_generated_commands_nv: unsafe {
15937                 unsafe extern "system" fn cmd_preprocess_generated_commands_nv(
15938                     _command_buffer: CommandBuffer,
15939                     _p_generated_commands_info: *const GeneratedCommandsInfoNV,
15940                 ) {
15941                     panic!(concat!(
15942                         "Unable to load ",
15943                         stringify!(cmd_preprocess_generated_commands_nv)
15944                     ))
15945                 }
15946                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15947                     b"vkCmdPreprocessGeneratedCommandsNV\0",
15948                 );
15949                 let val = _f(cname);
15950                 if val.is_null() {
15951                     cmd_preprocess_generated_commands_nv
15952                 } else {
15953                     ::std::mem::transmute(val)
15954                 }
15955             },
15956             cmd_execute_generated_commands_nv: unsafe {
15957                 unsafe extern "system" fn cmd_execute_generated_commands_nv(
15958                     _command_buffer: CommandBuffer,
15959                     _is_preprocessed: Bool32,
15960                     _p_generated_commands_info: *const GeneratedCommandsInfoNV,
15961                 ) {
15962                     panic!(concat!(
15963                         "Unable to load ",
15964                         stringify!(cmd_execute_generated_commands_nv)
15965                     ))
15966                 }
15967                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15968                     b"vkCmdExecuteGeneratedCommandsNV\0",
15969                 );
15970                 let val = _f(cname);
15971                 if val.is_null() {
15972                     cmd_execute_generated_commands_nv
15973                 } else {
15974                     ::std::mem::transmute(val)
15975                 }
15976             },
15977             cmd_bind_pipeline_shader_group_nv: unsafe {
15978                 unsafe extern "system" fn cmd_bind_pipeline_shader_group_nv(
15979                     _command_buffer: CommandBuffer,
15980                     _pipeline_bind_point: PipelineBindPoint,
15981                     _pipeline: Pipeline,
15982                     _group_index: u32,
15983                 ) {
15984                     panic!(concat!(
15985                         "Unable to load ",
15986                         stringify!(cmd_bind_pipeline_shader_group_nv)
15987                     ))
15988                 }
15989                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15990                     b"vkCmdBindPipelineShaderGroupNV\0",
15991                 );
15992                 let val = _f(cname);
15993                 if val.is_null() {
15994                     cmd_bind_pipeline_shader_group_nv
15995                 } else {
15996                     ::std::mem::transmute(val)
15997                 }
15998             },
15999             create_indirect_commands_layout_nv: unsafe {
16000                 unsafe extern "system" fn create_indirect_commands_layout_nv(
16001                     _device: Device,
16002                     _p_create_info: *const IndirectCommandsLayoutCreateInfoNV,
16003                     _p_allocator: *const AllocationCallbacks,
16004                     _p_indirect_commands_layout: *mut IndirectCommandsLayoutNV,
16005                 ) -> Result {
16006                     panic!(concat!(
16007                         "Unable to load ",
16008                         stringify!(create_indirect_commands_layout_nv)
16009                     ))
16010                 }
16011                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16012                     b"vkCreateIndirectCommandsLayoutNV\0",
16013                 );
16014                 let val = _f(cname);
16015                 if val.is_null() {
16016                     create_indirect_commands_layout_nv
16017                 } else {
16018                     ::std::mem::transmute(val)
16019                 }
16020             },
16021             destroy_indirect_commands_layout_nv: unsafe {
16022                 unsafe extern "system" fn destroy_indirect_commands_layout_nv(
16023                     _device: Device,
16024                     _indirect_commands_layout: IndirectCommandsLayoutNV,
16025                     _p_allocator: *const AllocationCallbacks,
16026                 ) {
16027                     panic!(concat!(
16028                         "Unable to load ",
16029                         stringify!(destroy_indirect_commands_layout_nv)
16030                     ))
16031                 }
16032                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16033                     b"vkDestroyIndirectCommandsLayoutNV\0",
16034                 );
16035                 let val = _f(cname);
16036                 if val.is_null() {
16037                     destroy_indirect_commands_layout_nv
16038                 } else {
16039                     ::std::mem::transmute(val)
16040                 }
16041             },
16042         }
16043     }
16044 }
16045 #[doc = "Generated from 'VK_NV_device_generated_commands'"]
16046 impl AccessFlags {
16047     pub const COMMAND_PREPROCESS_READ_NV: Self = Self(0b10_0000_0000_0000_0000);
16048     pub const COMMAND_PREPROCESS_WRITE_NV: Self = Self(0b100_0000_0000_0000_0000);
16049 }
16050 #[doc = "Generated from 'VK_NV_device_generated_commands'"]
16051 impl ObjectType {
16052     pub const INDIRECT_COMMANDS_LAYOUT_NV: Self = Self(1_000_277_000);
16053 }
16054 #[doc = "Generated from 'VK_NV_device_generated_commands'"]
16055 impl PipelineCreateFlags {
16056     pub const INDIRECT_BINDABLE_NV: Self = Self(0b100_0000_0000_0000_0000);
16057 }
16058 #[doc = "Generated from 'VK_NV_device_generated_commands'"]
16059 impl PipelineStageFlags {
16060     pub const COMMAND_PREPROCESS_NV: Self = Self(0b10_0000_0000_0000_0000);
16061 }
16062 #[doc = "Generated from 'VK_NV_device_generated_commands'"]
16063 impl StructureType {
16064     pub const PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV: Self = Self(1_000_277_000);
16065     pub const GRAPHICS_SHADER_GROUP_CREATE_INFO_NV: Self = Self(1_000_277_001);
16066     pub const GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV: Self = Self(1_000_277_002);
16067     pub const INDIRECT_COMMANDS_LAYOUT_TOKEN_NV: Self = Self(1_000_277_003);
16068     pub const INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV: Self = Self(1_000_277_004);
16069     pub const GENERATED_COMMANDS_INFO_NV: Self = Self(1_000_277_005);
16070     pub const GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV: Self = Self(1_000_277_006);
16071     pub const PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV: Self = Self(1_000_277_007);
16072 }
16073 impl NvInheritedViewportScissorFn {
16074     #[inline]
name() -> &'static ::std::ffi::CStr16075     pub const fn name() -> &'static ::std::ffi::CStr {
16076         unsafe {
16077             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_inherited_viewport_scissor\0")
16078         }
16079     }
16080     pub const SPEC_VERSION: u32 = 1u32;
16081 }
16082 #[derive(Clone)]
16083 pub struct NvInheritedViewportScissorFn {}
16084 unsafe impl Send for NvInheritedViewportScissorFn {}
16085 unsafe impl Sync for NvInheritedViewportScissorFn {}
16086 impl NvInheritedViewportScissorFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16087     pub fn load<F>(mut _f: F) -> Self
16088     where
16089         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16090     {
16091         Self {}
16092     }
16093 }
16094 #[doc = "Generated from 'VK_NV_inherited_viewport_scissor'"]
16095 impl StructureType {
16096     pub const PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV: Self = Self(1_000_278_000);
16097     pub const COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV: Self = Self(1_000_278_001);
16098 }
16099 impl KhrExtension280Fn {
16100     #[inline]
name() -> &'static ::std::ffi::CStr16101     pub const fn name() -> &'static ::std::ffi::CStr {
16102         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_280\0") }
16103     }
16104     pub const SPEC_VERSION: u32 = 0u32;
16105 }
16106 #[derive(Clone)]
16107 pub struct KhrExtension280Fn {}
16108 unsafe impl Send for KhrExtension280Fn {}
16109 unsafe impl Sync for KhrExtension280Fn {}
16110 impl KhrExtension280Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16111     pub fn load<F>(mut _f: F) -> Self
16112     where
16113         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16114     {
16115         Self {}
16116     }
16117 }
16118 impl KhrShaderIntegerDotProductFn {
16119     #[inline]
name() -> &'static ::std::ffi::CStr16120     pub const fn name() -> &'static ::std::ffi::CStr {
16121         unsafe {
16122             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_integer_dot_product\0")
16123         }
16124     }
16125     pub const SPEC_VERSION: u32 = 1u32;
16126 }
16127 #[derive(Clone)]
16128 pub struct KhrShaderIntegerDotProductFn {}
16129 unsafe impl Send for KhrShaderIntegerDotProductFn {}
16130 unsafe impl Sync for KhrShaderIntegerDotProductFn {}
16131 impl KhrShaderIntegerDotProductFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16132     pub fn load<F>(mut _f: F) -> Self
16133     where
16134         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16135     {
16136         Self {}
16137     }
16138 }
16139 #[doc = "Generated from 'VK_KHR_shader_integer_dot_product'"]
16140 impl StructureType {
16141     pub const PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR: Self =
16142         Self::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES;
16143     pub const PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR: Self =
16144         Self::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES;
16145 }
16146 impl ExtTexelBufferAlignmentFn {
16147     #[inline]
name() -> &'static ::std::ffi::CStr16148     pub const fn name() -> &'static ::std::ffi::CStr {
16149         unsafe {
16150             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_texel_buffer_alignment\0")
16151         }
16152     }
16153     pub const SPEC_VERSION: u32 = 1u32;
16154 }
16155 #[derive(Clone)]
16156 pub struct ExtTexelBufferAlignmentFn {}
16157 unsafe impl Send for ExtTexelBufferAlignmentFn {}
16158 unsafe impl Sync for ExtTexelBufferAlignmentFn {}
16159 impl ExtTexelBufferAlignmentFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16160     pub fn load<F>(mut _f: F) -> Self
16161     where
16162         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16163     {
16164         Self {}
16165     }
16166 }
16167 #[doc = "Generated from 'VK_EXT_texel_buffer_alignment'"]
16168 impl StructureType {
16169     #[doc = "Not promoted to 1.3"]
16170     pub const PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: Self = Self(1_000_281_000);
16171     pub const PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT: Self =
16172         Self::PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES;
16173 }
16174 impl QcomRenderPassTransformFn {
16175     #[inline]
name() -> &'static ::std::ffi::CStr16176     pub const fn name() -> &'static ::std::ffi::CStr {
16177         unsafe {
16178             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_render_pass_transform\0")
16179         }
16180     }
16181     pub const SPEC_VERSION: u32 = 3u32;
16182 }
16183 #[derive(Clone)]
16184 pub struct QcomRenderPassTransformFn {}
16185 unsafe impl Send for QcomRenderPassTransformFn {}
16186 unsafe impl Sync for QcomRenderPassTransformFn {}
16187 impl QcomRenderPassTransformFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16188     pub fn load<F>(mut _f: F) -> Self
16189     where
16190         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16191     {
16192         Self {}
16193     }
16194 }
16195 #[doc = "Generated from 'VK_QCOM_render_pass_transform'"]
16196 impl RenderPassCreateFlags {
16197     pub const TRANSFORM_QCOM: Self = Self(0b10);
16198 }
16199 #[doc = "Generated from 'VK_QCOM_render_pass_transform'"]
16200 impl StructureType {
16201     pub const COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM: Self =
16202         Self(1_000_282_000);
16203     pub const RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM: Self = Self(1_000_282_001);
16204 }
16205 impl ExtExtension284Fn {
16206     #[inline]
name() -> &'static ::std::ffi::CStr16207     pub const fn name() -> &'static ::std::ffi::CStr {
16208         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_284\0") }
16209     }
16210     pub const SPEC_VERSION: u32 = 0u32;
16211 }
16212 #[derive(Clone)]
16213 pub struct ExtExtension284Fn {}
16214 unsafe impl Send for ExtExtension284Fn {}
16215 unsafe impl Sync for ExtExtension284Fn {}
16216 impl ExtExtension284Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16217     pub fn load<F>(mut _f: F) -> Self
16218     where
16219         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16220     {
16221         Self {}
16222     }
16223 }
16224 impl ExtDeviceMemoryReportFn {
16225     #[inline]
name() -> &'static ::std::ffi::CStr16226     pub const fn name() -> &'static ::std::ffi::CStr {
16227         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_device_memory_report\0") }
16228     }
16229     pub const SPEC_VERSION: u32 = 2u32;
16230 }
16231 #[derive(Clone)]
16232 pub struct ExtDeviceMemoryReportFn {}
16233 unsafe impl Send for ExtDeviceMemoryReportFn {}
16234 unsafe impl Sync for ExtDeviceMemoryReportFn {}
16235 impl ExtDeviceMemoryReportFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16236     pub fn load<F>(mut _f: F) -> Self
16237     where
16238         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16239     {
16240         Self {}
16241     }
16242 }
16243 #[doc = "Generated from 'VK_EXT_device_memory_report'"]
16244 impl StructureType {
16245     pub const PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: Self = Self(1_000_284_000);
16246     pub const DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: Self = Self(1_000_284_001);
16247     pub const DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT: Self = Self(1_000_284_002);
16248 }
16249 impl ExtAcquireDrmDisplayFn {
16250     #[inline]
name() -> &'static ::std::ffi::CStr16251     pub const fn name() -> &'static ::std::ffi::CStr {
16252         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_acquire_drm_display\0") }
16253     }
16254     pub const SPEC_VERSION: u32 = 1u32;
16255 }
16256 #[allow(non_camel_case_types)]
16257 pub type PFN_vkAcquireDrmDisplayEXT = unsafe extern "system" fn(
16258     physical_device: PhysicalDevice,
16259     drm_fd: i32,
16260     display: DisplayKHR,
16261 ) -> Result;
16262 #[allow(non_camel_case_types)]
16263 pub type PFN_vkGetDrmDisplayEXT = unsafe extern "system" fn(
16264     physical_device: PhysicalDevice,
16265     drm_fd: i32,
16266     connector_id: u32,
16267     display: *mut DisplayKHR,
16268 ) -> Result;
16269 #[derive(Clone)]
16270 pub struct ExtAcquireDrmDisplayFn {
16271     pub acquire_drm_display_ext: PFN_vkAcquireDrmDisplayEXT,
16272     pub get_drm_display_ext: PFN_vkGetDrmDisplayEXT,
16273 }
16274 unsafe impl Send for ExtAcquireDrmDisplayFn {}
16275 unsafe impl Sync for ExtAcquireDrmDisplayFn {}
16276 impl ExtAcquireDrmDisplayFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16277     pub fn load<F>(mut _f: F) -> Self
16278     where
16279         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16280     {
16281         Self {
16282             acquire_drm_display_ext: unsafe {
16283                 unsafe extern "system" fn acquire_drm_display_ext(
16284                     _physical_device: PhysicalDevice,
16285                     _drm_fd: i32,
16286                     _display: DisplayKHR,
16287                 ) -> Result {
16288                     panic!(concat!(
16289                         "Unable to load ",
16290                         stringify!(acquire_drm_display_ext)
16291                     ))
16292                 }
16293                 let cname =
16294                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireDrmDisplayEXT\0");
16295                 let val = _f(cname);
16296                 if val.is_null() {
16297                     acquire_drm_display_ext
16298                 } else {
16299                     ::std::mem::transmute(val)
16300                 }
16301             },
16302             get_drm_display_ext: unsafe {
16303                 unsafe extern "system" fn get_drm_display_ext(
16304                     _physical_device: PhysicalDevice,
16305                     _drm_fd: i32,
16306                     _connector_id: u32,
16307                     _display: *mut DisplayKHR,
16308                 ) -> Result {
16309                     panic!(concat!("Unable to load ", stringify!(get_drm_display_ext)))
16310                 }
16311                 let cname =
16312                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetDrmDisplayEXT\0");
16313                 let val = _f(cname);
16314                 if val.is_null() {
16315                     get_drm_display_ext
16316                 } else {
16317                     ::std::mem::transmute(val)
16318                 }
16319             },
16320         }
16321     }
16322 }
16323 impl ExtRobustness2Fn {
16324     #[inline]
name() -> &'static ::std::ffi::CStr16325     pub const fn name() -> &'static ::std::ffi::CStr {
16326         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_robustness2\0") }
16327     }
16328     pub const SPEC_VERSION: u32 = 1u32;
16329 }
16330 #[derive(Clone)]
16331 pub struct ExtRobustness2Fn {}
16332 unsafe impl Send for ExtRobustness2Fn {}
16333 unsafe impl Sync for ExtRobustness2Fn {}
16334 impl ExtRobustness2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16335     pub fn load<F>(mut _f: F) -> Self
16336     where
16337         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16338     {
16339         Self {}
16340     }
16341 }
16342 #[doc = "Generated from 'VK_EXT_robustness2'"]
16343 impl StructureType {
16344     pub const PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: Self = Self(1_000_286_000);
16345     pub const PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: Self = Self(1_000_286_001);
16346 }
16347 impl ExtCustomBorderColorFn {
16348     #[inline]
name() -> &'static ::std::ffi::CStr16349     pub const fn name() -> &'static ::std::ffi::CStr {
16350         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_custom_border_color\0") }
16351     }
16352     pub const SPEC_VERSION: u32 = 12u32;
16353 }
16354 #[derive(Clone)]
16355 pub struct ExtCustomBorderColorFn {}
16356 unsafe impl Send for ExtCustomBorderColorFn {}
16357 unsafe impl Sync for ExtCustomBorderColorFn {}
16358 impl ExtCustomBorderColorFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16359     pub fn load<F>(mut _f: F) -> Self
16360     where
16361         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16362     {
16363         Self {}
16364     }
16365 }
16366 #[doc = "Generated from 'VK_EXT_custom_border_color'"]
16367 impl BorderColor {
16368     pub const FLOAT_CUSTOM_EXT: Self = Self(1_000_287_003);
16369     pub const INT_CUSTOM_EXT: Self = Self(1_000_287_004);
16370 }
16371 #[doc = "Generated from 'VK_EXT_custom_border_color'"]
16372 impl StructureType {
16373     pub const SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: Self = Self(1_000_287_000);
16374     pub const PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: Self = Self(1_000_287_001);
16375     pub const PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: Self = Self(1_000_287_002);
16376 }
16377 impl ExtExtension289Fn {
16378     #[inline]
name() -> &'static ::std::ffi::CStr16379     pub const fn name() -> &'static ::std::ffi::CStr {
16380         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_289\0") }
16381     }
16382     pub const SPEC_VERSION: u32 = 0u32;
16383 }
16384 #[derive(Clone)]
16385 pub struct ExtExtension289Fn {}
16386 unsafe impl Send for ExtExtension289Fn {}
16387 unsafe impl Sync for ExtExtension289Fn {}
16388 impl ExtExtension289Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16389     pub fn load<F>(mut _f: F) -> Self
16390     where
16391         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16392     {
16393         Self {}
16394     }
16395 }
16396 #[doc = "Generated from 'VK_EXT_extension_289'"]
16397 impl Format {
16398     pub const ASTC_3X3X3_UNORM_BLOCK_EXT: Self = Self(1_000_288_000);
16399     pub const ASTC_3X3X3_SRGB_BLOCK_EXT: Self = Self(1_000_288_001);
16400     pub const ASTC_3X3X3_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_002);
16401     pub const ASTC_4X3X3_UNORM_BLOCK_EXT: Self = Self(1_000_288_003);
16402     pub const ASTC_4X3X3_SRGB_BLOCK_EXT: Self = Self(1_000_288_004);
16403     pub const ASTC_4X3X3_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_005);
16404     pub const ASTC_4X4X3_UNORM_BLOCK_EXT: Self = Self(1_000_288_006);
16405     pub const ASTC_4X4X3_SRGB_BLOCK_EXT: Self = Self(1_000_288_007);
16406     pub const ASTC_4X4X3_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_008);
16407     pub const ASTC_4X4X4_UNORM_BLOCK_EXT: Self = Self(1_000_288_009);
16408     pub const ASTC_4X4X4_SRGB_BLOCK_EXT: Self = Self(1_000_288_010);
16409     pub const ASTC_4X4X4_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_011);
16410     pub const ASTC_5X4X4_UNORM_BLOCK_EXT: Self = Self(1_000_288_012);
16411     pub const ASTC_5X4X4_SRGB_BLOCK_EXT: Self = Self(1_000_288_013);
16412     pub const ASTC_5X4X4_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_014);
16413     pub const ASTC_5X5X4_UNORM_BLOCK_EXT: Self = Self(1_000_288_015);
16414     pub const ASTC_5X5X4_SRGB_BLOCK_EXT: Self = Self(1_000_288_016);
16415     pub const ASTC_5X5X4_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_017);
16416     pub const ASTC_5X5X5_UNORM_BLOCK_EXT: Self = Self(1_000_288_018);
16417     pub const ASTC_5X5X5_SRGB_BLOCK_EXT: Self = Self(1_000_288_019);
16418     pub const ASTC_5X5X5_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_020);
16419     pub const ASTC_6X5X5_UNORM_BLOCK_EXT: Self = Self(1_000_288_021);
16420     pub const ASTC_6X5X5_SRGB_BLOCK_EXT: Self = Self(1_000_288_022);
16421     pub const ASTC_6X5X5_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_023);
16422     pub const ASTC_6X6X5_UNORM_BLOCK_EXT: Self = Self(1_000_288_024);
16423     pub const ASTC_6X6X5_SRGB_BLOCK_EXT: Self = Self(1_000_288_025);
16424     pub const ASTC_6X6X5_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_026);
16425     pub const ASTC_6X6X6_UNORM_BLOCK_EXT: Self = Self(1_000_288_027);
16426     pub const ASTC_6X6X6_SRGB_BLOCK_EXT: Self = Self(1_000_288_028);
16427     pub const ASTC_6X6X6_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_029);
16428 }
16429 impl GoogleUserTypeFn {
16430     #[inline]
name() -> &'static ::std::ffi::CStr16431     pub const fn name() -> &'static ::std::ffi::CStr {
16432         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_user_type\0") }
16433     }
16434     pub const SPEC_VERSION: u32 = 1u32;
16435 }
16436 #[derive(Clone)]
16437 pub struct GoogleUserTypeFn {}
16438 unsafe impl Send for GoogleUserTypeFn {}
16439 unsafe impl Sync for GoogleUserTypeFn {}
16440 impl GoogleUserTypeFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16441     pub fn load<F>(mut _f: F) -> Self
16442     where
16443         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16444     {
16445         Self {}
16446     }
16447 }
16448 impl KhrPipelineLibraryFn {
16449     #[inline]
name() -> &'static ::std::ffi::CStr16450     pub const fn name() -> &'static ::std::ffi::CStr {
16451         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_pipeline_library\0") }
16452     }
16453     pub const SPEC_VERSION: u32 = 1u32;
16454 }
16455 #[derive(Clone)]
16456 pub struct KhrPipelineLibraryFn {}
16457 unsafe impl Send for KhrPipelineLibraryFn {}
16458 unsafe impl Sync for KhrPipelineLibraryFn {}
16459 impl KhrPipelineLibraryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16460     pub fn load<F>(mut _f: F) -> Self
16461     where
16462         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16463     {
16464         Self {}
16465     }
16466 }
16467 #[doc = "Generated from 'VK_KHR_pipeline_library'"]
16468 impl PipelineCreateFlags {
16469     pub const LIBRARY_KHR: Self = Self(0b1000_0000_0000);
16470 }
16471 #[doc = "Generated from 'VK_KHR_pipeline_library'"]
16472 impl StructureType {
16473     pub const PIPELINE_LIBRARY_CREATE_INFO_KHR: Self = Self(1_000_290_000);
16474 }
16475 impl NvExtension292Fn {
16476     #[inline]
name() -> &'static ::std::ffi::CStr16477     pub const fn name() -> &'static ::std::ffi::CStr {
16478         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_292\0") }
16479     }
16480     pub const SPEC_VERSION: u32 = 0u32;
16481 }
16482 #[derive(Clone)]
16483 pub struct NvExtension292Fn {}
16484 unsafe impl Send for NvExtension292Fn {}
16485 unsafe impl Sync for NvExtension292Fn {}
16486 impl NvExtension292Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16487     pub fn load<F>(mut _f: F) -> Self
16488     where
16489         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16490     {
16491         Self {}
16492     }
16493 }
16494 impl NvPresentBarrierFn {
16495     #[inline]
name() -> &'static ::std::ffi::CStr16496     pub const fn name() -> &'static ::std::ffi::CStr {
16497         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_present_barrier\0") }
16498     }
16499     pub const SPEC_VERSION: u32 = 1u32;
16500 }
16501 #[derive(Clone)]
16502 pub struct NvPresentBarrierFn {}
16503 unsafe impl Send for NvPresentBarrierFn {}
16504 unsafe impl Sync for NvPresentBarrierFn {}
16505 impl NvPresentBarrierFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16506     pub fn load<F>(mut _f: F) -> Self
16507     where
16508         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16509     {
16510         Self {}
16511     }
16512 }
16513 #[doc = "Generated from 'VK_NV_present_barrier'"]
16514 impl StructureType {
16515     pub const PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV: Self = Self(1_000_292_000);
16516     pub const SURFACE_CAPABILITIES_PRESENT_BARRIER_NV: Self = Self(1_000_292_001);
16517     pub const SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV: Self = Self(1_000_292_002);
16518 }
16519 impl KhrShaderNonSemanticInfoFn {
16520     #[inline]
name() -> &'static ::std::ffi::CStr16521     pub const fn name() -> &'static ::std::ffi::CStr {
16522         unsafe {
16523             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_non_semantic_info\0")
16524         }
16525     }
16526     pub const SPEC_VERSION: u32 = 1u32;
16527 }
16528 #[derive(Clone)]
16529 pub struct KhrShaderNonSemanticInfoFn {}
16530 unsafe impl Send for KhrShaderNonSemanticInfoFn {}
16531 unsafe impl Sync for KhrShaderNonSemanticInfoFn {}
16532 impl KhrShaderNonSemanticInfoFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16533     pub fn load<F>(mut _f: F) -> Self
16534     where
16535         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16536     {
16537         Self {}
16538     }
16539 }
16540 impl KhrPresentIdFn {
16541     #[inline]
name() -> &'static ::std::ffi::CStr16542     pub const fn name() -> &'static ::std::ffi::CStr {
16543         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_present_id\0") }
16544     }
16545     pub const SPEC_VERSION: u32 = 1u32;
16546 }
16547 #[derive(Clone)]
16548 pub struct KhrPresentIdFn {}
16549 unsafe impl Send for KhrPresentIdFn {}
16550 unsafe impl Sync for KhrPresentIdFn {}
16551 impl KhrPresentIdFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16552     pub fn load<F>(mut _f: F) -> Self
16553     where
16554         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16555     {
16556         Self {}
16557     }
16558 }
16559 #[doc = "Generated from 'VK_KHR_present_id'"]
16560 impl StructureType {
16561     pub const PRESENT_ID_KHR: Self = Self(1_000_294_000);
16562     pub const PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR: Self = Self(1_000_294_001);
16563 }
16564 impl ExtPrivateDataFn {
16565     #[inline]
name() -> &'static ::std::ffi::CStr16566     pub const fn name() -> &'static ::std::ffi::CStr {
16567         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_private_data\0") }
16568     }
16569     pub const SPEC_VERSION: u32 = 1u32;
16570 }
16571 #[allow(non_camel_case_types)]
16572 pub type PFN_vkCreatePrivateDataSlot = unsafe extern "system" fn(
16573     device: Device,
16574     p_create_info: *const PrivateDataSlotCreateInfo,
16575     p_allocator: *const AllocationCallbacks,
16576     p_private_data_slot: *mut PrivateDataSlot,
16577 ) -> Result;
16578 #[allow(non_camel_case_types)]
16579 pub type PFN_vkDestroyPrivateDataSlot = unsafe extern "system" fn(
16580     device: Device,
16581     private_data_slot: PrivateDataSlot,
16582     p_allocator: *const AllocationCallbacks,
16583 );
16584 #[allow(non_camel_case_types)]
16585 pub type PFN_vkSetPrivateData = unsafe extern "system" fn(
16586     device: Device,
16587     object_type: ObjectType,
16588     object_handle: u64,
16589     private_data_slot: PrivateDataSlot,
16590     data: u64,
16591 ) -> Result;
16592 #[allow(non_camel_case_types)]
16593 pub type PFN_vkGetPrivateData = unsafe extern "system" fn(
16594     device: Device,
16595     object_type: ObjectType,
16596     object_handle: u64,
16597     private_data_slot: PrivateDataSlot,
16598     p_data: *mut u64,
16599 );
16600 #[derive(Clone)]
16601 pub struct ExtPrivateDataFn {
16602     pub create_private_data_slot_ext: PFN_vkCreatePrivateDataSlot,
16603     pub destroy_private_data_slot_ext: PFN_vkDestroyPrivateDataSlot,
16604     pub set_private_data_ext: PFN_vkSetPrivateData,
16605     pub get_private_data_ext: PFN_vkGetPrivateData,
16606 }
16607 unsafe impl Send for ExtPrivateDataFn {}
16608 unsafe impl Sync for ExtPrivateDataFn {}
16609 impl ExtPrivateDataFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16610     pub fn load<F>(mut _f: F) -> Self
16611     where
16612         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16613     {
16614         Self {
16615             create_private_data_slot_ext: unsafe {
16616                 unsafe extern "system" fn create_private_data_slot_ext(
16617                     _device: Device,
16618                     _p_create_info: *const PrivateDataSlotCreateInfo,
16619                     _p_allocator: *const AllocationCallbacks,
16620                     _p_private_data_slot: *mut PrivateDataSlot,
16621                 ) -> Result {
16622                     panic!(concat!(
16623                         "Unable to load ",
16624                         stringify!(create_private_data_slot_ext)
16625                     ))
16626                 }
16627                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16628                     b"vkCreatePrivateDataSlotEXT\0",
16629                 );
16630                 let val = _f(cname);
16631                 if val.is_null() {
16632                     create_private_data_slot_ext
16633                 } else {
16634                     ::std::mem::transmute(val)
16635                 }
16636             },
16637             destroy_private_data_slot_ext: unsafe {
16638                 unsafe extern "system" fn destroy_private_data_slot_ext(
16639                     _device: Device,
16640                     _private_data_slot: PrivateDataSlot,
16641                     _p_allocator: *const AllocationCallbacks,
16642                 ) {
16643                     panic!(concat!(
16644                         "Unable to load ",
16645                         stringify!(destroy_private_data_slot_ext)
16646                     ))
16647                 }
16648                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16649                     b"vkDestroyPrivateDataSlotEXT\0",
16650                 );
16651                 let val = _f(cname);
16652                 if val.is_null() {
16653                     destroy_private_data_slot_ext
16654                 } else {
16655                     ::std::mem::transmute(val)
16656                 }
16657             },
16658             set_private_data_ext: unsafe {
16659                 unsafe extern "system" fn set_private_data_ext(
16660                     _device: Device,
16661                     _object_type: ObjectType,
16662                     _object_handle: u64,
16663                     _private_data_slot: PrivateDataSlot,
16664                     _data: u64,
16665                 ) -> Result {
16666                     panic!(concat!("Unable to load ", stringify!(set_private_data_ext)))
16667                 }
16668                 let cname =
16669                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkSetPrivateDataEXT\0");
16670                 let val = _f(cname);
16671                 if val.is_null() {
16672                     set_private_data_ext
16673                 } else {
16674                     ::std::mem::transmute(val)
16675                 }
16676             },
16677             get_private_data_ext: unsafe {
16678                 unsafe extern "system" fn get_private_data_ext(
16679                     _device: Device,
16680                     _object_type: ObjectType,
16681                     _object_handle: u64,
16682                     _private_data_slot: PrivateDataSlot,
16683                     _p_data: *mut u64,
16684                 ) {
16685                     panic!(concat!("Unable to load ", stringify!(get_private_data_ext)))
16686                 }
16687                 let cname =
16688                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetPrivateDataEXT\0");
16689                 let val = _f(cname);
16690                 if val.is_null() {
16691                     get_private_data_ext
16692                 } else {
16693                     ::std::mem::transmute(val)
16694                 }
16695             },
16696         }
16697     }
16698 }
16699 #[doc = "Generated from 'VK_EXT_private_data'"]
16700 impl ObjectType {
16701     pub const PRIVATE_DATA_SLOT_EXT: Self = Self::PRIVATE_DATA_SLOT;
16702 }
16703 #[doc = "Generated from 'VK_EXT_private_data'"]
16704 impl StructureType {
16705     pub const PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT: Self =
16706         Self::PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES;
16707     pub const DEVICE_PRIVATE_DATA_CREATE_INFO_EXT: Self = Self::DEVICE_PRIVATE_DATA_CREATE_INFO;
16708     pub const PRIVATE_DATA_SLOT_CREATE_INFO_EXT: Self = Self::PRIVATE_DATA_SLOT_CREATE_INFO;
16709 }
16710 impl KhrExtension297Fn {
16711     #[inline]
name() -> &'static ::std::ffi::CStr16712     pub const fn name() -> &'static ::std::ffi::CStr {
16713         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_297\0") }
16714     }
16715     pub const SPEC_VERSION: u32 = 0u32;
16716 }
16717 #[derive(Clone)]
16718 pub struct KhrExtension297Fn {}
16719 unsafe impl Send for KhrExtension297Fn {}
16720 unsafe impl Sync for KhrExtension297Fn {}
16721 impl KhrExtension297Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16722     pub fn load<F>(mut _f: F) -> Self
16723     where
16724         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16725     {
16726         Self {}
16727     }
16728 }
16729 #[doc = "Generated from 'VK_KHR_extension_297'"]
16730 impl PipelineShaderStageCreateFlags {
16731     pub const RESERVED_3_KHR: Self = Self(0b1000);
16732 }
16733 impl ExtPipelineCreationCacheControlFn {
16734     #[inline]
name() -> &'static ::std::ffi::CStr16735     pub const fn name() -> &'static ::std::ffi::CStr {
16736         unsafe {
16737             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16738                 b"VK_EXT_pipeline_creation_cache_control\0",
16739             )
16740         }
16741     }
16742     pub const SPEC_VERSION: u32 = 3u32;
16743 }
16744 #[derive(Clone)]
16745 pub struct ExtPipelineCreationCacheControlFn {}
16746 unsafe impl Send for ExtPipelineCreationCacheControlFn {}
16747 unsafe impl Sync for ExtPipelineCreationCacheControlFn {}
16748 impl ExtPipelineCreationCacheControlFn {
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         Self {}
16754     }
16755 }
16756 #[doc = "Generated from 'VK_EXT_pipeline_creation_cache_control'"]
16757 impl PipelineCacheCreateFlags {
16758     pub const EXTERNALLY_SYNCHRONIZED_EXT: Self = Self::EXTERNALLY_SYNCHRONIZED;
16759 }
16760 #[doc = "Generated from 'VK_EXT_pipeline_creation_cache_control'"]
16761 impl PipelineCreateFlags {
16762     pub const FAIL_ON_PIPELINE_COMPILE_REQUIRED_EXT: Self = Self::FAIL_ON_PIPELINE_COMPILE_REQUIRED;
16763     pub const EARLY_RETURN_ON_FAILURE_EXT: Self = Self::EARLY_RETURN_ON_FAILURE;
16764 }
16765 #[doc = "Generated from 'VK_EXT_pipeline_creation_cache_control'"]
16766 impl Result {
16767     pub const PIPELINE_COMPILE_REQUIRED_EXT: Self = Self::PIPELINE_COMPILE_REQUIRED;
16768     pub const ERROR_PIPELINE_COMPILE_REQUIRED_EXT: Self = Self::PIPELINE_COMPILE_REQUIRED;
16769 }
16770 #[doc = "Generated from 'VK_EXT_pipeline_creation_cache_control'"]
16771 impl StructureType {
16772     pub const PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT: Self =
16773         Self::PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES;
16774 }
16775 impl KhrExtension299Fn {
16776     #[inline]
name() -> &'static ::std::ffi::CStr16777     pub const fn name() -> &'static ::std::ffi::CStr {
16778         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_299\0") }
16779     }
16780     pub const SPEC_VERSION: u32 = 0u32;
16781 }
16782 #[derive(Clone)]
16783 pub struct KhrExtension299Fn {}
16784 unsafe impl Send for KhrExtension299Fn {}
16785 unsafe impl Sync for KhrExtension299Fn {}
16786 impl KhrExtension299Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16787     pub fn load<F>(mut _f: F) -> Self
16788     where
16789         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16790     {
16791         Self {}
16792     }
16793 }
16794 impl KhrVideoEncodeQueueFn {
16795     #[inline]
name() -> &'static ::std::ffi::CStr16796     pub const fn name() -> &'static ::std::ffi::CStr {
16797         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_encode_queue\0") }
16798     }
16799     pub const SPEC_VERSION: u32 = 8u32;
16800 }
16801 #[allow(non_camel_case_types)]
16802 pub type PFN_vkCmdEncodeVideoKHR = unsafe extern "system" fn(
16803     command_buffer: CommandBuffer,
16804     p_encode_info: *const VideoEncodeInfoKHR,
16805 );
16806 #[derive(Clone)]
16807 pub struct KhrVideoEncodeQueueFn {
16808     pub cmd_encode_video_khr: PFN_vkCmdEncodeVideoKHR,
16809 }
16810 unsafe impl Send for KhrVideoEncodeQueueFn {}
16811 unsafe impl Sync for KhrVideoEncodeQueueFn {}
16812 impl KhrVideoEncodeQueueFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16813     pub fn load<F>(mut _f: F) -> Self
16814     where
16815         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16816     {
16817         Self {
16818             cmd_encode_video_khr: unsafe {
16819                 unsafe extern "system" fn cmd_encode_video_khr(
16820                     _command_buffer: CommandBuffer,
16821                     _p_encode_info: *const VideoEncodeInfoKHR,
16822                 ) {
16823                     panic!(concat!("Unable to load ", stringify!(cmd_encode_video_khr)))
16824                 }
16825                 let cname =
16826                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdEncodeVideoKHR\0");
16827                 let val = _f(cname);
16828                 if val.is_null() {
16829                     cmd_encode_video_khr
16830                 } else {
16831                     ::std::mem::transmute(val)
16832                 }
16833             },
16834         }
16835     }
16836 }
16837 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
16838 impl AccessFlags2 {
16839     pub const VIDEO_ENCODE_READ_KHR: Self = Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000_0000);
16840     pub const VIDEO_ENCODE_WRITE_KHR: Self =
16841         Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000_0000);
16842 }
16843 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
16844 impl BufferUsageFlags {
16845     pub const VIDEO_ENCODE_DST_KHR: Self = Self(0b1000_0000_0000_0000);
16846     pub const VIDEO_ENCODE_SRC_KHR: Self = Self(0b1_0000_0000_0000_0000);
16847 }
16848 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
16849 impl FormatFeatureFlags {
16850     pub const VIDEO_ENCODE_INPUT_KHR: Self = Self(0b1000_0000_0000_0000_0000_0000_0000);
16851     pub const VIDEO_ENCODE_DPB_KHR: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000);
16852 }
16853 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
16854 impl FormatFeatureFlags2 {
16855     pub const VIDEO_ENCODE_INPUT_KHR: Self = Self(0b1000_0000_0000_0000_0000_0000_0000);
16856     pub const VIDEO_ENCODE_DPB_KHR: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000);
16857 }
16858 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
16859 impl ImageLayout {
16860     pub const VIDEO_ENCODE_DST_KHR: Self = Self(1_000_299_000);
16861     pub const VIDEO_ENCODE_SRC_KHR: Self = Self(1_000_299_001);
16862     pub const VIDEO_ENCODE_DPB_KHR: Self = Self(1_000_299_002);
16863 }
16864 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
16865 impl ImageUsageFlags {
16866     pub const VIDEO_ENCODE_DST_KHR: Self = Self(0b10_0000_0000_0000);
16867     pub const VIDEO_ENCODE_SRC_KHR: Self = Self(0b100_0000_0000_0000);
16868     pub const VIDEO_ENCODE_DPB_KHR: Self = Self(0b1000_0000_0000_0000);
16869 }
16870 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
16871 impl PipelineStageFlags2 {
16872     pub const VIDEO_ENCODE_KHR: Self = Self(0b1000_0000_0000_0000_0000_0000_0000);
16873 }
16874 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
16875 impl QueryType {
16876     pub const VIDEO_ENCODE_FEEDBACK_KHR: Self = Self(1_000_299_000);
16877 }
16878 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
16879 impl QueueFlags {
16880     pub const VIDEO_ENCODE_KHR: Self = Self(0b100_0000);
16881 }
16882 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
16883 impl Result {
16884     pub const ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR: Self = Self(-1_000_299_000);
16885 }
16886 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
16887 impl StructureType {
16888     pub const VIDEO_ENCODE_INFO_KHR: Self = Self(1_000_299_000);
16889     pub const VIDEO_ENCODE_RATE_CONTROL_INFO_KHR: Self = Self(1_000_299_001);
16890     pub const VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR: Self = Self(1_000_299_002);
16891     pub const VIDEO_ENCODE_CAPABILITIES_KHR: Self = Self(1_000_299_003);
16892     pub const VIDEO_ENCODE_USAGE_INFO_KHR: Self = Self(1_000_299_004);
16893     pub const QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR: Self = Self(1_000_299_005);
16894 }
16895 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
16896 impl VideoCodingControlFlagsKHR {
16897     pub const ENCODE_RATE_CONTROL: Self = Self(0b10);
16898     pub const ENCODE_RATE_CONTROL_LAYER: Self = Self(0b100);
16899 }
16900 impl NvDeviceDiagnosticsConfigFn {
16901     #[inline]
name() -> &'static ::std::ffi::CStr16902     pub const fn name() -> &'static ::std::ffi::CStr {
16903         unsafe {
16904             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_device_diagnostics_config\0")
16905         }
16906     }
16907     pub const SPEC_VERSION: u32 = 2u32;
16908 }
16909 #[derive(Clone)]
16910 pub struct NvDeviceDiagnosticsConfigFn {}
16911 unsafe impl Send for NvDeviceDiagnosticsConfigFn {}
16912 unsafe impl Sync for NvDeviceDiagnosticsConfigFn {}
16913 impl NvDeviceDiagnosticsConfigFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16914     pub fn load<F>(mut _f: F) -> Self
16915     where
16916         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16917     {
16918         Self {}
16919     }
16920 }
16921 #[doc = "Generated from 'VK_NV_device_diagnostics_config'"]
16922 impl StructureType {
16923     pub const PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV: Self = Self(1_000_300_000);
16924     pub const DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV: Self = Self(1_000_300_001);
16925 }
16926 impl QcomRenderPassStoreOpsFn {
16927     #[inline]
name() -> &'static ::std::ffi::CStr16928     pub const fn name() -> &'static ::std::ffi::CStr {
16929         unsafe {
16930             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_render_pass_store_ops\0")
16931         }
16932     }
16933     pub const SPEC_VERSION: u32 = 2u32;
16934 }
16935 #[derive(Clone)]
16936 pub struct QcomRenderPassStoreOpsFn {}
16937 unsafe impl Send for QcomRenderPassStoreOpsFn {}
16938 unsafe impl Sync for QcomRenderPassStoreOpsFn {}
16939 impl QcomRenderPassStoreOpsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16940     pub fn load<F>(mut _f: F) -> Self
16941     where
16942         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16943     {
16944         Self {}
16945     }
16946 }
16947 #[doc = "Generated from 'VK_QCOM_render_pass_store_ops'"]
16948 impl AttachmentStoreOp {
16949     pub const NONE_QCOM: Self = Self::NONE;
16950 }
16951 impl QcomExtension303Fn {
16952     #[inline]
name() -> &'static ::std::ffi::CStr16953     pub const fn name() -> &'static ::std::ffi::CStr {
16954         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_303\0") }
16955     }
16956     pub const SPEC_VERSION: u32 = 0u32;
16957 }
16958 #[derive(Clone)]
16959 pub struct QcomExtension303Fn {}
16960 unsafe impl Send for QcomExtension303Fn {}
16961 unsafe impl Sync for QcomExtension303Fn {}
16962 impl QcomExtension303Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16963     pub fn load<F>(mut _f: F) -> Self
16964     where
16965         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16966     {
16967         Self {}
16968     }
16969 }
16970 impl QcomExtension304Fn {
16971     #[inline]
name() -> &'static ::std::ffi::CStr16972     pub const fn name() -> &'static ::std::ffi::CStr {
16973         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_304\0") }
16974     }
16975     pub const SPEC_VERSION: u32 = 0u32;
16976 }
16977 #[derive(Clone)]
16978 pub struct QcomExtension304Fn {}
16979 unsafe impl Send for QcomExtension304Fn {}
16980 unsafe impl Sync for QcomExtension304Fn {}
16981 impl QcomExtension304Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16982     pub fn load<F>(mut _f: F) -> Self
16983     where
16984         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16985     {
16986         Self {}
16987     }
16988 }
16989 impl QcomExtension305Fn {
16990     #[inline]
name() -> &'static ::std::ffi::CStr16991     pub const fn name() -> &'static ::std::ffi::CStr {
16992         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_305\0") }
16993     }
16994     pub const SPEC_VERSION: u32 = 0u32;
16995 }
16996 #[derive(Clone)]
16997 pub struct QcomExtension305Fn {}
16998 unsafe impl Send for QcomExtension305Fn {}
16999 unsafe impl Sync for QcomExtension305Fn {}
17000 impl QcomExtension305Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17001     pub fn load<F>(mut _f: F) -> Self
17002     where
17003         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17004     {
17005         Self {}
17006     }
17007 }
17008 impl QcomExtension306Fn {
17009     #[inline]
name() -> &'static ::std::ffi::CStr17010     pub const fn name() -> &'static ::std::ffi::CStr {
17011         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_306\0") }
17012     }
17013     pub const SPEC_VERSION: u32 = 0u32;
17014 }
17015 #[derive(Clone)]
17016 pub struct QcomExtension306Fn {}
17017 unsafe impl Send for QcomExtension306Fn {}
17018 unsafe impl Sync for QcomExtension306Fn {}
17019 impl QcomExtension306Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17020     pub fn load<F>(mut _f: F) -> Self
17021     where
17022         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17023     {
17024         Self {}
17025     }
17026 }
17027 impl QcomExtension307Fn {
17028     #[inline]
name() -> &'static ::std::ffi::CStr17029     pub const fn name() -> &'static ::std::ffi::CStr {
17030         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_307\0") }
17031     }
17032     pub const SPEC_VERSION: u32 = 0u32;
17033 }
17034 #[derive(Clone)]
17035 pub struct QcomExtension307Fn {}
17036 unsafe impl Send for QcomExtension307Fn {}
17037 unsafe impl Sync for QcomExtension307Fn {}
17038 impl QcomExtension307Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17039     pub fn load<F>(mut _f: F) -> Self
17040     where
17041         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17042     {
17043         Self {}
17044     }
17045 }
17046 impl NvExtension308Fn {
17047     #[inline]
name() -> &'static ::std::ffi::CStr17048     pub const fn name() -> &'static ::std::ffi::CStr {
17049         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_308\0") }
17050     }
17051     pub const SPEC_VERSION: u32 = 0u32;
17052 }
17053 #[derive(Clone)]
17054 pub struct NvExtension308Fn {}
17055 unsafe impl Send for NvExtension308Fn {}
17056 unsafe impl Sync for NvExtension308Fn {}
17057 impl NvExtension308Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17058     pub fn load<F>(mut _f: F) -> Self
17059     where
17060         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17061     {
17062         Self {}
17063     }
17064 }
17065 impl QcomExtension310Fn {
17066     #[inline]
name() -> &'static ::std::ffi::CStr17067     pub const fn name() -> &'static ::std::ffi::CStr {
17068         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_310\0") }
17069     }
17070     pub const SPEC_VERSION: u32 = 0u32;
17071 }
17072 #[derive(Clone)]
17073 pub struct QcomExtension310Fn {}
17074 unsafe impl Send for QcomExtension310Fn {}
17075 unsafe impl Sync for QcomExtension310Fn {}
17076 impl QcomExtension310Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17077     pub fn load<F>(mut _f: F) -> Self
17078     where
17079         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17080     {
17081         Self {}
17082     }
17083 }
17084 #[doc = "Generated from 'VK_QCOM_extension_310'"]
17085 impl StructureType {
17086     pub const RESERVED_QCOM: Self = Self(1_000_309_000);
17087 }
17088 impl NvLowLatencyFn {
17089     #[inline]
name() -> &'static ::std::ffi::CStr17090     pub const fn name() -> &'static ::std::ffi::CStr {
17091         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_low_latency\0") }
17092     }
17093     pub const SPEC_VERSION: u32 = 1u32;
17094 }
17095 #[derive(Clone)]
17096 pub struct NvLowLatencyFn {}
17097 unsafe impl Send for NvLowLatencyFn {}
17098 unsafe impl Sync for NvLowLatencyFn {}
17099 impl NvLowLatencyFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17100     pub fn load<F>(mut _f: F) -> Self
17101     where
17102         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17103     {
17104         Self {}
17105     }
17106 }
17107 #[doc = "Generated from 'VK_NV_low_latency'"]
17108 impl StructureType {
17109     pub const QUERY_LOW_LATENCY_SUPPORT_NV: Self = Self(1_000_310_000);
17110 }
17111 impl ExtMetalObjectsFn {
17112     #[inline]
name() -> &'static ::std::ffi::CStr17113     pub const fn name() -> &'static ::std::ffi::CStr {
17114         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_metal_objects\0") }
17115     }
17116     pub const SPEC_VERSION: u32 = 1u32;
17117 }
17118 #[allow(non_camel_case_types)]
17119 pub type PFN_vkExportMetalObjectsEXT =
17120     unsafe extern "system" fn(device: Device, p_metal_objects_info: *mut ExportMetalObjectsInfoEXT);
17121 #[derive(Clone)]
17122 pub struct ExtMetalObjectsFn {
17123     pub export_metal_objects_ext: PFN_vkExportMetalObjectsEXT,
17124 }
17125 unsafe impl Send for ExtMetalObjectsFn {}
17126 unsafe impl Sync for ExtMetalObjectsFn {}
17127 impl ExtMetalObjectsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17128     pub fn load<F>(mut _f: F) -> Self
17129     where
17130         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17131     {
17132         Self {
17133             export_metal_objects_ext: unsafe {
17134                 unsafe extern "system" fn export_metal_objects_ext(
17135                     _device: Device,
17136                     _p_metal_objects_info: *mut ExportMetalObjectsInfoEXT,
17137                 ) {
17138                     panic!(concat!(
17139                         "Unable to load ",
17140                         stringify!(export_metal_objects_ext)
17141                     ))
17142                 }
17143                 let cname =
17144                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkExportMetalObjectsEXT\0");
17145                 let val = _f(cname);
17146                 if val.is_null() {
17147                     export_metal_objects_ext
17148                 } else {
17149                     ::std::mem::transmute(val)
17150                 }
17151             },
17152         }
17153     }
17154 }
17155 #[doc = "Generated from 'VK_EXT_metal_objects'"]
17156 impl StructureType {
17157     pub const EXPORT_METAL_OBJECT_CREATE_INFO_EXT: Self = Self(1_000_311_000);
17158     pub const EXPORT_METAL_OBJECTS_INFO_EXT: Self = Self(1_000_311_001);
17159     pub const EXPORT_METAL_DEVICE_INFO_EXT: Self = Self(1_000_311_002);
17160     pub const EXPORT_METAL_COMMAND_QUEUE_INFO_EXT: Self = Self(1_000_311_003);
17161     pub const EXPORT_METAL_BUFFER_INFO_EXT: Self = Self(1_000_311_004);
17162     pub const IMPORT_METAL_BUFFER_INFO_EXT: Self = Self(1_000_311_005);
17163     pub const EXPORT_METAL_TEXTURE_INFO_EXT: Self = Self(1_000_311_006);
17164     pub const IMPORT_METAL_TEXTURE_INFO_EXT: Self = Self(1_000_311_007);
17165     pub const EXPORT_METAL_IO_SURFACE_INFO_EXT: Self = Self(1_000_311_008);
17166     pub const IMPORT_METAL_IO_SURFACE_INFO_EXT: Self = Self(1_000_311_009);
17167     pub const EXPORT_METAL_SHARED_EVENT_INFO_EXT: Self = Self(1_000_311_010);
17168     pub const IMPORT_METAL_SHARED_EVENT_INFO_EXT: Self = Self(1_000_311_011);
17169 }
17170 impl ExtExtension313Fn {
17171     #[inline]
name() -> &'static ::std::ffi::CStr17172     pub const fn name() -> &'static ::std::ffi::CStr {
17173         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_313\0") }
17174     }
17175     pub const SPEC_VERSION: u32 = 0u32;
17176 }
17177 #[derive(Clone)]
17178 pub struct ExtExtension313Fn {}
17179 unsafe impl Send for ExtExtension313Fn {}
17180 unsafe impl Sync for ExtExtension313Fn {}
17181 impl ExtExtension313Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17182     pub fn load<F>(mut _f: F) -> Self
17183     where
17184         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17185     {
17186         Self {}
17187     }
17188 }
17189 impl AmdExtension314Fn {
17190     #[inline]
name() -> &'static ::std::ffi::CStr17191     pub const fn name() -> &'static ::std::ffi::CStr {
17192         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_314\0") }
17193     }
17194     pub const SPEC_VERSION: u32 = 0u32;
17195 }
17196 #[derive(Clone)]
17197 pub struct AmdExtension314Fn {}
17198 unsafe impl Send for AmdExtension314Fn {}
17199 unsafe impl Sync for AmdExtension314Fn {}
17200 impl AmdExtension314Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17201     pub fn load<F>(mut _f: F) -> Self
17202     where
17203         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17204     {
17205         Self {}
17206     }
17207 }
17208 impl KhrSynchronization2Fn {
17209     #[inline]
name() -> &'static ::std::ffi::CStr17210     pub const fn name() -> &'static ::std::ffi::CStr {
17211         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_synchronization2\0") }
17212     }
17213     pub const SPEC_VERSION: u32 = 1u32;
17214 }
17215 #[allow(non_camel_case_types)]
17216 pub type PFN_vkCmdSetEvent2 = unsafe extern "system" fn(
17217     command_buffer: CommandBuffer,
17218     event: Event,
17219     p_dependency_info: *const DependencyInfo,
17220 );
17221 #[allow(non_camel_case_types)]
17222 pub type PFN_vkCmdResetEvent2 = unsafe extern "system" fn(
17223     command_buffer: CommandBuffer,
17224     event: Event,
17225     stage_mask: PipelineStageFlags2,
17226 );
17227 #[allow(non_camel_case_types)]
17228 pub type PFN_vkCmdWaitEvents2 = unsafe extern "system" fn(
17229     command_buffer: CommandBuffer,
17230     event_count: u32,
17231     p_events: *const Event,
17232     p_dependency_infos: *const DependencyInfo,
17233 );
17234 #[allow(non_camel_case_types)]
17235 pub type PFN_vkCmdPipelineBarrier2 = unsafe extern "system" fn(
17236     command_buffer: CommandBuffer,
17237     p_dependency_info: *const DependencyInfo,
17238 );
17239 #[allow(non_camel_case_types)]
17240 pub type PFN_vkCmdWriteTimestamp2 = unsafe extern "system" fn(
17241     command_buffer: CommandBuffer,
17242     stage: PipelineStageFlags2,
17243     query_pool: QueryPool,
17244     query: u32,
17245 );
17246 #[allow(non_camel_case_types)]
17247 pub type PFN_vkQueueSubmit2 = unsafe extern "system" fn(
17248     queue: Queue,
17249     submit_count: u32,
17250     p_submits: *const SubmitInfo2,
17251     fence: Fence,
17252 ) -> Result;
17253 #[allow(non_camel_case_types)]
17254 pub type PFN_vkCmdWriteBufferMarker2AMD = unsafe extern "system" fn(
17255     command_buffer: CommandBuffer,
17256     stage: PipelineStageFlags2,
17257     dst_buffer: Buffer,
17258     dst_offset: DeviceSize,
17259     marker: u32,
17260 );
17261 #[allow(non_camel_case_types)]
17262 pub type PFN_vkGetQueueCheckpointData2NV = unsafe extern "system" fn(
17263     queue: Queue,
17264     p_checkpoint_data_count: *mut u32,
17265     p_checkpoint_data: *mut CheckpointData2NV,
17266 );
17267 #[derive(Clone)]
17268 pub struct KhrSynchronization2Fn {
17269     pub cmd_set_event2_khr: PFN_vkCmdSetEvent2,
17270     pub cmd_reset_event2_khr: PFN_vkCmdResetEvent2,
17271     pub cmd_wait_events2_khr: PFN_vkCmdWaitEvents2,
17272     pub cmd_pipeline_barrier2_khr: PFN_vkCmdPipelineBarrier2,
17273     pub cmd_write_timestamp2_khr: PFN_vkCmdWriteTimestamp2,
17274     pub queue_submit2_khr: PFN_vkQueueSubmit2,
17275     pub cmd_write_buffer_marker2_amd: PFN_vkCmdWriteBufferMarker2AMD,
17276     pub get_queue_checkpoint_data2_nv: PFN_vkGetQueueCheckpointData2NV,
17277 }
17278 unsafe impl Send for KhrSynchronization2Fn {}
17279 unsafe impl Sync for KhrSynchronization2Fn {}
17280 impl KhrSynchronization2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17281     pub fn load<F>(mut _f: F) -> Self
17282     where
17283         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17284     {
17285         Self {
17286             cmd_set_event2_khr: unsafe {
17287                 unsafe extern "system" fn cmd_set_event2_khr(
17288                     _command_buffer: CommandBuffer,
17289                     _event: Event,
17290                     _p_dependency_info: *const DependencyInfo,
17291                 ) {
17292                     panic!(concat!("Unable to load ", stringify!(cmd_set_event2_khr)))
17293                 }
17294                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetEvent2KHR\0");
17295                 let val = _f(cname);
17296                 if val.is_null() {
17297                     cmd_set_event2_khr
17298                 } else {
17299                     ::std::mem::transmute(val)
17300                 }
17301             },
17302             cmd_reset_event2_khr: unsafe {
17303                 unsafe extern "system" fn cmd_reset_event2_khr(
17304                     _command_buffer: CommandBuffer,
17305                     _event: Event,
17306                     _stage_mask: PipelineStageFlags2,
17307                 ) {
17308                     panic!(concat!("Unable to load ", stringify!(cmd_reset_event2_khr)))
17309                 }
17310                 let cname =
17311                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdResetEvent2KHR\0");
17312                 let val = _f(cname);
17313                 if val.is_null() {
17314                     cmd_reset_event2_khr
17315                 } else {
17316                     ::std::mem::transmute(val)
17317                 }
17318             },
17319             cmd_wait_events2_khr: unsafe {
17320                 unsafe extern "system" fn cmd_wait_events2_khr(
17321                     _command_buffer: CommandBuffer,
17322                     _event_count: u32,
17323                     _p_events: *const Event,
17324                     _p_dependency_infos: *const DependencyInfo,
17325                 ) {
17326                     panic!(concat!("Unable to load ", stringify!(cmd_wait_events2_khr)))
17327                 }
17328                 let cname =
17329                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdWaitEvents2KHR\0");
17330                 let val = _f(cname);
17331                 if val.is_null() {
17332                     cmd_wait_events2_khr
17333                 } else {
17334                     ::std::mem::transmute(val)
17335                 }
17336             },
17337             cmd_pipeline_barrier2_khr: unsafe {
17338                 unsafe extern "system" fn cmd_pipeline_barrier2_khr(
17339                     _command_buffer: CommandBuffer,
17340                     _p_dependency_info: *const DependencyInfo,
17341                 ) {
17342                     panic!(concat!(
17343                         "Unable to load ",
17344                         stringify!(cmd_pipeline_barrier2_khr)
17345                     ))
17346                 }
17347                 let cname =
17348                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdPipelineBarrier2KHR\0");
17349                 let val = _f(cname);
17350                 if val.is_null() {
17351                     cmd_pipeline_barrier2_khr
17352                 } else {
17353                     ::std::mem::transmute(val)
17354                 }
17355             },
17356             cmd_write_timestamp2_khr: unsafe {
17357                 unsafe extern "system" fn cmd_write_timestamp2_khr(
17358                     _command_buffer: CommandBuffer,
17359                     _stage: PipelineStageFlags2,
17360                     _query_pool: QueryPool,
17361                     _query: u32,
17362                 ) {
17363                     panic!(concat!(
17364                         "Unable to load ",
17365                         stringify!(cmd_write_timestamp2_khr)
17366                     ))
17367                 }
17368                 let cname =
17369                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdWriteTimestamp2KHR\0");
17370                 let val = _f(cname);
17371                 if val.is_null() {
17372                     cmd_write_timestamp2_khr
17373                 } else {
17374                     ::std::mem::transmute(val)
17375                 }
17376             },
17377             queue_submit2_khr: unsafe {
17378                 unsafe extern "system" fn queue_submit2_khr(
17379                     _queue: Queue,
17380                     _submit_count: u32,
17381                     _p_submits: *const SubmitInfo2,
17382                     _fence: Fence,
17383                 ) -> Result {
17384                     panic!(concat!("Unable to load ", stringify!(queue_submit2_khr)))
17385                 }
17386                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkQueueSubmit2KHR\0");
17387                 let val = _f(cname);
17388                 if val.is_null() {
17389                     queue_submit2_khr
17390                 } else {
17391                     ::std::mem::transmute(val)
17392                 }
17393             },
17394             cmd_write_buffer_marker2_amd: unsafe {
17395                 unsafe extern "system" fn cmd_write_buffer_marker2_amd(
17396                     _command_buffer: CommandBuffer,
17397                     _stage: PipelineStageFlags2,
17398                     _dst_buffer: Buffer,
17399                     _dst_offset: DeviceSize,
17400                     _marker: u32,
17401                 ) {
17402                     panic!(concat!(
17403                         "Unable to load ",
17404                         stringify!(cmd_write_buffer_marker2_amd)
17405                     ))
17406                 }
17407                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17408                     b"vkCmdWriteBufferMarker2AMD\0",
17409                 );
17410                 let val = _f(cname);
17411                 if val.is_null() {
17412                     cmd_write_buffer_marker2_amd
17413                 } else {
17414                     ::std::mem::transmute(val)
17415                 }
17416             },
17417             get_queue_checkpoint_data2_nv: unsafe {
17418                 unsafe extern "system" fn get_queue_checkpoint_data2_nv(
17419                     _queue: Queue,
17420                     _p_checkpoint_data_count: *mut u32,
17421                     _p_checkpoint_data: *mut CheckpointData2NV,
17422                 ) {
17423                     panic!(concat!(
17424                         "Unable to load ",
17425                         stringify!(get_queue_checkpoint_data2_nv)
17426                     ))
17427                 }
17428                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17429                     b"vkGetQueueCheckpointData2NV\0",
17430                 );
17431                 let val = _f(cname);
17432                 if val.is_null() {
17433                     get_queue_checkpoint_data2_nv
17434                 } else {
17435                     ::std::mem::transmute(val)
17436                 }
17437             },
17438         }
17439     }
17440 }
17441 #[doc = "Generated from 'VK_KHR_synchronization2'"]
17442 impl AccessFlags {
17443     pub const NONE_KHR: Self = Self::NONE;
17444 }
17445 #[doc = "Generated from 'VK_KHR_synchronization2'"]
17446 impl AccessFlags2 {
17447     pub const TRANSFORM_FEEDBACK_WRITE_EXT: Self = Self(0b10_0000_0000_0000_0000_0000_0000);
17448     pub const TRANSFORM_FEEDBACK_COUNTER_READ_EXT: Self = Self(0b100_0000_0000_0000_0000_0000_0000);
17449     pub const TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT: Self =
17450         Self(0b1000_0000_0000_0000_0000_0000_0000);
17451     #[doc = "read access flag for reading conditional rendering predicate"]
17452     pub const CONDITIONAL_RENDERING_READ_EXT: Self = Self(0b1_0000_0000_0000_0000_0000);
17453     pub const COMMAND_PREPROCESS_READ_NV: Self = Self(0b10_0000_0000_0000_0000);
17454     pub const COMMAND_PREPROCESS_WRITE_NV: Self = Self(0b100_0000_0000_0000_0000);
17455     pub const FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR: Self =
17456         Self(0b1000_0000_0000_0000_0000_0000);
17457     pub const SHADING_RATE_IMAGE_READ_NV: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR;
17458     pub const ACCELERATION_STRUCTURE_READ_KHR: Self = Self(0b10_0000_0000_0000_0000_0000);
17459     pub const ACCELERATION_STRUCTURE_WRITE_KHR: Self = Self(0b100_0000_0000_0000_0000_0000);
17460     pub const ACCELERATION_STRUCTURE_READ_NV: Self = Self::ACCELERATION_STRUCTURE_READ_KHR;
17461     pub const ACCELERATION_STRUCTURE_WRITE_NV: Self = Self::ACCELERATION_STRUCTURE_WRITE_KHR;
17462     pub const FRAGMENT_DENSITY_MAP_READ_EXT: Self = Self(0b1_0000_0000_0000_0000_0000_0000);
17463     pub const COLOR_ATTACHMENT_READ_NONCOHERENT_EXT: Self = Self(0b1000_0000_0000_0000_0000);
17464 }
17465 #[doc = "Generated from 'VK_KHR_synchronization2'"]
17466 impl EventCreateFlags {
17467     pub const DEVICE_ONLY_KHR: Self = Self::DEVICE_ONLY;
17468 }
17469 #[doc = "Generated from 'VK_KHR_synchronization2'"]
17470 impl ImageLayout {
17471     pub const READ_ONLY_OPTIMAL_KHR: Self = Self::READ_ONLY_OPTIMAL;
17472     pub const ATTACHMENT_OPTIMAL_KHR: Self = Self::ATTACHMENT_OPTIMAL;
17473 }
17474 #[doc = "Generated from 'VK_KHR_synchronization2'"]
17475 impl PipelineStageFlags {
17476     pub const NONE_KHR: Self = Self::NONE;
17477 }
17478 #[doc = "Generated from 'VK_KHR_synchronization2'"]
17479 impl PipelineStageFlags2 {
17480     pub const TRANSFORM_FEEDBACK_EXT: Self = Self(0b1_0000_0000_0000_0000_0000_0000);
17481     #[doc = "A pipeline stage for conditional rendering predicate fetch"]
17482     pub const CONDITIONAL_RENDERING_EXT: Self = Self(0b100_0000_0000_0000_0000);
17483     pub const COMMAND_PREPROCESS_NV: Self = Self(0b10_0000_0000_0000_0000);
17484     pub const FRAGMENT_SHADING_RATE_ATTACHMENT_KHR: Self = Self(0b100_0000_0000_0000_0000_0000);
17485     pub const SHADING_RATE_IMAGE_NV: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT_KHR;
17486     pub const ACCELERATION_STRUCTURE_BUILD_KHR: Self = Self(0b10_0000_0000_0000_0000_0000_0000);
17487     pub const RAY_TRACING_SHADER_KHR: Self = Self(0b10_0000_0000_0000_0000_0000);
17488     pub const RAY_TRACING_SHADER_NV: Self = Self::RAY_TRACING_SHADER_KHR;
17489     pub const ACCELERATION_STRUCTURE_BUILD_NV: Self = Self::ACCELERATION_STRUCTURE_BUILD_KHR;
17490     pub const FRAGMENT_DENSITY_PROCESS_EXT: Self = Self(0b1000_0000_0000_0000_0000_0000);
17491     pub const TASK_SHADER_NV: Self = Self::TASK_SHADER_EXT;
17492     pub const MESH_SHADER_NV: Self = Self::MESH_SHADER_EXT;
17493     pub const TASK_SHADER_EXT: Self = Self(0b1000_0000_0000_0000_0000);
17494     pub const MESH_SHADER_EXT: Self = Self(0b1_0000_0000_0000_0000_0000);
17495 }
17496 #[doc = "Generated from 'VK_KHR_synchronization2'"]
17497 impl StructureType {
17498     pub const MEMORY_BARRIER_2_KHR: Self = Self::MEMORY_BARRIER_2;
17499     pub const BUFFER_MEMORY_BARRIER_2_KHR: Self = Self::BUFFER_MEMORY_BARRIER_2;
17500     pub const IMAGE_MEMORY_BARRIER_2_KHR: Self = Self::IMAGE_MEMORY_BARRIER_2;
17501     pub const DEPENDENCY_INFO_KHR: Self = Self::DEPENDENCY_INFO;
17502     pub const SUBMIT_INFO_2_KHR: Self = Self::SUBMIT_INFO_2;
17503     pub const SEMAPHORE_SUBMIT_INFO_KHR: Self = Self::SEMAPHORE_SUBMIT_INFO;
17504     pub const COMMAND_BUFFER_SUBMIT_INFO_KHR: Self = Self::COMMAND_BUFFER_SUBMIT_INFO;
17505     pub const PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR: Self =
17506         Self::PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES;
17507     pub const QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: Self = Self(1_000_314_008);
17508     pub const CHECKPOINT_DATA_2_NV: Self = Self(1_000_314_009);
17509 }
17510 impl AmdExtension316Fn {
17511     #[inline]
name() -> &'static ::std::ffi::CStr17512     pub const fn name() -> &'static ::std::ffi::CStr {
17513         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_316\0") }
17514     }
17515     pub const SPEC_VERSION: u32 = 0u32;
17516 }
17517 #[derive(Clone)]
17518 pub struct AmdExtension316Fn {}
17519 unsafe impl Send for AmdExtension316Fn {}
17520 unsafe impl Sync for AmdExtension316Fn {}
17521 impl AmdExtension316Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17522     pub fn load<F>(mut _f: F) -> Self
17523     where
17524         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17525     {
17526         Self {}
17527     }
17528 }
17529 impl ExtDescriptorBufferFn {
17530     #[inline]
name() -> &'static ::std::ffi::CStr17531     pub const fn name() -> &'static ::std::ffi::CStr {
17532         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_descriptor_buffer\0") }
17533     }
17534     pub const SPEC_VERSION: u32 = 1u32;
17535 }
17536 #[allow(non_camel_case_types)]
17537 pub type PFN_vkGetDescriptorSetLayoutSizeEXT = unsafe extern "system" fn(
17538     device: Device,
17539     layout: DescriptorSetLayout,
17540     p_layout_size_in_bytes: *mut DeviceSize,
17541 );
17542 #[allow(non_camel_case_types)]
17543 pub type PFN_vkGetDescriptorSetLayoutBindingOffsetEXT = unsafe extern "system" fn(
17544     device: Device,
17545     layout: DescriptorSetLayout,
17546     binding: u32,
17547     p_offset: *mut DeviceSize,
17548 );
17549 #[allow(non_camel_case_types)]
17550 pub type PFN_vkGetDescriptorEXT = unsafe extern "system" fn(
17551     device: Device,
17552     p_descriptor_info: *const DescriptorGetInfoEXT,
17553     data_size: usize,
17554     p_descriptor: *mut c_void,
17555 );
17556 #[allow(non_camel_case_types)]
17557 pub type PFN_vkCmdBindDescriptorBuffersEXT = unsafe extern "system" fn(
17558     command_buffer: CommandBuffer,
17559     buffer_count: u32,
17560     p_binding_infos: *const DescriptorBufferBindingInfoEXT,
17561 );
17562 #[allow(non_camel_case_types)]
17563 pub type PFN_vkCmdSetDescriptorBufferOffsetsEXT = unsafe extern "system" fn(
17564     command_buffer: CommandBuffer,
17565     pipeline_bind_point: PipelineBindPoint,
17566     layout: PipelineLayout,
17567     first_set: u32,
17568     set_count: u32,
17569     p_buffer_indices: *const u32,
17570     p_offsets: *const DeviceSize,
17571 );
17572 #[allow(non_camel_case_types)]
17573 pub type PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT = unsafe extern "system" fn(
17574     command_buffer: CommandBuffer,
17575     pipeline_bind_point: PipelineBindPoint,
17576     layout: PipelineLayout,
17577     set: u32,
17578 );
17579 #[allow(non_camel_case_types)]
17580 pub type PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT = unsafe extern "system" fn(
17581     device: Device,
17582     p_info: *const BufferCaptureDescriptorDataInfoEXT,
17583     p_data: *mut c_void,
17584 ) -> Result;
17585 #[allow(non_camel_case_types)]
17586 pub type PFN_vkGetImageOpaqueCaptureDescriptorDataEXT = unsafe extern "system" fn(
17587     device: Device,
17588     p_info: *const ImageCaptureDescriptorDataInfoEXT,
17589     p_data: *mut c_void,
17590 ) -> Result;
17591 #[allow(non_camel_case_types)]
17592 pub type PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT = unsafe extern "system" fn(
17593     device: Device,
17594     p_info: *const ImageViewCaptureDescriptorDataInfoEXT,
17595     p_data: *mut c_void,
17596 ) -> Result;
17597 #[allow(non_camel_case_types)]
17598 pub type PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT = unsafe extern "system" fn(
17599     device: Device,
17600     p_info: *const SamplerCaptureDescriptorDataInfoEXT,
17601     p_data: *mut c_void,
17602 ) -> Result;
17603 #[allow(non_camel_case_types)]
17604 pub type PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT =
17605     unsafe extern "system" fn(
17606         device: Device,
17607         p_info: *const AccelerationStructureCaptureDescriptorDataInfoEXT,
17608         p_data: *mut c_void,
17609     ) -> Result;
17610 #[derive(Clone)]
17611 pub struct ExtDescriptorBufferFn {
17612     pub get_descriptor_set_layout_size_ext: PFN_vkGetDescriptorSetLayoutSizeEXT,
17613     pub get_descriptor_set_layout_binding_offset_ext: PFN_vkGetDescriptorSetLayoutBindingOffsetEXT,
17614     pub get_descriptor_ext: PFN_vkGetDescriptorEXT,
17615     pub cmd_bind_descriptor_buffers_ext: PFN_vkCmdBindDescriptorBuffersEXT,
17616     pub cmd_set_descriptor_buffer_offsets_ext: PFN_vkCmdSetDescriptorBufferOffsetsEXT,
17617     pub cmd_bind_descriptor_buffer_embedded_samplers_ext:
17618         PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT,
17619     pub get_buffer_opaque_capture_descriptor_data_ext:
17620         PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT,
17621     pub get_image_opaque_capture_descriptor_data_ext: PFN_vkGetImageOpaqueCaptureDescriptorDataEXT,
17622     pub get_image_view_opaque_capture_descriptor_data_ext:
17623         PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT,
17624     pub get_sampler_opaque_capture_descriptor_data_ext:
17625         PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT,
17626     pub get_acceleration_structure_opaque_capture_descriptor_data_ext:
17627         PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT,
17628 }
17629 unsafe impl Send for ExtDescriptorBufferFn {}
17630 unsafe impl Sync for ExtDescriptorBufferFn {}
17631 impl ExtDescriptorBufferFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17632     pub fn load<F>(mut _f: F) -> Self
17633     where
17634         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17635     {
17636         Self {
17637             get_descriptor_set_layout_size_ext: unsafe {
17638                 unsafe extern "system" fn get_descriptor_set_layout_size_ext(
17639                     _device: Device,
17640                     _layout: DescriptorSetLayout,
17641                     _p_layout_size_in_bytes: *mut DeviceSize,
17642                 ) {
17643                     panic!(concat!(
17644                         "Unable to load ",
17645                         stringify!(get_descriptor_set_layout_size_ext)
17646                     ))
17647                 }
17648                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17649                     b"vkGetDescriptorSetLayoutSizeEXT\0",
17650                 );
17651                 let val = _f(cname);
17652                 if val.is_null() {
17653                     get_descriptor_set_layout_size_ext
17654                 } else {
17655                     ::std::mem::transmute(val)
17656                 }
17657             },
17658             get_descriptor_set_layout_binding_offset_ext: unsafe {
17659                 unsafe extern "system" fn get_descriptor_set_layout_binding_offset_ext(
17660                     _device: Device,
17661                     _layout: DescriptorSetLayout,
17662                     _binding: u32,
17663                     _p_offset: *mut DeviceSize,
17664                 ) {
17665                     panic!(concat!(
17666                         "Unable to load ",
17667                         stringify!(get_descriptor_set_layout_binding_offset_ext)
17668                     ))
17669                 }
17670                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17671                     b"vkGetDescriptorSetLayoutBindingOffsetEXT\0",
17672                 );
17673                 let val = _f(cname);
17674                 if val.is_null() {
17675                     get_descriptor_set_layout_binding_offset_ext
17676                 } else {
17677                     ::std::mem::transmute(val)
17678                 }
17679             },
17680             get_descriptor_ext: unsafe {
17681                 unsafe extern "system" fn get_descriptor_ext(
17682                     _device: Device,
17683                     _p_descriptor_info: *const DescriptorGetInfoEXT,
17684                     _data_size: usize,
17685                     _p_descriptor: *mut c_void,
17686                 ) {
17687                     panic!(concat!("Unable to load ", stringify!(get_descriptor_ext)))
17688                 }
17689                 let cname =
17690                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetDescriptorEXT\0");
17691                 let val = _f(cname);
17692                 if val.is_null() {
17693                     get_descriptor_ext
17694                 } else {
17695                     ::std::mem::transmute(val)
17696                 }
17697             },
17698             cmd_bind_descriptor_buffers_ext: unsafe {
17699                 unsafe extern "system" fn cmd_bind_descriptor_buffers_ext(
17700                     _command_buffer: CommandBuffer,
17701                     _buffer_count: u32,
17702                     _p_binding_infos: *const DescriptorBufferBindingInfoEXT,
17703                 ) {
17704                     panic!(concat!(
17705                         "Unable to load ",
17706                         stringify!(cmd_bind_descriptor_buffers_ext)
17707                     ))
17708                 }
17709                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17710                     b"vkCmdBindDescriptorBuffersEXT\0",
17711                 );
17712                 let val = _f(cname);
17713                 if val.is_null() {
17714                     cmd_bind_descriptor_buffers_ext
17715                 } else {
17716                     ::std::mem::transmute(val)
17717                 }
17718             },
17719             cmd_set_descriptor_buffer_offsets_ext: unsafe {
17720                 unsafe extern "system" fn cmd_set_descriptor_buffer_offsets_ext(
17721                     _command_buffer: CommandBuffer,
17722                     _pipeline_bind_point: PipelineBindPoint,
17723                     _layout: PipelineLayout,
17724                     _first_set: u32,
17725                     _set_count: u32,
17726                     _p_buffer_indices: *const u32,
17727                     _p_offsets: *const DeviceSize,
17728                 ) {
17729                     panic!(concat!(
17730                         "Unable to load ",
17731                         stringify!(cmd_set_descriptor_buffer_offsets_ext)
17732                     ))
17733                 }
17734                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17735                     b"vkCmdSetDescriptorBufferOffsetsEXT\0",
17736                 );
17737                 let val = _f(cname);
17738                 if val.is_null() {
17739                     cmd_set_descriptor_buffer_offsets_ext
17740                 } else {
17741                     ::std::mem::transmute(val)
17742                 }
17743             },
17744             cmd_bind_descriptor_buffer_embedded_samplers_ext: unsafe {
17745                 unsafe extern "system" fn cmd_bind_descriptor_buffer_embedded_samplers_ext(
17746                     _command_buffer: CommandBuffer,
17747                     _pipeline_bind_point: PipelineBindPoint,
17748                     _layout: PipelineLayout,
17749                     _set: u32,
17750                 ) {
17751                     panic!(concat!(
17752                         "Unable to load ",
17753                         stringify!(cmd_bind_descriptor_buffer_embedded_samplers_ext)
17754                     ))
17755                 }
17756                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17757                     b"vkCmdBindDescriptorBufferEmbeddedSamplersEXT\0",
17758                 );
17759                 let val = _f(cname);
17760                 if val.is_null() {
17761                     cmd_bind_descriptor_buffer_embedded_samplers_ext
17762                 } else {
17763                     ::std::mem::transmute(val)
17764                 }
17765             },
17766             get_buffer_opaque_capture_descriptor_data_ext: unsafe {
17767                 unsafe extern "system" fn get_buffer_opaque_capture_descriptor_data_ext(
17768                     _device: Device,
17769                     _p_info: *const BufferCaptureDescriptorDataInfoEXT,
17770                     _p_data: *mut c_void,
17771                 ) -> Result {
17772                     panic!(concat!(
17773                         "Unable to load ",
17774                         stringify!(get_buffer_opaque_capture_descriptor_data_ext)
17775                     ))
17776                 }
17777                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17778                     b"vkGetBufferOpaqueCaptureDescriptorDataEXT\0",
17779                 );
17780                 let val = _f(cname);
17781                 if val.is_null() {
17782                     get_buffer_opaque_capture_descriptor_data_ext
17783                 } else {
17784                     ::std::mem::transmute(val)
17785                 }
17786             },
17787             get_image_opaque_capture_descriptor_data_ext: unsafe {
17788                 unsafe extern "system" fn get_image_opaque_capture_descriptor_data_ext(
17789                     _device: Device,
17790                     _p_info: *const ImageCaptureDescriptorDataInfoEXT,
17791                     _p_data: *mut c_void,
17792                 ) -> Result {
17793                     panic!(concat!(
17794                         "Unable to load ",
17795                         stringify!(get_image_opaque_capture_descriptor_data_ext)
17796                     ))
17797                 }
17798                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17799                     b"vkGetImageOpaqueCaptureDescriptorDataEXT\0",
17800                 );
17801                 let val = _f(cname);
17802                 if val.is_null() {
17803                     get_image_opaque_capture_descriptor_data_ext
17804                 } else {
17805                     ::std::mem::transmute(val)
17806                 }
17807             },
17808             get_image_view_opaque_capture_descriptor_data_ext: unsafe {
17809                 unsafe extern "system" fn get_image_view_opaque_capture_descriptor_data_ext(
17810                     _device: Device,
17811                     _p_info: *const ImageViewCaptureDescriptorDataInfoEXT,
17812                     _p_data: *mut c_void,
17813                 ) -> Result {
17814                     panic!(concat!(
17815                         "Unable to load ",
17816                         stringify!(get_image_view_opaque_capture_descriptor_data_ext)
17817                     ))
17818                 }
17819                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17820                     b"vkGetImageViewOpaqueCaptureDescriptorDataEXT\0",
17821                 );
17822                 let val = _f(cname);
17823                 if val.is_null() {
17824                     get_image_view_opaque_capture_descriptor_data_ext
17825                 } else {
17826                     ::std::mem::transmute(val)
17827                 }
17828             },
17829             get_sampler_opaque_capture_descriptor_data_ext: unsafe {
17830                 unsafe extern "system" fn get_sampler_opaque_capture_descriptor_data_ext(
17831                     _device: Device,
17832                     _p_info: *const SamplerCaptureDescriptorDataInfoEXT,
17833                     _p_data: *mut c_void,
17834                 ) -> Result {
17835                     panic!(concat!(
17836                         "Unable to load ",
17837                         stringify!(get_sampler_opaque_capture_descriptor_data_ext)
17838                     ))
17839                 }
17840                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17841                     b"vkGetSamplerOpaqueCaptureDescriptorDataEXT\0",
17842                 );
17843                 let val = _f(cname);
17844                 if val.is_null() {
17845                     get_sampler_opaque_capture_descriptor_data_ext
17846                 } else {
17847                     ::std::mem::transmute(val)
17848                 }
17849             },
17850             get_acceleration_structure_opaque_capture_descriptor_data_ext: unsafe {
17851                 unsafe extern "system" fn get_acceleration_structure_opaque_capture_descriptor_data_ext(
17852                     _device: Device,
17853                     _p_info: *const AccelerationStructureCaptureDescriptorDataInfoEXT,
17854                     _p_data: *mut c_void,
17855                 ) -> Result {
17856                     panic!(concat!(
17857                         "Unable to load ",
17858                         stringify!(get_acceleration_structure_opaque_capture_descriptor_data_ext)
17859                     ))
17860                 }
17861                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17862                     b"vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT\0",
17863                 );
17864                 let val = _f(cname);
17865                 if val.is_null() {
17866                     get_acceleration_structure_opaque_capture_descriptor_data_ext
17867                 } else {
17868                     ::std::mem::transmute(val)
17869                 }
17870             },
17871         }
17872     }
17873 }
17874 #[doc = "Generated from 'VK_EXT_descriptor_buffer'"]
17875 impl AccelerationStructureCreateFlagsKHR {
17876     pub const DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT: Self = Self(0b1000);
17877 }
17878 #[doc = "Generated from 'VK_EXT_descriptor_buffer'"]
17879 impl AccessFlags2 {
17880     pub const DESCRIPTOR_BUFFER_READ_EXT: Self =
17881         Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
17882 }
17883 #[doc = "Generated from 'VK_EXT_descriptor_buffer'"]
17884 impl BufferCreateFlags {
17885     pub const DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT: Self = Self(0b10_0000);
17886 }
17887 #[doc = "Generated from 'VK_EXT_descriptor_buffer'"]
17888 impl BufferUsageFlags {
17889     pub const SAMPLER_DESCRIPTOR_BUFFER_EXT: Self = Self(0b10_0000_0000_0000_0000_0000);
17890     pub const RESOURCE_DESCRIPTOR_BUFFER_EXT: Self = Self(0b100_0000_0000_0000_0000_0000);
17891     pub const PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_EXT: Self =
17892         Self(0b100_0000_0000_0000_0000_0000_0000);
17893 }
17894 #[doc = "Generated from 'VK_EXT_descriptor_buffer'"]
17895 impl DescriptorSetLayoutCreateFlags {
17896     pub const DESCRIPTOR_BUFFER_EXT: Self = Self(0b1_0000);
17897     pub const EMBEDDED_IMMUTABLE_SAMPLERS_EXT: Self = Self(0b10_0000);
17898 }
17899 #[doc = "Generated from 'VK_EXT_descriptor_buffer'"]
17900 impl ImageCreateFlags {
17901     pub const DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT: Self = Self(0b1_0000_0000_0000_0000);
17902 }
17903 #[doc = "Generated from 'VK_EXT_descriptor_buffer'"]
17904 impl ImageViewCreateFlags {
17905     pub const DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT: Self = Self(0b100);
17906 }
17907 #[doc = "Generated from 'VK_EXT_descriptor_buffer'"]
17908 impl PipelineCreateFlags {
17909     pub const DESCRIPTOR_BUFFER_EXT: Self = Self(0b10_0000_0000_0000_0000_0000_0000_0000);
17910 }
17911 #[doc = "Generated from 'VK_EXT_descriptor_buffer'"]
17912 impl SamplerCreateFlags {
17913     pub const DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT: Self = Self(0b1000);
17914 }
17915 #[doc = "Generated from 'VK_EXT_descriptor_buffer'"]
17916 impl StructureType {
17917     pub const PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT: Self = Self(1_000_316_000);
17918     pub const PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT: Self =
17919         Self(1_000_316_001);
17920     pub const PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT: Self = Self(1_000_316_002);
17921     pub const DESCRIPTOR_ADDRESS_INFO_EXT: Self = Self(1_000_316_003);
17922     pub const DESCRIPTOR_GET_INFO_EXT: Self = Self(1_000_316_004);
17923     pub const BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT: Self = Self(1_000_316_005);
17924     pub const IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT: Self = Self(1_000_316_006);
17925     pub const IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT: Self = Self(1_000_316_007);
17926     pub const SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT: Self = Self(1_000_316_008);
17927     pub const OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT: Self = Self(1_000_316_010);
17928     pub const DESCRIPTOR_BUFFER_BINDING_INFO_EXT: Self = Self(1_000_316_011);
17929     pub const DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT: Self =
17930         Self(1_000_316_012);
17931     pub const ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT: Self = Self(1_000_316_009);
17932 }
17933 impl AmdExtension318Fn {
17934     #[inline]
name() -> &'static ::std::ffi::CStr17935     pub const fn name() -> &'static ::std::ffi::CStr {
17936         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_318\0") }
17937     }
17938     pub const SPEC_VERSION: u32 = 0u32;
17939 }
17940 #[derive(Clone)]
17941 pub struct AmdExtension318Fn {}
17942 unsafe impl Send for AmdExtension318Fn {}
17943 unsafe impl Sync for AmdExtension318Fn {}
17944 impl AmdExtension318Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17945     pub fn load<F>(mut _f: F) -> Self
17946     where
17947         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17948     {
17949         Self {}
17950     }
17951 }
17952 impl AmdExtension319Fn {
17953     #[inline]
name() -> &'static ::std::ffi::CStr17954     pub const fn name() -> &'static ::std::ffi::CStr {
17955         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_319\0") }
17956     }
17957     pub const SPEC_VERSION: u32 = 0u32;
17958 }
17959 #[derive(Clone)]
17960 pub struct AmdExtension319Fn {}
17961 unsafe impl Send for AmdExtension319Fn {}
17962 unsafe impl Sync for AmdExtension319Fn {}
17963 impl AmdExtension319Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17964     pub fn load<F>(mut _f: F) -> Self
17965     where
17966         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17967     {
17968         Self {}
17969     }
17970 }
17971 #[doc = "Generated from 'VK_AMD_extension_319'"]
17972 impl DescriptorSetLayoutCreateFlags {
17973     pub const RESERVED_3_AMD: Self = Self(0b1000);
17974 }
17975 #[doc = "Generated from 'VK_AMD_extension_319'"]
17976 impl PipelineLayoutCreateFlags {
17977     pub const RESERVED_0_AMD: Self = Self(0b1);
17978 }
17979 impl AmdExtension320Fn {
17980     #[inline]
name() -> &'static ::std::ffi::CStr17981     pub const fn name() -> &'static ::std::ffi::CStr {
17982         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_320\0") }
17983     }
17984     pub const SPEC_VERSION: u32 = 0u32;
17985 }
17986 #[derive(Clone)]
17987 pub struct AmdExtension320Fn {}
17988 unsafe impl Send for AmdExtension320Fn {}
17989 unsafe impl Sync for AmdExtension320Fn {}
17990 impl AmdExtension320Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17991     pub fn load<F>(mut _f: F) -> Self
17992     where
17993         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17994     {
17995         Self {}
17996     }
17997 }
17998 impl ExtGraphicsPipelineLibraryFn {
17999     #[inline]
name() -> &'static ::std::ffi::CStr18000     pub const fn name() -> &'static ::std::ffi::CStr {
18001         unsafe {
18002             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_graphics_pipeline_library\0")
18003         }
18004     }
18005     pub const SPEC_VERSION: u32 = 1u32;
18006 }
18007 #[derive(Clone)]
18008 pub struct ExtGraphicsPipelineLibraryFn {}
18009 unsafe impl Send for ExtGraphicsPipelineLibraryFn {}
18010 unsafe impl Sync for ExtGraphicsPipelineLibraryFn {}
18011 impl ExtGraphicsPipelineLibraryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18012     pub fn load<F>(mut _f: F) -> Self
18013     where
18014         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18015     {
18016         Self {}
18017     }
18018 }
18019 #[doc = "Generated from 'VK_EXT_graphics_pipeline_library'"]
18020 impl PipelineCreateFlags {
18021     pub const RETAIN_LINK_TIME_OPTIMIZATION_INFO_EXT: Self = Self(0b1000_0000_0000_0000_0000_0000);
18022     pub const LINK_TIME_OPTIMIZATION_EXT: Self = Self(0b100_0000_0000);
18023 }
18024 #[doc = "Generated from 'VK_EXT_graphics_pipeline_library'"]
18025 impl PipelineLayoutCreateFlags {
18026     pub const INDEPENDENT_SETS_EXT: Self = Self(0b10);
18027 }
18028 #[doc = "Generated from 'VK_EXT_graphics_pipeline_library'"]
18029 impl StructureType {
18030     pub const PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: Self = Self(1_000_320_000);
18031     pub const PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: Self = Self(1_000_320_001);
18032     pub const GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: Self = Self(1_000_320_002);
18033 }
18034 impl AmdShaderEarlyAndLateFragmentTestsFn {
18035     #[inline]
name() -> &'static ::std::ffi::CStr18036     pub const fn name() -> &'static ::std::ffi::CStr {
18037         unsafe {
18038             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18039                 b"VK_AMD_shader_early_and_late_fragment_tests\0",
18040             )
18041         }
18042     }
18043     pub const SPEC_VERSION: u32 = 1u32;
18044 }
18045 #[derive(Clone)]
18046 pub struct AmdShaderEarlyAndLateFragmentTestsFn {}
18047 unsafe impl Send for AmdShaderEarlyAndLateFragmentTestsFn {}
18048 unsafe impl Sync for AmdShaderEarlyAndLateFragmentTestsFn {}
18049 impl AmdShaderEarlyAndLateFragmentTestsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18050     pub fn load<F>(mut _f: F) -> Self
18051     where
18052         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18053     {
18054         Self {}
18055     }
18056 }
18057 #[doc = "Generated from 'VK_AMD_shader_early_and_late_fragment_tests'"]
18058 impl StructureType {
18059     pub const PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD: Self =
18060         Self(1_000_321_000);
18061 }
18062 impl KhrFragmentShaderBarycentricFn {
18063     #[inline]
name() -> &'static ::std::ffi::CStr18064     pub const fn name() -> &'static ::std::ffi::CStr {
18065         unsafe {
18066             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_fragment_shader_barycentric\0")
18067         }
18068     }
18069     pub const SPEC_VERSION: u32 = 1u32;
18070 }
18071 #[derive(Clone)]
18072 pub struct KhrFragmentShaderBarycentricFn {}
18073 unsafe impl Send for KhrFragmentShaderBarycentricFn {}
18074 unsafe impl Sync for KhrFragmentShaderBarycentricFn {}
18075 impl KhrFragmentShaderBarycentricFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18076     pub fn load<F>(mut _f: F) -> Self
18077     where
18078         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18079     {
18080         Self {}
18081     }
18082 }
18083 #[doc = "Generated from 'VK_KHR_fragment_shader_barycentric'"]
18084 impl StructureType {
18085     pub const PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR: Self = Self(1_000_203_000);
18086     pub const PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR: Self =
18087         Self(1_000_322_000);
18088 }
18089 impl KhrShaderSubgroupUniformControlFlowFn {
18090     #[inline]
name() -> &'static ::std::ffi::CStr18091     pub const fn name() -> &'static ::std::ffi::CStr {
18092         unsafe {
18093             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18094                 b"VK_KHR_shader_subgroup_uniform_control_flow\0",
18095             )
18096         }
18097     }
18098     pub const SPEC_VERSION: u32 = 1u32;
18099 }
18100 #[derive(Clone)]
18101 pub struct KhrShaderSubgroupUniformControlFlowFn {}
18102 unsafe impl Send for KhrShaderSubgroupUniformControlFlowFn {}
18103 unsafe impl Sync for KhrShaderSubgroupUniformControlFlowFn {}
18104 impl KhrShaderSubgroupUniformControlFlowFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18105     pub fn load<F>(mut _f: F) -> Self
18106     where
18107         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18108     {
18109         Self {}
18110     }
18111 }
18112 #[doc = "Generated from 'VK_KHR_shader_subgroup_uniform_control_flow'"]
18113 impl StructureType {
18114     pub const PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR: Self =
18115         Self(1_000_323_000);
18116 }
18117 impl KhrExtension325Fn {
18118     #[inline]
name() -> &'static ::std::ffi::CStr18119     pub const fn name() -> &'static ::std::ffi::CStr {
18120         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_325\0") }
18121     }
18122     pub const SPEC_VERSION: u32 = 0u32;
18123 }
18124 #[derive(Clone)]
18125 pub struct KhrExtension325Fn {}
18126 unsafe impl Send for KhrExtension325Fn {}
18127 unsafe impl Sync for KhrExtension325Fn {}
18128 impl KhrExtension325Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18129     pub fn load<F>(mut _f: F) -> Self
18130     where
18131         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18132     {
18133         Self {}
18134     }
18135 }
18136 impl KhrZeroInitializeWorkgroupMemoryFn {
18137     #[inline]
name() -> &'static ::std::ffi::CStr18138     pub const fn name() -> &'static ::std::ffi::CStr {
18139         unsafe {
18140             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18141                 b"VK_KHR_zero_initialize_workgroup_memory\0",
18142             )
18143         }
18144     }
18145     pub const SPEC_VERSION: u32 = 1u32;
18146 }
18147 #[derive(Clone)]
18148 pub struct KhrZeroInitializeWorkgroupMemoryFn {}
18149 unsafe impl Send for KhrZeroInitializeWorkgroupMemoryFn {}
18150 unsafe impl Sync for KhrZeroInitializeWorkgroupMemoryFn {}
18151 impl KhrZeroInitializeWorkgroupMemoryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18152     pub fn load<F>(mut _f: F) -> Self
18153     where
18154         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18155     {
18156         Self {}
18157     }
18158 }
18159 #[doc = "Generated from 'VK_KHR_zero_initialize_workgroup_memory'"]
18160 impl StructureType {
18161     pub const PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR: Self =
18162         Self::PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES;
18163 }
18164 impl NvFragmentShadingRateEnumsFn {
18165     #[inline]
name() -> &'static ::std::ffi::CStr18166     pub const fn name() -> &'static ::std::ffi::CStr {
18167         unsafe {
18168             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_fragment_shading_rate_enums\0")
18169         }
18170     }
18171     pub const SPEC_VERSION: u32 = 1u32;
18172 }
18173 #[allow(non_camel_case_types)]
18174 pub type PFN_vkCmdSetFragmentShadingRateEnumNV = unsafe extern "system" fn(
18175     command_buffer: CommandBuffer,
18176     shading_rate: FragmentShadingRateNV,
18177     combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2usize],
18178 );
18179 #[derive(Clone)]
18180 pub struct NvFragmentShadingRateEnumsFn {
18181     pub cmd_set_fragment_shading_rate_enum_nv: PFN_vkCmdSetFragmentShadingRateEnumNV,
18182 }
18183 unsafe impl Send for NvFragmentShadingRateEnumsFn {}
18184 unsafe impl Sync for NvFragmentShadingRateEnumsFn {}
18185 impl NvFragmentShadingRateEnumsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18186     pub fn load<F>(mut _f: F) -> Self
18187     where
18188         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18189     {
18190         Self {
18191             cmd_set_fragment_shading_rate_enum_nv: unsafe {
18192                 unsafe extern "system" fn cmd_set_fragment_shading_rate_enum_nv(
18193                     _command_buffer: CommandBuffer,
18194                     _shading_rate: FragmentShadingRateNV,
18195                     _combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2usize],
18196                 ) {
18197                     panic!(concat!(
18198                         "Unable to load ",
18199                         stringify!(cmd_set_fragment_shading_rate_enum_nv)
18200                     ))
18201                 }
18202                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18203                     b"vkCmdSetFragmentShadingRateEnumNV\0",
18204                 );
18205                 let val = _f(cname);
18206                 if val.is_null() {
18207                     cmd_set_fragment_shading_rate_enum_nv
18208                 } else {
18209                     ::std::mem::transmute(val)
18210                 }
18211             },
18212         }
18213     }
18214 }
18215 #[doc = "Generated from 'VK_NV_fragment_shading_rate_enums'"]
18216 impl StructureType {
18217     pub const PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV: Self = Self(1_000_326_000);
18218     pub const PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV: Self = Self(1_000_326_001);
18219     pub const PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV: Self = Self(1_000_326_002);
18220 }
18221 impl NvRayTracingMotionBlurFn {
18222     #[inline]
name() -> &'static ::std::ffi::CStr18223     pub const fn name() -> &'static ::std::ffi::CStr {
18224         unsafe {
18225             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_ray_tracing_motion_blur\0")
18226         }
18227     }
18228     pub const SPEC_VERSION: u32 = 1u32;
18229 }
18230 #[derive(Clone)]
18231 pub struct NvRayTracingMotionBlurFn {}
18232 unsafe impl Send for NvRayTracingMotionBlurFn {}
18233 unsafe impl Sync for NvRayTracingMotionBlurFn {}
18234 impl NvRayTracingMotionBlurFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18235     pub fn load<F>(mut _f: F) -> Self
18236     where
18237         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18238     {
18239         Self {}
18240     }
18241 }
18242 #[doc = "Generated from 'VK_NV_ray_tracing_motion_blur'"]
18243 impl AccelerationStructureCreateFlagsKHR {
18244     pub const MOTION_NV: Self = Self(0b100);
18245 }
18246 #[doc = "Generated from 'VK_NV_ray_tracing_motion_blur'"]
18247 impl BuildAccelerationStructureFlagsKHR {
18248     pub const MOTION_NV: Self = Self(0b10_0000);
18249 }
18250 #[doc = "Generated from 'VK_NV_ray_tracing_motion_blur'"]
18251 impl PipelineCreateFlags {
18252     pub const RAY_TRACING_ALLOW_MOTION_NV: Self = Self(0b1_0000_0000_0000_0000_0000);
18253 }
18254 #[doc = "Generated from 'VK_NV_ray_tracing_motion_blur'"]
18255 impl StructureType {
18256     pub const ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV: Self = Self(1_000_327_000);
18257     pub const PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV: Self = Self(1_000_327_001);
18258     pub const ACCELERATION_STRUCTURE_MOTION_INFO_NV: Self = Self(1_000_327_002);
18259 }
18260 impl ExtMeshShaderFn {
18261     #[inline]
name() -> &'static ::std::ffi::CStr18262     pub const fn name() -> &'static ::std::ffi::CStr {
18263         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_mesh_shader\0") }
18264     }
18265     pub const SPEC_VERSION: u32 = 1u32;
18266 }
18267 #[allow(non_camel_case_types)]
18268 pub type PFN_vkCmdDrawMeshTasksEXT = unsafe extern "system" fn(
18269     command_buffer: CommandBuffer,
18270     group_count_x: u32,
18271     group_count_y: u32,
18272     group_count_z: u32,
18273 );
18274 #[allow(non_camel_case_types)]
18275 pub type PFN_vkCmdDrawMeshTasksIndirectEXT = unsafe extern "system" fn(
18276     command_buffer: CommandBuffer,
18277     buffer: Buffer,
18278     offset: DeviceSize,
18279     draw_count: u32,
18280     stride: u32,
18281 );
18282 #[allow(non_camel_case_types)]
18283 pub type PFN_vkCmdDrawMeshTasksIndirectCountEXT = unsafe extern "system" fn(
18284     command_buffer: CommandBuffer,
18285     buffer: Buffer,
18286     offset: DeviceSize,
18287     count_buffer: Buffer,
18288     count_buffer_offset: DeviceSize,
18289     max_draw_count: u32,
18290     stride: u32,
18291 );
18292 #[derive(Clone)]
18293 pub struct ExtMeshShaderFn {
18294     pub cmd_draw_mesh_tasks_ext: PFN_vkCmdDrawMeshTasksEXT,
18295     pub cmd_draw_mesh_tasks_indirect_ext: PFN_vkCmdDrawMeshTasksIndirectEXT,
18296     pub cmd_draw_mesh_tasks_indirect_count_ext: PFN_vkCmdDrawMeshTasksIndirectCountEXT,
18297 }
18298 unsafe impl Send for ExtMeshShaderFn {}
18299 unsafe impl Sync for ExtMeshShaderFn {}
18300 impl ExtMeshShaderFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18301     pub fn load<F>(mut _f: F) -> Self
18302     where
18303         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18304     {
18305         Self {
18306             cmd_draw_mesh_tasks_ext: unsafe {
18307                 unsafe extern "system" fn cmd_draw_mesh_tasks_ext(
18308                     _command_buffer: CommandBuffer,
18309                     _group_count_x: u32,
18310                     _group_count_y: u32,
18311                     _group_count_z: u32,
18312                 ) {
18313                     panic!(concat!(
18314                         "Unable to load ",
18315                         stringify!(cmd_draw_mesh_tasks_ext)
18316                     ))
18317                 }
18318                 let cname =
18319                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMeshTasksEXT\0");
18320                 let val = _f(cname);
18321                 if val.is_null() {
18322                     cmd_draw_mesh_tasks_ext
18323                 } else {
18324                     ::std::mem::transmute(val)
18325                 }
18326             },
18327             cmd_draw_mesh_tasks_indirect_ext: unsafe {
18328                 unsafe extern "system" fn cmd_draw_mesh_tasks_indirect_ext(
18329                     _command_buffer: CommandBuffer,
18330                     _buffer: Buffer,
18331                     _offset: DeviceSize,
18332                     _draw_count: u32,
18333                     _stride: u32,
18334                 ) {
18335                     panic!(concat!(
18336                         "Unable to load ",
18337                         stringify!(cmd_draw_mesh_tasks_indirect_ext)
18338                     ))
18339                 }
18340                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18341                     b"vkCmdDrawMeshTasksIndirectEXT\0",
18342                 );
18343                 let val = _f(cname);
18344                 if val.is_null() {
18345                     cmd_draw_mesh_tasks_indirect_ext
18346                 } else {
18347                     ::std::mem::transmute(val)
18348                 }
18349             },
18350             cmd_draw_mesh_tasks_indirect_count_ext: unsafe {
18351                 unsafe extern "system" fn cmd_draw_mesh_tasks_indirect_count_ext(
18352                     _command_buffer: CommandBuffer,
18353                     _buffer: Buffer,
18354                     _offset: DeviceSize,
18355                     _count_buffer: Buffer,
18356                     _count_buffer_offset: DeviceSize,
18357                     _max_draw_count: u32,
18358                     _stride: u32,
18359                 ) {
18360                     panic!(concat!(
18361                         "Unable to load ",
18362                         stringify!(cmd_draw_mesh_tasks_indirect_count_ext)
18363                     ))
18364                 }
18365                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18366                     b"vkCmdDrawMeshTasksIndirectCountEXT\0",
18367                 );
18368                 let val = _f(cname);
18369                 if val.is_null() {
18370                     cmd_draw_mesh_tasks_indirect_count_ext
18371                 } else {
18372                     ::std::mem::transmute(val)
18373                 }
18374             },
18375         }
18376     }
18377 }
18378 #[doc = "Generated from 'VK_EXT_mesh_shader'"]
18379 impl IndirectCommandsTokenTypeNV {
18380     pub const DRAW_MESH_TASKS: Self = Self(1_000_328_000);
18381 }
18382 #[doc = "Generated from 'VK_EXT_mesh_shader'"]
18383 impl PipelineStageFlags {
18384     pub const TASK_SHADER_EXT: Self = Self(0b1000_0000_0000_0000_0000);
18385     pub const MESH_SHADER_EXT: Self = Self(0b1_0000_0000_0000_0000_0000);
18386 }
18387 #[doc = "Generated from 'VK_EXT_mesh_shader'"]
18388 impl QueryPipelineStatisticFlags {
18389     pub const TASK_SHADER_INVOCATIONS_EXT: Self = Self(0b1000_0000_0000);
18390     pub const MESH_SHADER_INVOCATIONS_EXT: Self = Self(0b1_0000_0000_0000);
18391 }
18392 #[doc = "Generated from 'VK_EXT_mesh_shader'"]
18393 impl QueryType {
18394     pub const MESH_PRIMITIVES_GENERATED_EXT: Self = Self(1_000_328_000);
18395 }
18396 #[doc = "Generated from 'VK_EXT_mesh_shader'"]
18397 impl ShaderStageFlags {
18398     pub const TASK_EXT: Self = Self(0b100_0000);
18399     pub const MESH_EXT: Self = Self(0b1000_0000);
18400 }
18401 #[doc = "Generated from 'VK_EXT_mesh_shader'"]
18402 impl StructureType {
18403     pub const PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT: Self = Self(1_000_328_000);
18404     pub const PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT: Self = Self(1_000_328_001);
18405 }
18406 impl NvExtension330Fn {
18407     #[inline]
name() -> &'static ::std::ffi::CStr18408     pub const fn name() -> &'static ::std::ffi::CStr {
18409         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_330\0") }
18410     }
18411     pub const SPEC_VERSION: u32 = 0u32;
18412 }
18413 #[derive(Clone)]
18414 pub struct NvExtension330Fn {}
18415 unsafe impl Send for NvExtension330Fn {}
18416 unsafe impl Sync for NvExtension330Fn {}
18417 impl NvExtension330Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18418     pub fn load<F>(mut _f: F) -> Self
18419     where
18420         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18421     {
18422         Self {}
18423     }
18424 }
18425 impl ExtYcbcr2plane444FormatsFn {
18426     #[inline]
name() -> &'static ::std::ffi::CStr18427     pub const fn name() -> &'static ::std::ffi::CStr {
18428         unsafe {
18429             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_ycbcr_2plane_444_formats\0")
18430         }
18431     }
18432     pub const SPEC_VERSION: u32 = 1u32;
18433 }
18434 #[derive(Clone)]
18435 pub struct ExtYcbcr2plane444FormatsFn {}
18436 unsafe impl Send for ExtYcbcr2plane444FormatsFn {}
18437 unsafe impl Sync for ExtYcbcr2plane444FormatsFn {}
18438 impl ExtYcbcr2plane444FormatsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18439     pub fn load<F>(mut _f: F) -> Self
18440     where
18441         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18442     {
18443         Self {}
18444     }
18445 }
18446 #[doc = "Generated from 'VK_EXT_ycbcr_2plane_444_formats'"]
18447 impl Format {
18448     pub const G8_B8R8_2PLANE_444_UNORM_EXT: Self = Self::G8_B8R8_2PLANE_444_UNORM;
18449     pub const G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT: Self =
18450         Self::G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16;
18451     pub const G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT: Self =
18452         Self::G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16;
18453     pub const G16_B16R16_2PLANE_444_UNORM_EXT: Self = Self::G16_B16R16_2PLANE_444_UNORM;
18454 }
18455 #[doc = "Generated from 'VK_EXT_ycbcr_2plane_444_formats'"]
18456 impl StructureType {
18457     pub const PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: Self = Self(1_000_330_000);
18458 }
18459 impl NvExtension332Fn {
18460     #[inline]
name() -> &'static ::std::ffi::CStr18461     pub const fn name() -> &'static ::std::ffi::CStr {
18462         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_332\0") }
18463     }
18464     pub const SPEC_VERSION: u32 = 0u32;
18465 }
18466 #[derive(Clone)]
18467 pub struct NvExtension332Fn {}
18468 unsafe impl Send for NvExtension332Fn {}
18469 unsafe impl Sync for NvExtension332Fn {}
18470 impl NvExtension332Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18471     pub fn load<F>(mut _f: F) -> Self
18472     where
18473         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18474     {
18475         Self {}
18476     }
18477 }
18478 impl ExtFragmentDensityMap2Fn {
18479     #[inline]
name() -> &'static ::std::ffi::CStr18480     pub const fn name() -> &'static ::std::ffi::CStr {
18481         unsafe {
18482             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_fragment_density_map2\0")
18483         }
18484     }
18485     pub const SPEC_VERSION: u32 = 1u32;
18486 }
18487 #[derive(Clone)]
18488 pub struct ExtFragmentDensityMap2Fn {}
18489 unsafe impl Send for ExtFragmentDensityMap2Fn {}
18490 unsafe impl Sync for ExtFragmentDensityMap2Fn {}
18491 impl ExtFragmentDensityMap2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18492     pub fn load<F>(mut _f: F) -> Self
18493     where
18494         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18495     {
18496         Self {}
18497     }
18498 }
18499 #[doc = "Generated from 'VK_EXT_fragment_density_map2'"]
18500 impl ImageViewCreateFlags {
18501     pub const FRAGMENT_DENSITY_MAP_DEFERRED_EXT: Self = Self(0b10);
18502 }
18503 #[doc = "Generated from 'VK_EXT_fragment_density_map2'"]
18504 impl StructureType {
18505     pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT: Self = Self(1_000_332_000);
18506     pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT: Self = Self(1_000_332_001);
18507 }
18508 impl QcomRotatedCopyCommandsFn {
18509     #[inline]
name() -> &'static ::std::ffi::CStr18510     pub const fn name() -> &'static ::std::ffi::CStr {
18511         unsafe {
18512             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_rotated_copy_commands\0")
18513         }
18514     }
18515     pub const SPEC_VERSION: u32 = 1u32;
18516 }
18517 #[derive(Clone)]
18518 pub struct QcomRotatedCopyCommandsFn {}
18519 unsafe impl Send for QcomRotatedCopyCommandsFn {}
18520 unsafe impl Sync for QcomRotatedCopyCommandsFn {}
18521 impl QcomRotatedCopyCommandsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18522     pub fn load<F>(mut _f: F) -> Self
18523     where
18524         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18525     {
18526         Self {}
18527     }
18528 }
18529 #[doc = "Generated from 'VK_QCOM_rotated_copy_commands'"]
18530 impl StructureType {
18531     pub const COPY_COMMAND_TRANSFORM_INFO_QCOM: Self = Self(1_000_333_000);
18532 }
18533 impl KhrExtension335Fn {
18534     #[inline]
name() -> &'static ::std::ffi::CStr18535     pub const fn name() -> &'static ::std::ffi::CStr {
18536         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_335\0") }
18537     }
18538     pub const SPEC_VERSION: u32 = 0u32;
18539 }
18540 #[derive(Clone)]
18541 pub struct KhrExtension335Fn {}
18542 unsafe impl Send for KhrExtension335Fn {}
18543 unsafe impl Sync for KhrExtension335Fn {}
18544 impl KhrExtension335Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18545     pub fn load<F>(mut _f: F) -> Self
18546     where
18547         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18548     {
18549         Self {}
18550     }
18551 }
18552 impl ExtImageRobustnessFn {
18553     #[inline]
name() -> &'static ::std::ffi::CStr18554     pub const fn name() -> &'static ::std::ffi::CStr {
18555         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_robustness\0") }
18556     }
18557     pub const SPEC_VERSION: u32 = 1u32;
18558 }
18559 #[derive(Clone)]
18560 pub struct ExtImageRobustnessFn {}
18561 unsafe impl Send for ExtImageRobustnessFn {}
18562 unsafe impl Sync for ExtImageRobustnessFn {}
18563 impl ExtImageRobustnessFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18564     pub fn load<F>(mut _f: F) -> Self
18565     where
18566         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18567     {
18568         Self {}
18569     }
18570 }
18571 #[doc = "Generated from 'VK_EXT_image_robustness'"]
18572 impl StructureType {
18573     pub const PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT: Self =
18574         Self::PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES;
18575 }
18576 impl KhrWorkgroupMemoryExplicitLayoutFn {
18577     #[inline]
name() -> &'static ::std::ffi::CStr18578     pub const fn name() -> &'static ::std::ffi::CStr {
18579         unsafe {
18580             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18581                 b"VK_KHR_workgroup_memory_explicit_layout\0",
18582             )
18583         }
18584     }
18585     pub const SPEC_VERSION: u32 = 1u32;
18586 }
18587 #[derive(Clone)]
18588 pub struct KhrWorkgroupMemoryExplicitLayoutFn {}
18589 unsafe impl Send for KhrWorkgroupMemoryExplicitLayoutFn {}
18590 unsafe impl Sync for KhrWorkgroupMemoryExplicitLayoutFn {}
18591 impl KhrWorkgroupMemoryExplicitLayoutFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18592     pub fn load<F>(mut _f: F) -> Self
18593     where
18594         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18595     {
18596         Self {}
18597     }
18598 }
18599 #[doc = "Generated from 'VK_KHR_workgroup_memory_explicit_layout'"]
18600 impl StructureType {
18601     pub const PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR: Self =
18602         Self(1_000_336_000);
18603 }
18604 impl KhrCopyCommands2Fn {
18605     #[inline]
name() -> &'static ::std::ffi::CStr18606     pub const fn name() -> &'static ::std::ffi::CStr {
18607         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_copy_commands2\0") }
18608     }
18609     pub const SPEC_VERSION: u32 = 1u32;
18610 }
18611 #[allow(non_camel_case_types)]
18612 pub type PFN_vkCmdCopyBuffer2 = unsafe extern "system" fn(
18613     command_buffer: CommandBuffer,
18614     p_copy_buffer_info: *const CopyBufferInfo2,
18615 );
18616 #[allow(non_camel_case_types)]
18617 pub type PFN_vkCmdCopyImage2 = unsafe extern "system" fn(
18618     command_buffer: CommandBuffer,
18619     p_copy_image_info: *const CopyImageInfo2,
18620 );
18621 #[allow(non_camel_case_types)]
18622 pub type PFN_vkCmdCopyBufferToImage2 = unsafe extern "system" fn(
18623     command_buffer: CommandBuffer,
18624     p_copy_buffer_to_image_info: *const CopyBufferToImageInfo2,
18625 );
18626 #[allow(non_camel_case_types)]
18627 pub type PFN_vkCmdCopyImageToBuffer2 = unsafe extern "system" fn(
18628     command_buffer: CommandBuffer,
18629     p_copy_image_to_buffer_info: *const CopyImageToBufferInfo2,
18630 );
18631 #[allow(non_camel_case_types)]
18632 pub type PFN_vkCmdBlitImage2 = unsafe extern "system" fn(
18633     command_buffer: CommandBuffer,
18634     p_blit_image_info: *const BlitImageInfo2,
18635 );
18636 #[allow(non_camel_case_types)]
18637 pub type PFN_vkCmdResolveImage2 = unsafe extern "system" fn(
18638     command_buffer: CommandBuffer,
18639     p_resolve_image_info: *const ResolveImageInfo2,
18640 );
18641 #[derive(Clone)]
18642 pub struct KhrCopyCommands2Fn {
18643     pub cmd_copy_buffer2_khr: PFN_vkCmdCopyBuffer2,
18644     pub cmd_copy_image2_khr: PFN_vkCmdCopyImage2,
18645     pub cmd_copy_buffer_to_image2_khr: PFN_vkCmdCopyBufferToImage2,
18646     pub cmd_copy_image_to_buffer2_khr: PFN_vkCmdCopyImageToBuffer2,
18647     pub cmd_blit_image2_khr: PFN_vkCmdBlitImage2,
18648     pub cmd_resolve_image2_khr: PFN_vkCmdResolveImage2,
18649 }
18650 unsafe impl Send for KhrCopyCommands2Fn {}
18651 unsafe impl Sync for KhrCopyCommands2Fn {}
18652 impl KhrCopyCommands2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18653     pub fn load<F>(mut _f: F) -> Self
18654     where
18655         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18656     {
18657         Self {
18658             cmd_copy_buffer2_khr: unsafe {
18659                 unsafe extern "system" fn cmd_copy_buffer2_khr(
18660                     _command_buffer: CommandBuffer,
18661                     _p_copy_buffer_info: *const CopyBufferInfo2,
18662                 ) {
18663                     panic!(concat!("Unable to load ", stringify!(cmd_copy_buffer2_khr)))
18664                 }
18665                 let cname =
18666                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyBuffer2KHR\0");
18667                 let val = _f(cname);
18668                 if val.is_null() {
18669                     cmd_copy_buffer2_khr
18670                 } else {
18671                     ::std::mem::transmute(val)
18672                 }
18673             },
18674             cmd_copy_image2_khr: unsafe {
18675                 unsafe extern "system" fn cmd_copy_image2_khr(
18676                     _command_buffer: CommandBuffer,
18677                     _p_copy_image_info: *const CopyImageInfo2,
18678                 ) {
18679                     panic!(concat!("Unable to load ", stringify!(cmd_copy_image2_khr)))
18680                 }
18681                 let cname =
18682                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyImage2KHR\0");
18683                 let val = _f(cname);
18684                 if val.is_null() {
18685                     cmd_copy_image2_khr
18686                 } else {
18687                     ::std::mem::transmute(val)
18688                 }
18689             },
18690             cmd_copy_buffer_to_image2_khr: unsafe {
18691                 unsafe extern "system" fn cmd_copy_buffer_to_image2_khr(
18692                     _command_buffer: CommandBuffer,
18693                     _p_copy_buffer_to_image_info: *const CopyBufferToImageInfo2,
18694                 ) {
18695                     panic!(concat!(
18696                         "Unable to load ",
18697                         stringify!(cmd_copy_buffer_to_image2_khr)
18698                     ))
18699                 }
18700                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18701                     b"vkCmdCopyBufferToImage2KHR\0",
18702                 );
18703                 let val = _f(cname);
18704                 if val.is_null() {
18705                     cmd_copy_buffer_to_image2_khr
18706                 } else {
18707                     ::std::mem::transmute(val)
18708                 }
18709             },
18710             cmd_copy_image_to_buffer2_khr: unsafe {
18711                 unsafe extern "system" fn cmd_copy_image_to_buffer2_khr(
18712                     _command_buffer: CommandBuffer,
18713                     _p_copy_image_to_buffer_info: *const CopyImageToBufferInfo2,
18714                 ) {
18715                     panic!(concat!(
18716                         "Unable to load ",
18717                         stringify!(cmd_copy_image_to_buffer2_khr)
18718                     ))
18719                 }
18720                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18721                     b"vkCmdCopyImageToBuffer2KHR\0",
18722                 );
18723                 let val = _f(cname);
18724                 if val.is_null() {
18725                     cmd_copy_image_to_buffer2_khr
18726                 } else {
18727                     ::std::mem::transmute(val)
18728                 }
18729             },
18730             cmd_blit_image2_khr: unsafe {
18731                 unsafe extern "system" fn cmd_blit_image2_khr(
18732                     _command_buffer: CommandBuffer,
18733                     _p_blit_image_info: *const BlitImageInfo2,
18734                 ) {
18735                     panic!(concat!("Unable to load ", stringify!(cmd_blit_image2_khr)))
18736                 }
18737                 let cname =
18738                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdBlitImage2KHR\0");
18739                 let val = _f(cname);
18740                 if val.is_null() {
18741                     cmd_blit_image2_khr
18742                 } else {
18743                     ::std::mem::transmute(val)
18744                 }
18745             },
18746             cmd_resolve_image2_khr: unsafe {
18747                 unsafe extern "system" fn cmd_resolve_image2_khr(
18748                     _command_buffer: CommandBuffer,
18749                     _p_resolve_image_info: *const ResolveImageInfo2,
18750                 ) {
18751                     panic!(concat!(
18752                         "Unable to load ",
18753                         stringify!(cmd_resolve_image2_khr)
18754                     ))
18755                 }
18756                 let cname =
18757                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdResolveImage2KHR\0");
18758                 let val = _f(cname);
18759                 if val.is_null() {
18760                     cmd_resolve_image2_khr
18761                 } else {
18762                     ::std::mem::transmute(val)
18763                 }
18764             },
18765         }
18766     }
18767 }
18768 #[doc = "Generated from 'VK_KHR_copy_commands2'"]
18769 impl StructureType {
18770     pub const COPY_BUFFER_INFO_2_KHR: Self = Self::COPY_BUFFER_INFO_2;
18771     pub const COPY_IMAGE_INFO_2_KHR: Self = Self::COPY_IMAGE_INFO_2;
18772     pub const COPY_BUFFER_TO_IMAGE_INFO_2_KHR: Self = Self::COPY_BUFFER_TO_IMAGE_INFO_2;
18773     pub const COPY_IMAGE_TO_BUFFER_INFO_2_KHR: Self = Self::COPY_IMAGE_TO_BUFFER_INFO_2;
18774     pub const BLIT_IMAGE_INFO_2_KHR: Self = Self::BLIT_IMAGE_INFO_2;
18775     pub const RESOLVE_IMAGE_INFO_2_KHR: Self = Self::RESOLVE_IMAGE_INFO_2;
18776     pub const BUFFER_COPY_2_KHR: Self = Self::BUFFER_COPY_2;
18777     pub const IMAGE_COPY_2_KHR: Self = Self::IMAGE_COPY_2;
18778     pub const IMAGE_BLIT_2_KHR: Self = Self::IMAGE_BLIT_2;
18779     pub const BUFFER_IMAGE_COPY_2_KHR: Self = Self::BUFFER_IMAGE_COPY_2;
18780     pub const IMAGE_RESOLVE_2_KHR: Self = Self::IMAGE_RESOLVE_2;
18781 }
18782 impl ExtImageCompressionControlFn {
18783     #[inline]
name() -> &'static ::std::ffi::CStr18784     pub const fn name() -> &'static ::std::ffi::CStr {
18785         unsafe {
18786             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_compression_control\0")
18787         }
18788     }
18789     pub const SPEC_VERSION: u32 = 1u32;
18790 }
18791 #[allow(non_camel_case_types)]
18792 pub type PFN_vkGetImageSubresourceLayout2EXT = unsafe extern "system" fn(
18793     device: Device,
18794     image: Image,
18795     p_subresource: *const ImageSubresource2EXT,
18796     p_layout: *mut SubresourceLayout2EXT,
18797 );
18798 #[derive(Clone)]
18799 pub struct ExtImageCompressionControlFn {
18800     pub get_image_subresource_layout2_ext: PFN_vkGetImageSubresourceLayout2EXT,
18801 }
18802 unsafe impl Send for ExtImageCompressionControlFn {}
18803 unsafe impl Sync for ExtImageCompressionControlFn {}
18804 impl ExtImageCompressionControlFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18805     pub fn load<F>(mut _f: F) -> Self
18806     where
18807         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18808     {
18809         Self {
18810             get_image_subresource_layout2_ext: unsafe {
18811                 unsafe extern "system" fn get_image_subresource_layout2_ext(
18812                     _device: Device,
18813                     _image: Image,
18814                     _p_subresource: *const ImageSubresource2EXT,
18815                     _p_layout: *mut SubresourceLayout2EXT,
18816                 ) {
18817                     panic!(concat!(
18818                         "Unable to load ",
18819                         stringify!(get_image_subresource_layout2_ext)
18820                     ))
18821                 }
18822                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18823                     b"vkGetImageSubresourceLayout2EXT\0",
18824                 );
18825                 let val = _f(cname);
18826                 if val.is_null() {
18827                     get_image_subresource_layout2_ext
18828                 } else {
18829                     ::std::mem::transmute(val)
18830                 }
18831             },
18832         }
18833     }
18834 }
18835 #[doc = "Generated from 'VK_EXT_image_compression_control'"]
18836 impl Result {
18837     pub const ERROR_COMPRESSION_EXHAUSTED_EXT: Self = Self(-1_000_338_000);
18838 }
18839 #[doc = "Generated from 'VK_EXT_image_compression_control'"]
18840 impl StructureType {
18841     pub const PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: Self = Self(1_000_338_000);
18842     pub const IMAGE_COMPRESSION_CONTROL_EXT: Self = Self(1_000_338_001);
18843     pub const SUBRESOURCE_LAYOUT_2_EXT: Self = Self(1_000_338_002);
18844     pub const IMAGE_SUBRESOURCE_2_EXT: Self = Self(1_000_338_003);
18845     pub const IMAGE_COMPRESSION_PROPERTIES_EXT: Self = Self(1_000_338_004);
18846 }
18847 impl ExtAttachmentFeedbackLoopLayoutFn {
18848     #[inline]
name() -> &'static ::std::ffi::CStr18849     pub const fn name() -> &'static ::std::ffi::CStr {
18850         unsafe {
18851             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18852                 b"VK_EXT_attachment_feedback_loop_layout\0",
18853             )
18854         }
18855     }
18856     pub const SPEC_VERSION: u32 = 2u32;
18857 }
18858 #[derive(Clone)]
18859 pub struct ExtAttachmentFeedbackLoopLayoutFn {}
18860 unsafe impl Send for ExtAttachmentFeedbackLoopLayoutFn {}
18861 unsafe impl Sync for ExtAttachmentFeedbackLoopLayoutFn {}
18862 impl ExtAttachmentFeedbackLoopLayoutFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18863     pub fn load<F>(mut _f: F) -> Self
18864     where
18865         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18866     {
18867         Self {}
18868     }
18869 }
18870 #[doc = "Generated from 'VK_EXT_attachment_feedback_loop_layout'"]
18871 impl DependencyFlags {
18872     #[doc = "Dependency may be a feedback loop"]
18873     pub const FEEDBACK_LOOP_EXT: Self = Self(0b1000);
18874 }
18875 #[doc = "Generated from 'VK_EXT_attachment_feedback_loop_layout'"]
18876 impl ImageLayout {
18877     pub const ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT: Self = Self(1_000_339_000);
18878 }
18879 #[doc = "Generated from 'VK_EXT_attachment_feedback_loop_layout'"]
18880 impl ImageUsageFlags {
18881     pub const ATTACHMENT_FEEDBACK_LOOP_EXT: Self = Self(0b1000_0000_0000_0000_0000);
18882 }
18883 #[doc = "Generated from 'VK_EXT_attachment_feedback_loop_layout'"]
18884 impl PipelineCreateFlags {
18885     pub const COLOR_ATTACHMENT_FEEDBACK_LOOP_EXT: Self = Self(0b10_0000_0000_0000_0000_0000_0000);
18886     pub const DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_EXT: Self =
18887         Self(0b100_0000_0000_0000_0000_0000_0000);
18888 }
18889 #[doc = "Generated from 'VK_EXT_attachment_feedback_loop_layout'"]
18890 impl StructureType {
18891     pub const PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT: Self =
18892         Self(1_000_339_000);
18893 }
18894 impl Ext4444FormatsFn {
18895     #[inline]
name() -> &'static ::std::ffi::CStr18896     pub const fn name() -> &'static ::std::ffi::CStr {
18897         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_4444_formats\0") }
18898     }
18899     pub const SPEC_VERSION: u32 = 1u32;
18900 }
18901 #[derive(Clone)]
18902 pub struct Ext4444FormatsFn {}
18903 unsafe impl Send for Ext4444FormatsFn {}
18904 unsafe impl Sync for Ext4444FormatsFn {}
18905 impl Ext4444FormatsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18906     pub fn load<F>(mut _f: F) -> Self
18907     where
18908         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18909     {
18910         Self {}
18911     }
18912 }
18913 #[doc = "Generated from 'VK_EXT_4444_formats'"]
18914 impl Format {
18915     pub const A4R4G4B4_UNORM_PACK16_EXT: Self = Self::A4R4G4B4_UNORM_PACK16;
18916     pub const A4B4G4R4_UNORM_PACK16_EXT: Self = Self::A4B4G4R4_UNORM_PACK16;
18917 }
18918 #[doc = "Generated from 'VK_EXT_4444_formats'"]
18919 impl StructureType {
18920     pub const PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: Self = Self(1_000_340_000);
18921 }
18922 impl ExtDeviceFaultFn {
18923     #[inline]
name() -> &'static ::std::ffi::CStr18924     pub const fn name() -> &'static ::std::ffi::CStr {
18925         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_device_fault\0") }
18926     }
18927     pub const SPEC_VERSION: u32 = 2u32;
18928 }
18929 #[allow(non_camel_case_types)]
18930 pub type PFN_vkGetDeviceFaultInfoEXT = unsafe extern "system" fn(
18931     device: Device,
18932     p_fault_counts: *mut DeviceFaultCountsEXT,
18933     p_fault_info: *mut DeviceFaultInfoEXT,
18934 ) -> Result;
18935 #[derive(Clone)]
18936 pub struct ExtDeviceFaultFn {
18937     pub get_device_fault_info_ext: PFN_vkGetDeviceFaultInfoEXT,
18938 }
18939 unsafe impl Send for ExtDeviceFaultFn {}
18940 unsafe impl Sync for ExtDeviceFaultFn {}
18941 impl ExtDeviceFaultFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18942     pub fn load<F>(mut _f: F) -> Self
18943     where
18944         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18945     {
18946         Self {
18947             get_device_fault_info_ext: unsafe {
18948                 unsafe extern "system" fn get_device_fault_info_ext(
18949                     _device: Device,
18950                     _p_fault_counts: *mut DeviceFaultCountsEXT,
18951                     _p_fault_info: *mut DeviceFaultInfoEXT,
18952                 ) -> Result {
18953                     panic!(concat!(
18954                         "Unable to load ",
18955                         stringify!(get_device_fault_info_ext)
18956                     ))
18957                 }
18958                 let cname =
18959                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetDeviceFaultInfoEXT\0");
18960                 let val = _f(cname);
18961                 if val.is_null() {
18962                     get_device_fault_info_ext
18963                 } else {
18964                     ::std::mem::transmute(val)
18965                 }
18966             },
18967         }
18968     }
18969 }
18970 #[doc = "Generated from 'VK_EXT_device_fault'"]
18971 impl StructureType {
18972     pub const PHYSICAL_DEVICE_FAULT_FEATURES_EXT: Self = Self(1_000_341_000);
18973     pub const DEVICE_FAULT_COUNTS_EXT: Self = Self(1_000_341_001);
18974     pub const DEVICE_FAULT_INFO_EXT: Self = Self(1_000_341_002);
18975 }
18976 impl ArmRasterizationOrderAttachmentAccessFn {
18977     #[inline]
name() -> &'static ::std::ffi::CStr18978     pub const fn name() -> &'static ::std::ffi::CStr {
18979         unsafe {
18980             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18981                 b"VK_ARM_rasterization_order_attachment_access\0",
18982             )
18983         }
18984     }
18985     pub const SPEC_VERSION: u32 = 1u32;
18986 }
18987 #[derive(Clone)]
18988 pub struct ArmRasterizationOrderAttachmentAccessFn {}
18989 unsafe impl Send for ArmRasterizationOrderAttachmentAccessFn {}
18990 unsafe impl Sync for ArmRasterizationOrderAttachmentAccessFn {}
18991 impl ArmRasterizationOrderAttachmentAccessFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18992     pub fn load<F>(mut _f: F) -> Self
18993     where
18994         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18995     {
18996         Self {}
18997     }
18998 }
18999 #[doc = "Generated from 'VK_ARM_rasterization_order_attachment_access'"]
19000 impl PipelineColorBlendStateCreateFlags {
19001     pub const RASTERIZATION_ORDER_ATTACHMENT_ACCESS_ARM: Self =
19002         Self::RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXT;
19003 }
19004 #[doc = "Generated from 'VK_ARM_rasterization_order_attachment_access'"]
19005 impl PipelineDepthStencilStateCreateFlags {
19006     pub const RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_ARM: Self =
19007         Self::RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_EXT;
19008     pub const RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_ARM: Self =
19009         Self::RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_EXT;
19010 }
19011 #[doc = "Generated from 'VK_ARM_rasterization_order_attachment_access'"]
19012 impl StructureType {
19013     pub const PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM: Self =
19014         Self::PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT;
19015 }
19016 #[doc = "Generated from 'VK_ARM_rasterization_order_attachment_access'"]
19017 impl SubpassDescriptionFlags {
19018     pub const RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_ARM: Self =
19019         Self::RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_EXT;
19020     pub const RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_ARM: Self =
19021         Self::RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_EXT;
19022     pub const RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_ARM: Self =
19023         Self::RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_EXT;
19024 }
19025 impl ArmExtension344Fn {
19026     #[inline]
name() -> &'static ::std::ffi::CStr19027     pub const fn name() -> &'static ::std::ffi::CStr {
19028         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_ARM_extension_344\0") }
19029     }
19030     pub const SPEC_VERSION: u32 = 0u32;
19031 }
19032 #[derive(Clone)]
19033 pub struct ArmExtension344Fn {}
19034 unsafe impl Send for ArmExtension344Fn {}
19035 unsafe impl Sync for ArmExtension344Fn {}
19036 impl ArmExtension344Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19037     pub fn load<F>(mut _f: F) -> Self
19038     where
19039         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19040     {
19041         Self {}
19042     }
19043 }
19044 impl ExtRgba10x6FormatsFn {
19045     #[inline]
name() -> &'static ::std::ffi::CStr19046     pub const fn name() -> &'static ::std::ffi::CStr {
19047         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_rgba10x6_formats\0") }
19048     }
19049     pub const SPEC_VERSION: u32 = 1u32;
19050 }
19051 #[derive(Clone)]
19052 pub struct ExtRgba10x6FormatsFn {}
19053 unsafe impl Send for ExtRgba10x6FormatsFn {}
19054 unsafe impl Sync for ExtRgba10x6FormatsFn {}
19055 impl ExtRgba10x6FormatsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19056     pub fn load<F>(mut _f: F) -> Self
19057     where
19058         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19059     {
19060         Self {}
19061     }
19062 }
19063 #[doc = "Generated from 'VK_EXT_rgba10x6_formats'"]
19064 impl StructureType {
19065     pub const PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT: Self = Self(1_000_344_000);
19066 }
19067 impl NvAcquireWinrtDisplayFn {
19068     #[inline]
name() -> &'static ::std::ffi::CStr19069     pub const fn name() -> &'static ::std::ffi::CStr {
19070         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_acquire_winrt_display\0") }
19071     }
19072     pub const SPEC_VERSION: u32 = 1u32;
19073 }
19074 #[allow(non_camel_case_types)]
19075 pub type PFN_vkAcquireWinrtDisplayNV =
19076     unsafe extern "system" fn(physical_device: PhysicalDevice, display: DisplayKHR) -> Result;
19077 #[allow(non_camel_case_types)]
19078 pub type PFN_vkGetWinrtDisplayNV = unsafe extern "system" fn(
19079     physical_device: PhysicalDevice,
19080     device_relative_id: u32,
19081     p_display: *mut DisplayKHR,
19082 ) -> Result;
19083 #[derive(Clone)]
19084 pub struct NvAcquireWinrtDisplayFn {
19085     pub acquire_winrt_display_nv: PFN_vkAcquireWinrtDisplayNV,
19086     pub get_winrt_display_nv: PFN_vkGetWinrtDisplayNV,
19087 }
19088 unsafe impl Send for NvAcquireWinrtDisplayFn {}
19089 unsafe impl Sync for NvAcquireWinrtDisplayFn {}
19090 impl NvAcquireWinrtDisplayFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19091     pub fn load<F>(mut _f: F) -> Self
19092     where
19093         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19094     {
19095         Self {
19096             acquire_winrt_display_nv: unsafe {
19097                 unsafe extern "system" fn acquire_winrt_display_nv(
19098                     _physical_device: PhysicalDevice,
19099                     _display: DisplayKHR,
19100                 ) -> Result {
19101                     panic!(concat!(
19102                         "Unable to load ",
19103                         stringify!(acquire_winrt_display_nv)
19104                     ))
19105                 }
19106                 let cname =
19107                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireWinrtDisplayNV\0");
19108                 let val = _f(cname);
19109                 if val.is_null() {
19110                     acquire_winrt_display_nv
19111                 } else {
19112                     ::std::mem::transmute(val)
19113                 }
19114             },
19115             get_winrt_display_nv: unsafe {
19116                 unsafe extern "system" fn get_winrt_display_nv(
19117                     _physical_device: PhysicalDevice,
19118                     _device_relative_id: u32,
19119                     _p_display: *mut DisplayKHR,
19120                 ) -> Result {
19121                     panic!(concat!("Unable to load ", stringify!(get_winrt_display_nv)))
19122                 }
19123                 let cname =
19124                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetWinrtDisplayNV\0");
19125                 let val = _f(cname);
19126                 if val.is_null() {
19127                     get_winrt_display_nv
19128                 } else {
19129                     ::std::mem::transmute(val)
19130                 }
19131             },
19132         }
19133     }
19134 }
19135 impl ExtDirectfbSurfaceFn {
19136     #[inline]
name() -> &'static ::std::ffi::CStr19137     pub const fn name() -> &'static ::std::ffi::CStr {
19138         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_directfb_surface\0") }
19139     }
19140     pub const SPEC_VERSION: u32 = 1u32;
19141 }
19142 #[allow(non_camel_case_types)]
19143 pub type PFN_vkCreateDirectFBSurfaceEXT = unsafe extern "system" fn(
19144     instance: Instance,
19145     p_create_info: *const DirectFBSurfaceCreateInfoEXT,
19146     p_allocator: *const AllocationCallbacks,
19147     p_surface: *mut SurfaceKHR,
19148 ) -> Result;
19149 #[allow(non_camel_case_types)]
19150 pub type PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT =
19151     unsafe extern "system" fn(
19152         physical_device: PhysicalDevice,
19153         queue_family_index: u32,
19154         dfb: *mut IDirectFB,
19155     ) -> Bool32;
19156 #[derive(Clone)]
19157 pub struct ExtDirectfbSurfaceFn {
19158     pub create_direct_fb_surface_ext: PFN_vkCreateDirectFBSurfaceEXT,
19159     pub get_physical_device_direct_fb_presentation_support_ext:
19160         PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT,
19161 }
19162 unsafe impl Send for ExtDirectfbSurfaceFn {}
19163 unsafe impl Sync for ExtDirectfbSurfaceFn {}
19164 impl ExtDirectfbSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19165     pub fn load<F>(mut _f: F) -> Self
19166     where
19167         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19168     {
19169         Self {
19170             create_direct_fb_surface_ext: unsafe {
19171                 unsafe extern "system" fn create_direct_fb_surface_ext(
19172                     _instance: Instance,
19173                     _p_create_info: *const DirectFBSurfaceCreateInfoEXT,
19174                     _p_allocator: *const AllocationCallbacks,
19175                     _p_surface: *mut SurfaceKHR,
19176                 ) -> Result {
19177                     panic!(concat!(
19178                         "Unable to load ",
19179                         stringify!(create_direct_fb_surface_ext)
19180                     ))
19181                 }
19182                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19183                     b"vkCreateDirectFBSurfaceEXT\0",
19184                 );
19185                 let val = _f(cname);
19186                 if val.is_null() {
19187                     create_direct_fb_surface_ext
19188                 } else {
19189                     ::std::mem::transmute(val)
19190                 }
19191             },
19192             get_physical_device_direct_fb_presentation_support_ext: unsafe {
19193                 unsafe extern "system" fn get_physical_device_direct_fb_presentation_support_ext(
19194                     _physical_device: PhysicalDevice,
19195                     _queue_family_index: u32,
19196                     _dfb: *mut IDirectFB,
19197                 ) -> Bool32 {
19198                     panic!(concat!(
19199                         "Unable to load ",
19200                         stringify!(get_physical_device_direct_fb_presentation_support_ext)
19201                     ))
19202                 }
19203                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19204                     b"vkGetPhysicalDeviceDirectFBPresentationSupportEXT\0",
19205                 );
19206                 let val = _f(cname);
19207                 if val.is_null() {
19208                     get_physical_device_direct_fb_presentation_support_ext
19209                 } else {
19210                     ::std::mem::transmute(val)
19211                 }
19212             },
19213         }
19214     }
19215 }
19216 #[doc = "Generated from 'VK_EXT_directfb_surface'"]
19217 impl StructureType {
19218     pub const DIRECTFB_SURFACE_CREATE_INFO_EXT: Self = Self(1_000_346_000);
19219 }
19220 impl KhrExtension350Fn {
19221     #[inline]
name() -> &'static ::std::ffi::CStr19222     pub const fn name() -> &'static ::std::ffi::CStr {
19223         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_350\0") }
19224     }
19225     pub const SPEC_VERSION: u32 = 0u32;
19226 }
19227 #[derive(Clone)]
19228 pub struct KhrExtension350Fn {}
19229 unsafe impl Send for KhrExtension350Fn {}
19230 unsafe impl Sync for KhrExtension350Fn {}
19231 impl KhrExtension350Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19232     pub fn load<F>(mut _f: F) -> Self
19233     where
19234         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19235     {
19236         Self {}
19237     }
19238 }
19239 impl NvExtension351Fn {
19240     #[inline]
name() -> &'static ::std::ffi::CStr19241     pub const fn name() -> &'static ::std::ffi::CStr {
19242         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_351\0") }
19243     }
19244     pub const SPEC_VERSION: u32 = 0u32;
19245 }
19246 #[derive(Clone)]
19247 pub struct NvExtension351Fn {}
19248 unsafe impl Send for NvExtension351Fn {}
19249 unsafe impl Sync for NvExtension351Fn {}
19250 impl NvExtension351Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19251     pub fn load<F>(mut _f: F) -> Self
19252     where
19253         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19254     {
19255         Self {}
19256     }
19257 }
19258 impl ValveMutableDescriptorTypeFn {
19259     #[inline]
name() -> &'static ::std::ffi::CStr19260     pub const fn name() -> &'static ::std::ffi::CStr {
19261         unsafe {
19262             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_VALVE_mutable_descriptor_type\0")
19263         }
19264     }
19265     pub const SPEC_VERSION: u32 = 1u32;
19266 }
19267 #[derive(Clone)]
19268 pub struct ValveMutableDescriptorTypeFn {}
19269 unsafe impl Send for ValveMutableDescriptorTypeFn {}
19270 unsafe impl Sync for ValveMutableDescriptorTypeFn {}
19271 impl ValveMutableDescriptorTypeFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19272     pub fn load<F>(mut _f: F) -> Self
19273     where
19274         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19275     {
19276         Self {}
19277     }
19278 }
19279 #[doc = "Generated from 'VK_VALVE_mutable_descriptor_type'"]
19280 impl DescriptorPoolCreateFlags {
19281     pub const HOST_ONLY_VALVE: Self = Self::HOST_ONLY_EXT;
19282 }
19283 #[doc = "Generated from 'VK_VALVE_mutable_descriptor_type'"]
19284 impl DescriptorSetLayoutCreateFlags {
19285     pub const HOST_ONLY_POOL_VALVE: Self = Self::HOST_ONLY_POOL_EXT;
19286 }
19287 #[doc = "Generated from 'VK_VALVE_mutable_descriptor_type'"]
19288 impl DescriptorType {
19289     pub const MUTABLE_VALVE: Self = Self::MUTABLE_EXT;
19290 }
19291 #[doc = "Generated from 'VK_VALVE_mutable_descriptor_type'"]
19292 impl StructureType {
19293     pub const PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE: Self =
19294         Self::PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT;
19295     pub const MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE: Self =
19296         Self::MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT;
19297 }
19298 impl ExtVertexInputDynamicStateFn {
19299     #[inline]
name() -> &'static ::std::ffi::CStr19300     pub const fn name() -> &'static ::std::ffi::CStr {
19301         unsafe {
19302             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_vertex_input_dynamic_state\0")
19303         }
19304     }
19305     pub const SPEC_VERSION: u32 = 2u32;
19306 }
19307 #[allow(non_camel_case_types)]
19308 pub type PFN_vkCmdSetVertexInputEXT = unsafe extern "system" fn(
19309     command_buffer: CommandBuffer,
19310     vertex_binding_description_count: u32,
19311     p_vertex_binding_descriptions: *const VertexInputBindingDescription2EXT,
19312     vertex_attribute_description_count: u32,
19313     p_vertex_attribute_descriptions: *const VertexInputAttributeDescription2EXT,
19314 );
19315 #[derive(Clone)]
19316 pub struct ExtVertexInputDynamicStateFn {
19317     pub cmd_set_vertex_input_ext: PFN_vkCmdSetVertexInputEXT,
19318 }
19319 unsafe impl Send for ExtVertexInputDynamicStateFn {}
19320 unsafe impl Sync for ExtVertexInputDynamicStateFn {}
19321 impl ExtVertexInputDynamicStateFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19322     pub fn load<F>(mut _f: F) -> Self
19323     where
19324         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19325     {
19326         Self {
19327             cmd_set_vertex_input_ext: unsafe {
19328                 unsafe extern "system" fn cmd_set_vertex_input_ext(
19329                     _command_buffer: CommandBuffer,
19330                     _vertex_binding_description_count: u32,
19331                     _p_vertex_binding_descriptions: *const VertexInputBindingDescription2EXT,
19332                     _vertex_attribute_description_count: u32,
19333                     _p_vertex_attribute_descriptions: *const VertexInputAttributeDescription2EXT,
19334                 ) {
19335                     panic!(concat!(
19336                         "Unable to load ",
19337                         stringify!(cmd_set_vertex_input_ext)
19338                     ))
19339                 }
19340                 let cname =
19341                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetVertexInputEXT\0");
19342                 let val = _f(cname);
19343                 if val.is_null() {
19344                     cmd_set_vertex_input_ext
19345                 } else {
19346                     ::std::mem::transmute(val)
19347                 }
19348             },
19349         }
19350     }
19351 }
19352 #[doc = "Generated from 'VK_EXT_vertex_input_dynamic_state'"]
19353 impl DynamicState {
19354     pub const VERTEX_INPUT_EXT: Self = Self(1_000_352_000);
19355 }
19356 #[doc = "Generated from 'VK_EXT_vertex_input_dynamic_state'"]
19357 impl StructureType {
19358     pub const PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT: Self = Self(1_000_352_000);
19359     pub const VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT: Self = Self(1_000_352_001);
19360     pub const VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT: Self = Self(1_000_352_002);
19361 }
19362 impl ExtPhysicalDeviceDrmFn {
19363     #[inline]
name() -> &'static ::std::ffi::CStr19364     pub const fn name() -> &'static ::std::ffi::CStr {
19365         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_physical_device_drm\0") }
19366     }
19367     pub const SPEC_VERSION: u32 = 1u32;
19368 }
19369 #[derive(Clone)]
19370 pub struct ExtPhysicalDeviceDrmFn {}
19371 unsafe impl Send for ExtPhysicalDeviceDrmFn {}
19372 unsafe impl Sync for ExtPhysicalDeviceDrmFn {}
19373 impl ExtPhysicalDeviceDrmFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19374     pub fn load<F>(mut _f: F) -> Self
19375     where
19376         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19377     {
19378         Self {}
19379     }
19380 }
19381 #[doc = "Generated from 'VK_EXT_physical_device_drm'"]
19382 impl StructureType {
19383     pub const PHYSICAL_DEVICE_DRM_PROPERTIES_EXT: Self = Self(1_000_353_000);
19384 }
19385 impl ExtDeviceAddressBindingReportFn {
19386     #[inline]
name() -> &'static ::std::ffi::CStr19387     pub const fn name() -> &'static ::std::ffi::CStr {
19388         unsafe {
19389             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19390                 b"VK_EXT_device_address_binding_report\0",
19391             )
19392         }
19393     }
19394     pub const SPEC_VERSION: u32 = 1u32;
19395 }
19396 #[derive(Clone)]
19397 pub struct ExtDeviceAddressBindingReportFn {}
19398 unsafe impl Send for ExtDeviceAddressBindingReportFn {}
19399 unsafe impl Sync for ExtDeviceAddressBindingReportFn {}
19400 impl ExtDeviceAddressBindingReportFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19401     pub fn load<F>(mut _f: F) -> Self
19402     where
19403         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19404     {
19405         Self {}
19406     }
19407 }
19408 #[doc = "Generated from 'VK_EXT_device_address_binding_report'"]
19409 impl DebugUtilsMessageTypeFlagsEXT {
19410     pub const DEVICE_ADDRESS_BINDING: Self = Self(0b1000);
19411 }
19412 #[doc = "Generated from 'VK_EXT_device_address_binding_report'"]
19413 impl StructureType {
19414     pub const PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT: Self = Self(1_000_354_000);
19415     pub const DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT: Self = Self(1_000_354_001);
19416 }
19417 impl ExtDepthClipControlFn {
19418     #[inline]
name() -> &'static ::std::ffi::CStr19419     pub const fn name() -> &'static ::std::ffi::CStr {
19420         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_depth_clip_control\0") }
19421     }
19422     pub const SPEC_VERSION: u32 = 1u32;
19423 }
19424 #[derive(Clone)]
19425 pub struct ExtDepthClipControlFn {}
19426 unsafe impl Send for ExtDepthClipControlFn {}
19427 unsafe impl Sync for ExtDepthClipControlFn {}
19428 impl ExtDepthClipControlFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19429     pub fn load<F>(mut _f: F) -> Self
19430     where
19431         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19432     {
19433         Self {}
19434     }
19435 }
19436 #[doc = "Generated from 'VK_EXT_depth_clip_control'"]
19437 impl StructureType {
19438     pub const PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT: Self = Self(1_000_355_000);
19439     pub const PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT: Self = Self(1_000_355_001);
19440 }
19441 impl ExtPrimitiveTopologyListRestartFn {
19442     #[inline]
name() -> &'static ::std::ffi::CStr19443     pub const fn name() -> &'static ::std::ffi::CStr {
19444         unsafe {
19445             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19446                 b"VK_EXT_primitive_topology_list_restart\0",
19447             )
19448         }
19449     }
19450     pub const SPEC_VERSION: u32 = 1u32;
19451 }
19452 #[derive(Clone)]
19453 pub struct ExtPrimitiveTopologyListRestartFn {}
19454 unsafe impl Send for ExtPrimitiveTopologyListRestartFn {}
19455 unsafe impl Sync for ExtPrimitiveTopologyListRestartFn {}
19456 impl ExtPrimitiveTopologyListRestartFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19457     pub fn load<F>(mut _f: F) -> Self
19458     where
19459         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19460     {
19461         Self {}
19462     }
19463 }
19464 #[doc = "Generated from 'VK_EXT_primitive_topology_list_restart'"]
19465 impl StructureType {
19466     pub const PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: Self =
19467         Self(1_000_356_000);
19468 }
19469 impl KhrExtension358Fn {
19470     #[inline]
name() -> &'static ::std::ffi::CStr19471     pub const fn name() -> &'static ::std::ffi::CStr {
19472         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_358\0") }
19473     }
19474     pub const SPEC_VERSION: u32 = 0u32;
19475 }
19476 #[derive(Clone)]
19477 pub struct KhrExtension358Fn {}
19478 unsafe impl Send for KhrExtension358Fn {}
19479 unsafe impl Sync for KhrExtension358Fn {}
19480 impl KhrExtension358Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19481     pub fn load<F>(mut _f: F) -> Self
19482     where
19483         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19484     {
19485         Self {}
19486     }
19487 }
19488 impl ExtExtension359Fn {
19489     #[inline]
name() -> &'static ::std::ffi::CStr19490     pub const fn name() -> &'static ::std::ffi::CStr {
19491         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_359\0") }
19492     }
19493     pub const SPEC_VERSION: u32 = 0u32;
19494 }
19495 #[derive(Clone)]
19496 pub struct ExtExtension359Fn {}
19497 unsafe impl Send for ExtExtension359Fn {}
19498 unsafe impl Sync for ExtExtension359Fn {}
19499 impl ExtExtension359Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19500     pub fn load<F>(mut _f: F) -> Self
19501     where
19502         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19503     {
19504         Self {}
19505     }
19506 }
19507 impl ExtExtension360Fn {
19508     #[inline]
name() -> &'static ::std::ffi::CStr19509     pub const fn name() -> &'static ::std::ffi::CStr {
19510         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_360\0") }
19511     }
19512     pub const SPEC_VERSION: u32 = 0u32;
19513 }
19514 #[derive(Clone)]
19515 pub struct ExtExtension360Fn {}
19516 unsafe impl Send for ExtExtension360Fn {}
19517 unsafe impl Sync for ExtExtension360Fn {}
19518 impl ExtExtension360Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19519     pub fn load<F>(mut _f: F) -> Self
19520     where
19521         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19522     {
19523         Self {}
19524     }
19525 }
19526 impl KhrFormatFeatureFlags2Fn {
19527     #[inline]
name() -> &'static ::std::ffi::CStr19528     pub const fn name() -> &'static ::std::ffi::CStr {
19529         unsafe {
19530             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_format_feature_flags2\0")
19531         }
19532     }
19533     pub const SPEC_VERSION: u32 = 2u32;
19534 }
19535 #[derive(Clone)]
19536 pub struct KhrFormatFeatureFlags2Fn {}
19537 unsafe impl Send for KhrFormatFeatureFlags2Fn {}
19538 unsafe impl Sync for KhrFormatFeatureFlags2Fn {}
19539 impl KhrFormatFeatureFlags2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19540     pub fn load<F>(mut _f: F) -> Self
19541     where
19542         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19543     {
19544         Self {}
19545     }
19546 }
19547 #[doc = "Generated from 'VK_KHR_format_feature_flags2'"]
19548 impl StructureType {
19549     pub const FORMAT_PROPERTIES_3_KHR: Self = Self::FORMAT_PROPERTIES_3;
19550 }
19551 impl ExtExtension362Fn {
19552     #[inline]
name() -> &'static ::std::ffi::CStr19553     pub const fn name() -> &'static ::std::ffi::CStr {
19554         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_362\0") }
19555     }
19556     pub const SPEC_VERSION: u32 = 0u32;
19557 }
19558 #[derive(Clone)]
19559 pub struct ExtExtension362Fn {}
19560 unsafe impl Send for ExtExtension362Fn {}
19561 unsafe impl Sync for ExtExtension362Fn {}
19562 impl ExtExtension362Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19563     pub fn load<F>(mut _f: F) -> Self
19564     where
19565         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19566     {
19567         Self {}
19568     }
19569 }
19570 impl ExtExtension363Fn {
19571     #[inline]
name() -> &'static ::std::ffi::CStr19572     pub const fn name() -> &'static ::std::ffi::CStr {
19573         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_363\0") }
19574     }
19575     pub const SPEC_VERSION: u32 = 0u32;
19576 }
19577 #[derive(Clone)]
19578 pub struct ExtExtension363Fn {}
19579 unsafe impl Send for ExtExtension363Fn {}
19580 unsafe impl Sync for ExtExtension363Fn {}
19581 impl ExtExtension363Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19582     pub fn load<F>(mut _f: F) -> Self
19583     where
19584         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19585     {
19586         Self {}
19587     }
19588 }
19589 impl FuchsiaExtension364Fn {
19590     #[inline]
name() -> &'static ::std::ffi::CStr19591     pub const fn name() -> &'static ::std::ffi::CStr {
19592         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_FUCHSIA_extension_364\0") }
19593     }
19594     pub const SPEC_VERSION: u32 = 0u32;
19595 }
19596 #[derive(Clone)]
19597 pub struct FuchsiaExtension364Fn {}
19598 unsafe impl Send for FuchsiaExtension364Fn {}
19599 unsafe impl Sync for FuchsiaExtension364Fn {}
19600 impl FuchsiaExtension364Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19601     pub fn load<F>(mut _f: F) -> Self
19602     where
19603         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19604     {
19605         Self {}
19606     }
19607 }
19608 impl FuchsiaExternalMemoryFn {
19609     #[inline]
name() -> &'static ::std::ffi::CStr19610     pub const fn name() -> &'static ::std::ffi::CStr {
19611         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_FUCHSIA_external_memory\0") }
19612     }
19613     pub const SPEC_VERSION: u32 = 1u32;
19614 }
19615 #[allow(non_camel_case_types)]
19616 pub type PFN_vkGetMemoryZirconHandleFUCHSIA = unsafe extern "system" fn(
19617     device: Device,
19618     p_get_zircon_handle_info: *const MemoryGetZirconHandleInfoFUCHSIA,
19619     p_zircon_handle: *mut zx_handle_t,
19620 ) -> Result;
19621 #[allow(non_camel_case_types)]
19622 pub type PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA = unsafe extern "system" fn(
19623     device: Device,
19624     handle_type: ExternalMemoryHandleTypeFlags,
19625     zircon_handle: zx_handle_t,
19626     p_memory_zircon_handle_properties: *mut MemoryZirconHandlePropertiesFUCHSIA,
19627 ) -> Result;
19628 #[derive(Clone)]
19629 pub struct FuchsiaExternalMemoryFn {
19630     pub get_memory_zircon_handle_fuchsia: PFN_vkGetMemoryZirconHandleFUCHSIA,
19631     pub get_memory_zircon_handle_properties_fuchsia: PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA,
19632 }
19633 unsafe impl Send for FuchsiaExternalMemoryFn {}
19634 unsafe impl Sync for FuchsiaExternalMemoryFn {}
19635 impl FuchsiaExternalMemoryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19636     pub fn load<F>(mut _f: F) -> Self
19637     where
19638         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19639     {
19640         Self {
19641             get_memory_zircon_handle_fuchsia: unsafe {
19642                 unsafe extern "system" fn get_memory_zircon_handle_fuchsia(
19643                     _device: Device,
19644                     _p_get_zircon_handle_info: *const MemoryGetZirconHandleInfoFUCHSIA,
19645                     _p_zircon_handle: *mut zx_handle_t,
19646                 ) -> Result {
19647                     panic!(concat!(
19648                         "Unable to load ",
19649                         stringify!(get_memory_zircon_handle_fuchsia)
19650                     ))
19651                 }
19652                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19653                     b"vkGetMemoryZirconHandleFUCHSIA\0",
19654                 );
19655                 let val = _f(cname);
19656                 if val.is_null() {
19657                     get_memory_zircon_handle_fuchsia
19658                 } else {
19659                     ::std::mem::transmute(val)
19660                 }
19661             },
19662             get_memory_zircon_handle_properties_fuchsia: unsafe {
19663                 unsafe extern "system" fn get_memory_zircon_handle_properties_fuchsia(
19664                     _device: Device,
19665                     _handle_type: ExternalMemoryHandleTypeFlags,
19666                     _zircon_handle: zx_handle_t,
19667                     _p_memory_zircon_handle_properties: *mut MemoryZirconHandlePropertiesFUCHSIA,
19668                 ) -> Result {
19669                     panic!(concat!(
19670                         "Unable to load ",
19671                         stringify!(get_memory_zircon_handle_properties_fuchsia)
19672                     ))
19673                 }
19674                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19675                     b"vkGetMemoryZirconHandlePropertiesFUCHSIA\0",
19676                 );
19677                 let val = _f(cname);
19678                 if val.is_null() {
19679                     get_memory_zircon_handle_properties_fuchsia
19680                 } else {
19681                     ::std::mem::transmute(val)
19682                 }
19683             },
19684         }
19685     }
19686 }
19687 #[doc = "Generated from 'VK_FUCHSIA_external_memory'"]
19688 impl ExternalMemoryHandleTypeFlags {
19689     pub const ZIRCON_VMO_FUCHSIA: Self = Self(0b1000_0000_0000);
19690 }
19691 #[doc = "Generated from 'VK_FUCHSIA_external_memory'"]
19692 impl StructureType {
19693     pub const IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA: Self = Self(1_000_364_000);
19694     pub const MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA: Self = Self(1_000_364_001);
19695     pub const MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA: Self = Self(1_000_364_002);
19696 }
19697 impl FuchsiaExternalSemaphoreFn {
19698     #[inline]
name() -> &'static ::std::ffi::CStr19699     pub const fn name() -> &'static ::std::ffi::CStr {
19700         unsafe {
19701             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_FUCHSIA_external_semaphore\0")
19702         }
19703     }
19704     pub const SPEC_VERSION: u32 = 1u32;
19705 }
19706 #[allow(non_camel_case_types)]
19707 pub type PFN_vkImportSemaphoreZirconHandleFUCHSIA = unsafe extern "system" fn(
19708     device: Device,
19709     p_import_semaphore_zircon_handle_info: *const ImportSemaphoreZirconHandleInfoFUCHSIA,
19710 ) -> Result;
19711 #[allow(non_camel_case_types)]
19712 pub type PFN_vkGetSemaphoreZirconHandleFUCHSIA = unsafe extern "system" fn(
19713     device: Device,
19714     p_get_zircon_handle_info: *const SemaphoreGetZirconHandleInfoFUCHSIA,
19715     p_zircon_handle: *mut zx_handle_t,
19716 ) -> Result;
19717 #[derive(Clone)]
19718 pub struct FuchsiaExternalSemaphoreFn {
19719     pub import_semaphore_zircon_handle_fuchsia: PFN_vkImportSemaphoreZirconHandleFUCHSIA,
19720     pub get_semaphore_zircon_handle_fuchsia: PFN_vkGetSemaphoreZirconHandleFUCHSIA,
19721 }
19722 unsafe impl Send for FuchsiaExternalSemaphoreFn {}
19723 unsafe impl Sync for FuchsiaExternalSemaphoreFn {}
19724 impl FuchsiaExternalSemaphoreFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19725     pub fn load<F>(mut _f: F) -> Self
19726     where
19727         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19728     {
19729         Self {
19730             import_semaphore_zircon_handle_fuchsia: unsafe {
19731                 unsafe extern "system" fn import_semaphore_zircon_handle_fuchsia(
19732                     _device: Device,
19733                     _p_import_semaphore_zircon_handle_info : * const ImportSemaphoreZirconHandleInfoFUCHSIA,
19734                 ) -> Result {
19735                     panic!(concat!(
19736                         "Unable to load ",
19737                         stringify!(import_semaphore_zircon_handle_fuchsia)
19738                     ))
19739                 }
19740                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19741                     b"vkImportSemaphoreZirconHandleFUCHSIA\0",
19742                 );
19743                 let val = _f(cname);
19744                 if val.is_null() {
19745                     import_semaphore_zircon_handle_fuchsia
19746                 } else {
19747                     ::std::mem::transmute(val)
19748                 }
19749             },
19750             get_semaphore_zircon_handle_fuchsia: unsafe {
19751                 unsafe extern "system" fn get_semaphore_zircon_handle_fuchsia(
19752                     _device: Device,
19753                     _p_get_zircon_handle_info: *const SemaphoreGetZirconHandleInfoFUCHSIA,
19754                     _p_zircon_handle: *mut zx_handle_t,
19755                 ) -> Result {
19756                     panic!(concat!(
19757                         "Unable to load ",
19758                         stringify!(get_semaphore_zircon_handle_fuchsia)
19759                     ))
19760                 }
19761                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19762                     b"vkGetSemaphoreZirconHandleFUCHSIA\0",
19763                 );
19764                 let val = _f(cname);
19765                 if val.is_null() {
19766                     get_semaphore_zircon_handle_fuchsia
19767                 } else {
19768                     ::std::mem::transmute(val)
19769                 }
19770             },
19771         }
19772     }
19773 }
19774 #[doc = "Generated from 'VK_FUCHSIA_external_semaphore'"]
19775 impl ExternalSemaphoreHandleTypeFlags {
19776     pub const ZIRCON_EVENT_FUCHSIA: Self = Self(0b1000_0000);
19777 }
19778 #[doc = "Generated from 'VK_FUCHSIA_external_semaphore'"]
19779 impl StructureType {
19780     pub const IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA: Self = Self(1_000_365_000);
19781     pub const SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA: Self = Self(1_000_365_001);
19782 }
19783 impl FuchsiaBufferCollectionFn {
19784     #[inline]
name() -> &'static ::std::ffi::CStr19785     pub const fn name() -> &'static ::std::ffi::CStr {
19786         unsafe {
19787             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_FUCHSIA_buffer_collection\0")
19788         }
19789     }
19790     pub const SPEC_VERSION: u32 = 2u32;
19791 }
19792 #[allow(non_camel_case_types)]
19793 pub type PFN_vkCreateBufferCollectionFUCHSIA = unsafe extern "system" fn(
19794     device: Device,
19795     p_create_info: *const BufferCollectionCreateInfoFUCHSIA,
19796     p_allocator: *const AllocationCallbacks,
19797     p_collection: *mut BufferCollectionFUCHSIA,
19798 ) -> Result;
19799 #[allow(non_camel_case_types)]
19800 pub type PFN_vkSetBufferCollectionImageConstraintsFUCHSIA = unsafe extern "system" fn(
19801     device: Device,
19802     collection: BufferCollectionFUCHSIA,
19803     p_image_constraints_info: *const ImageConstraintsInfoFUCHSIA,
19804 ) -> Result;
19805 #[allow(non_camel_case_types)]
19806 pub type PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA = unsafe extern "system" fn(
19807     device: Device,
19808     collection: BufferCollectionFUCHSIA,
19809     p_buffer_constraints_info: *const BufferConstraintsInfoFUCHSIA,
19810 ) -> Result;
19811 #[allow(non_camel_case_types)]
19812 pub type PFN_vkDestroyBufferCollectionFUCHSIA = unsafe extern "system" fn(
19813     device: Device,
19814     collection: BufferCollectionFUCHSIA,
19815     p_allocator: *const AllocationCallbacks,
19816 );
19817 #[allow(non_camel_case_types)]
19818 pub type PFN_vkGetBufferCollectionPropertiesFUCHSIA = unsafe extern "system" fn(
19819     device: Device,
19820     collection: BufferCollectionFUCHSIA,
19821     p_properties: *mut BufferCollectionPropertiesFUCHSIA,
19822 ) -> Result;
19823 #[derive(Clone)]
19824 pub struct FuchsiaBufferCollectionFn {
19825     pub create_buffer_collection_fuchsia: PFN_vkCreateBufferCollectionFUCHSIA,
19826     pub set_buffer_collection_image_constraints_fuchsia:
19827         PFN_vkSetBufferCollectionImageConstraintsFUCHSIA,
19828     pub set_buffer_collection_buffer_constraints_fuchsia:
19829         PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA,
19830     pub destroy_buffer_collection_fuchsia: PFN_vkDestroyBufferCollectionFUCHSIA,
19831     pub get_buffer_collection_properties_fuchsia: PFN_vkGetBufferCollectionPropertiesFUCHSIA,
19832 }
19833 unsafe impl Send for FuchsiaBufferCollectionFn {}
19834 unsafe impl Sync for FuchsiaBufferCollectionFn {}
19835 impl FuchsiaBufferCollectionFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19836     pub fn load<F>(mut _f: F) -> Self
19837     where
19838         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19839     {
19840         Self {
19841             create_buffer_collection_fuchsia: unsafe {
19842                 unsafe extern "system" fn create_buffer_collection_fuchsia(
19843                     _device: Device,
19844                     _p_create_info: *const BufferCollectionCreateInfoFUCHSIA,
19845                     _p_allocator: *const AllocationCallbacks,
19846                     _p_collection: *mut BufferCollectionFUCHSIA,
19847                 ) -> Result {
19848                     panic!(concat!(
19849                         "Unable to load ",
19850                         stringify!(create_buffer_collection_fuchsia)
19851                     ))
19852                 }
19853                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19854                     b"vkCreateBufferCollectionFUCHSIA\0",
19855                 );
19856                 let val = _f(cname);
19857                 if val.is_null() {
19858                     create_buffer_collection_fuchsia
19859                 } else {
19860                     ::std::mem::transmute(val)
19861                 }
19862             },
19863             set_buffer_collection_image_constraints_fuchsia: unsafe {
19864                 unsafe extern "system" fn set_buffer_collection_image_constraints_fuchsia(
19865                     _device: Device,
19866                     _collection: BufferCollectionFUCHSIA,
19867                     _p_image_constraints_info: *const ImageConstraintsInfoFUCHSIA,
19868                 ) -> Result {
19869                     panic!(concat!(
19870                         "Unable to load ",
19871                         stringify!(set_buffer_collection_image_constraints_fuchsia)
19872                     ))
19873                 }
19874                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19875                     b"vkSetBufferCollectionImageConstraintsFUCHSIA\0",
19876                 );
19877                 let val = _f(cname);
19878                 if val.is_null() {
19879                     set_buffer_collection_image_constraints_fuchsia
19880                 } else {
19881                     ::std::mem::transmute(val)
19882                 }
19883             },
19884             set_buffer_collection_buffer_constraints_fuchsia: unsafe {
19885                 unsafe extern "system" fn set_buffer_collection_buffer_constraints_fuchsia(
19886                     _device: Device,
19887                     _collection: BufferCollectionFUCHSIA,
19888                     _p_buffer_constraints_info: *const BufferConstraintsInfoFUCHSIA,
19889                 ) -> Result {
19890                     panic!(concat!(
19891                         "Unable to load ",
19892                         stringify!(set_buffer_collection_buffer_constraints_fuchsia)
19893                     ))
19894                 }
19895                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19896                     b"vkSetBufferCollectionBufferConstraintsFUCHSIA\0",
19897                 );
19898                 let val = _f(cname);
19899                 if val.is_null() {
19900                     set_buffer_collection_buffer_constraints_fuchsia
19901                 } else {
19902                     ::std::mem::transmute(val)
19903                 }
19904             },
19905             destroy_buffer_collection_fuchsia: unsafe {
19906                 unsafe extern "system" fn destroy_buffer_collection_fuchsia(
19907                     _device: Device,
19908                     _collection: BufferCollectionFUCHSIA,
19909                     _p_allocator: *const AllocationCallbacks,
19910                 ) {
19911                     panic!(concat!(
19912                         "Unable to load ",
19913                         stringify!(destroy_buffer_collection_fuchsia)
19914                     ))
19915                 }
19916                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19917                     b"vkDestroyBufferCollectionFUCHSIA\0",
19918                 );
19919                 let val = _f(cname);
19920                 if val.is_null() {
19921                     destroy_buffer_collection_fuchsia
19922                 } else {
19923                     ::std::mem::transmute(val)
19924                 }
19925             },
19926             get_buffer_collection_properties_fuchsia: unsafe {
19927                 unsafe extern "system" fn get_buffer_collection_properties_fuchsia(
19928                     _device: Device,
19929                     _collection: BufferCollectionFUCHSIA,
19930                     _p_properties: *mut BufferCollectionPropertiesFUCHSIA,
19931                 ) -> Result {
19932                     panic!(concat!(
19933                         "Unable to load ",
19934                         stringify!(get_buffer_collection_properties_fuchsia)
19935                     ))
19936                 }
19937                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19938                     b"vkGetBufferCollectionPropertiesFUCHSIA\0",
19939                 );
19940                 let val = _f(cname);
19941                 if val.is_null() {
19942                     get_buffer_collection_properties_fuchsia
19943                 } else {
19944                     ::std::mem::transmute(val)
19945                 }
19946             },
19947         }
19948     }
19949 }
19950 #[doc = "Generated from 'VK_FUCHSIA_buffer_collection'"]
19951 impl DebugReportObjectTypeEXT {
19952     pub const BUFFER_COLLECTION_FUCHSIA: Self = Self(1_000_366_000);
19953 }
19954 #[doc = "Generated from 'VK_FUCHSIA_buffer_collection'"]
19955 impl ObjectType {
19956     #[doc = "VkBufferCollectionFUCHSIA"]
19957     pub const BUFFER_COLLECTION_FUCHSIA: Self = Self(1_000_366_000);
19958 }
19959 #[doc = "Generated from 'VK_FUCHSIA_buffer_collection'"]
19960 impl StructureType {
19961     pub const BUFFER_COLLECTION_CREATE_INFO_FUCHSIA: Self = Self(1_000_366_000);
19962     pub const IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA: Self = Self(1_000_366_001);
19963     pub const BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA: Self = Self(1_000_366_002);
19964     pub const BUFFER_COLLECTION_PROPERTIES_FUCHSIA: Self = Self(1_000_366_003);
19965     pub const BUFFER_CONSTRAINTS_INFO_FUCHSIA: Self = Self(1_000_366_004);
19966     pub const BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA: Self = Self(1_000_366_005);
19967     pub const IMAGE_CONSTRAINTS_INFO_FUCHSIA: Self = Self(1_000_366_006);
19968     pub const IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA: Self = Self(1_000_366_007);
19969     pub const SYSMEM_COLOR_SPACE_FUCHSIA: Self = Self(1_000_366_008);
19970     pub const BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA: Self = Self(1_000_366_009);
19971 }
19972 impl FuchsiaExtension368Fn {
19973     #[inline]
name() -> &'static ::std::ffi::CStr19974     pub const fn name() -> &'static ::std::ffi::CStr {
19975         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_FUCHSIA_extension_368\0") }
19976     }
19977     pub const SPEC_VERSION: u32 = 0u32;
19978 }
19979 #[derive(Clone)]
19980 pub struct FuchsiaExtension368Fn {}
19981 unsafe impl Send for FuchsiaExtension368Fn {}
19982 unsafe impl Sync for FuchsiaExtension368Fn {}
19983 impl FuchsiaExtension368Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19984     pub fn load<F>(mut _f: F) -> Self
19985     where
19986         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19987     {
19988         Self {}
19989     }
19990 }
19991 impl QcomExtension369Fn {
19992     #[inline]
name() -> &'static ::std::ffi::CStr19993     pub const fn name() -> &'static ::std::ffi::CStr {
19994         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_369\0") }
19995     }
19996     pub const SPEC_VERSION: u32 = 0u32;
19997 }
19998 #[derive(Clone)]
19999 pub struct QcomExtension369Fn {}
20000 unsafe impl Send for QcomExtension369Fn {}
20001 unsafe impl Sync for QcomExtension369Fn {}
20002 impl QcomExtension369Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20003     pub fn load<F>(mut _f: F) -> Self
20004     where
20005         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20006     {
20007         Self {}
20008     }
20009 }
20010 #[doc = "Generated from 'VK_QCOM_extension_369'"]
20011 impl DescriptorBindingFlags {
20012     pub const RESERVED_4_QCOM: Self = Self(0b1_0000);
20013 }
20014 impl HuaweiSubpassShadingFn {
20015     #[inline]
name() -> &'static ::std::ffi::CStr20016     pub const fn name() -> &'static ::std::ffi::CStr {
20017         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_HUAWEI_subpass_shading\0") }
20018     }
20019     pub const SPEC_VERSION: u32 = 2u32;
20020 }
20021 #[allow(non_camel_case_types)]
20022 pub type PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = unsafe extern "system" fn(
20023     device: Device,
20024     renderpass: RenderPass,
20025     p_max_workgroup_size: *mut Extent2D,
20026 ) -> Result;
20027 #[allow(non_camel_case_types)]
20028 pub type PFN_vkCmdSubpassShadingHUAWEI = unsafe extern "system" fn(command_buffer: CommandBuffer);
20029 #[derive(Clone)]
20030 pub struct HuaweiSubpassShadingFn {
20031     pub get_device_subpass_shading_max_workgroup_size_huawei:
20032         PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI,
20033     pub cmd_subpass_shading_huawei: PFN_vkCmdSubpassShadingHUAWEI,
20034 }
20035 unsafe impl Send for HuaweiSubpassShadingFn {}
20036 unsafe impl Sync for HuaweiSubpassShadingFn {}
20037 impl HuaweiSubpassShadingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20038     pub fn load<F>(mut _f: F) -> Self
20039     where
20040         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20041     {
20042         Self {
20043             get_device_subpass_shading_max_workgroup_size_huawei: unsafe {
20044                 unsafe extern "system" fn get_device_subpass_shading_max_workgroup_size_huawei(
20045                     _device: Device,
20046                     _renderpass: RenderPass,
20047                     _p_max_workgroup_size: *mut Extent2D,
20048                 ) -> Result {
20049                     panic!(concat!(
20050                         "Unable to load ",
20051                         stringify!(get_device_subpass_shading_max_workgroup_size_huawei)
20052                     ))
20053                 }
20054                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20055                     b"vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI\0",
20056                 );
20057                 let val = _f(cname);
20058                 if val.is_null() {
20059                     get_device_subpass_shading_max_workgroup_size_huawei
20060                 } else {
20061                     ::std::mem::transmute(val)
20062                 }
20063             },
20064             cmd_subpass_shading_huawei: unsafe {
20065                 unsafe extern "system" fn cmd_subpass_shading_huawei(
20066                     _command_buffer: CommandBuffer,
20067                 ) {
20068                     panic!(concat!(
20069                         "Unable to load ",
20070                         stringify!(cmd_subpass_shading_huawei)
20071                     ))
20072                 }
20073                 let cname =
20074                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSubpassShadingHUAWEI\0");
20075                 let val = _f(cname);
20076                 if val.is_null() {
20077                     cmd_subpass_shading_huawei
20078                 } else {
20079                     ::std::mem::transmute(val)
20080                 }
20081             },
20082         }
20083     }
20084 }
20085 #[doc = "Generated from 'VK_HUAWEI_subpass_shading'"]
20086 impl PipelineBindPoint {
20087     pub const SUBPASS_SHADING_HUAWEI: Self = Self(1_000_369_003);
20088 }
20089 #[doc = "Generated from 'VK_HUAWEI_subpass_shading'"]
20090 impl PipelineStageFlags2 {
20091     pub const SUBPASS_SHADING_HUAWEI: Self =
20092         Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
20093 }
20094 #[doc = "Generated from 'VK_HUAWEI_subpass_shading'"]
20095 impl ShaderStageFlags {
20096     pub const SUBPASS_SHADING_HUAWEI: Self = Self(0b100_0000_0000_0000);
20097 }
20098 #[doc = "Generated from 'VK_HUAWEI_subpass_shading'"]
20099 impl StructureType {
20100     pub const SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI: Self = Self(1_000_369_000);
20101     pub const PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI: Self = Self(1_000_369_001);
20102     pub const PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI: Self = Self(1_000_369_002);
20103 }
20104 impl HuaweiInvocationMaskFn {
20105     #[inline]
name() -> &'static ::std::ffi::CStr20106     pub const fn name() -> &'static ::std::ffi::CStr {
20107         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_HUAWEI_invocation_mask\0") }
20108     }
20109     pub const SPEC_VERSION: u32 = 1u32;
20110 }
20111 #[allow(non_camel_case_types)]
20112 pub type PFN_vkCmdBindInvocationMaskHUAWEI = unsafe extern "system" fn(
20113     command_buffer: CommandBuffer,
20114     image_view: ImageView,
20115     image_layout: ImageLayout,
20116 );
20117 #[derive(Clone)]
20118 pub struct HuaweiInvocationMaskFn {
20119     pub cmd_bind_invocation_mask_huawei: PFN_vkCmdBindInvocationMaskHUAWEI,
20120 }
20121 unsafe impl Send for HuaweiInvocationMaskFn {}
20122 unsafe impl Sync for HuaweiInvocationMaskFn {}
20123 impl HuaweiInvocationMaskFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20124     pub fn load<F>(mut _f: F) -> Self
20125     where
20126         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20127     {
20128         Self {
20129             cmd_bind_invocation_mask_huawei: unsafe {
20130                 unsafe extern "system" fn cmd_bind_invocation_mask_huawei(
20131                     _command_buffer: CommandBuffer,
20132                     _image_view: ImageView,
20133                     _image_layout: ImageLayout,
20134                 ) {
20135                     panic!(concat!(
20136                         "Unable to load ",
20137                         stringify!(cmd_bind_invocation_mask_huawei)
20138                     ))
20139                 }
20140                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20141                     b"vkCmdBindInvocationMaskHUAWEI\0",
20142                 );
20143                 let val = _f(cname);
20144                 if val.is_null() {
20145                     cmd_bind_invocation_mask_huawei
20146                 } else {
20147                     ::std::mem::transmute(val)
20148                 }
20149             },
20150         }
20151     }
20152 }
20153 #[doc = "Generated from 'VK_HUAWEI_invocation_mask'"]
20154 impl AccessFlags2 {
20155     pub const INVOCATION_MASK_READ_HUAWEI: Self =
20156         Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
20157 }
20158 #[doc = "Generated from 'VK_HUAWEI_invocation_mask'"]
20159 impl ImageUsageFlags {
20160     pub const INVOCATION_MASK_HUAWEI: Self = Self(0b100_0000_0000_0000_0000);
20161 }
20162 #[doc = "Generated from 'VK_HUAWEI_invocation_mask'"]
20163 impl PipelineStageFlags2 {
20164     pub const INVOCATION_MASK_HUAWEI: Self =
20165         Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
20166 }
20167 #[doc = "Generated from 'VK_HUAWEI_invocation_mask'"]
20168 impl StructureType {
20169     pub const PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI: Self = Self(1_000_370_000);
20170 }
20171 impl NvExternalMemoryRdmaFn {
20172     #[inline]
name() -> &'static ::std::ffi::CStr20173     pub const fn name() -> &'static ::std::ffi::CStr {
20174         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_external_memory_rdma\0") }
20175     }
20176     pub const SPEC_VERSION: u32 = 1u32;
20177 }
20178 #[allow(non_camel_case_types)]
20179 pub type PFN_vkGetMemoryRemoteAddressNV = unsafe extern "system" fn(
20180     device: Device,
20181     p_memory_get_remote_address_info: *const MemoryGetRemoteAddressInfoNV,
20182     p_address: *mut RemoteAddressNV,
20183 ) -> Result;
20184 #[derive(Clone)]
20185 pub struct NvExternalMemoryRdmaFn {
20186     pub get_memory_remote_address_nv: PFN_vkGetMemoryRemoteAddressNV,
20187 }
20188 unsafe impl Send for NvExternalMemoryRdmaFn {}
20189 unsafe impl Sync for NvExternalMemoryRdmaFn {}
20190 impl NvExternalMemoryRdmaFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20191     pub fn load<F>(mut _f: F) -> Self
20192     where
20193         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20194     {
20195         Self {
20196             get_memory_remote_address_nv: unsafe {
20197                 unsafe extern "system" fn get_memory_remote_address_nv(
20198                     _device: Device,
20199                     _p_memory_get_remote_address_info: *const MemoryGetRemoteAddressInfoNV,
20200                     _p_address: *mut RemoteAddressNV,
20201                 ) -> Result {
20202                     panic!(concat!(
20203                         "Unable to load ",
20204                         stringify!(get_memory_remote_address_nv)
20205                     ))
20206                 }
20207                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20208                     b"vkGetMemoryRemoteAddressNV\0",
20209                 );
20210                 let val = _f(cname);
20211                 if val.is_null() {
20212                     get_memory_remote_address_nv
20213                 } else {
20214                     ::std::mem::transmute(val)
20215                 }
20216             },
20217         }
20218     }
20219 }
20220 #[doc = "Generated from 'VK_NV_external_memory_rdma'"]
20221 impl ExternalMemoryHandleTypeFlags {
20222     pub const RDMA_ADDRESS_NV: Self = Self(0b1_0000_0000_0000);
20223 }
20224 #[doc = "Generated from 'VK_NV_external_memory_rdma'"]
20225 impl MemoryPropertyFlags {
20226     pub const RDMA_CAPABLE_NV: Self = Self(0b1_0000_0000);
20227 }
20228 #[doc = "Generated from 'VK_NV_external_memory_rdma'"]
20229 impl StructureType {
20230     pub const MEMORY_GET_REMOTE_ADDRESS_INFO_NV: Self = Self(1_000_371_000);
20231     pub const PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV: Self = Self(1_000_371_001);
20232 }
20233 impl ExtPipelinePropertiesFn {
20234     #[inline]
name() -> &'static ::std::ffi::CStr20235     pub const fn name() -> &'static ::std::ffi::CStr {
20236         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pipeline_properties\0") }
20237     }
20238     pub const SPEC_VERSION: u32 = 1u32;
20239 }
20240 #[allow(non_camel_case_types)]
20241 #[doc = "Implemented for all types that can be passed as argument to `pipeline_properties` in [`PFN_vkGetPipelinePropertiesEXT`]"]
20242 pub unsafe trait GetPipelinePropertiesEXTParamPipelineProperties {}
20243 unsafe impl GetPipelinePropertiesEXTParamPipelineProperties for PipelinePropertiesIdentifierEXT {}
20244 #[allow(non_camel_case_types)]
20245 pub type PFN_vkGetPipelinePropertiesEXT = unsafe extern "system" fn(
20246     device: Device,
20247     p_pipeline_info: *const PipelineInfoEXT,
20248     p_pipeline_properties: *mut BaseOutStructure,
20249 ) -> Result;
20250 #[derive(Clone)]
20251 pub struct ExtPipelinePropertiesFn {
20252     pub get_pipeline_properties_ext: PFN_vkGetPipelinePropertiesEXT,
20253 }
20254 unsafe impl Send for ExtPipelinePropertiesFn {}
20255 unsafe impl Sync for ExtPipelinePropertiesFn {}
20256 impl ExtPipelinePropertiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20257     pub fn load<F>(mut _f: F) -> Self
20258     where
20259         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20260     {
20261         Self {
20262             get_pipeline_properties_ext: unsafe {
20263                 unsafe extern "system" fn get_pipeline_properties_ext(
20264                     _device: Device,
20265                     _p_pipeline_info: *const PipelineInfoEXT,
20266                     _p_pipeline_properties: *mut BaseOutStructure,
20267                 ) -> Result {
20268                     panic!(concat!(
20269                         "Unable to load ",
20270                         stringify!(get_pipeline_properties_ext)
20271                     ))
20272                 }
20273                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20274                     b"vkGetPipelinePropertiesEXT\0",
20275                 );
20276                 let val = _f(cname);
20277                 if val.is_null() {
20278                     get_pipeline_properties_ext
20279                 } else {
20280                     ::std::mem::transmute(val)
20281                 }
20282             },
20283         }
20284     }
20285 }
20286 #[doc = "Generated from 'VK_EXT_pipeline_properties'"]
20287 impl StructureType {
20288     pub const PIPELINE_PROPERTIES_IDENTIFIER_EXT: Self = Self(1_000_372_000);
20289     pub const PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT: Self = Self(1_000_372_001);
20290     pub const PIPELINE_INFO_EXT: Self = Self::PIPELINE_INFO_KHR;
20291 }
20292 impl ExtExtension376Fn {
20293     #[inline]
name() -> &'static ::std::ffi::CStr20294     pub const fn name() -> &'static ::std::ffi::CStr {
20295         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_376\0") }
20296     }
20297     pub const SPEC_VERSION: u32 = 0u32;
20298 }
20299 #[derive(Clone)]
20300 pub struct ExtExtension376Fn {}
20301 unsafe impl Send for ExtExtension376Fn {}
20302 unsafe impl Sync for ExtExtension376Fn {}
20303 impl ExtExtension376Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20304     pub fn load<F>(mut _f: F) -> Self
20305     where
20306         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20307     {
20308         Self {}
20309     }
20310 }
20311 impl ExtMultisampledRenderToSingleSampledFn {
20312     #[inline]
name() -> &'static ::std::ffi::CStr20313     pub const fn name() -> &'static ::std::ffi::CStr {
20314         unsafe {
20315             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20316                 b"VK_EXT_multisampled_render_to_single_sampled\0",
20317             )
20318         }
20319     }
20320     pub const SPEC_VERSION: u32 = 1u32;
20321 }
20322 #[derive(Clone)]
20323 pub struct ExtMultisampledRenderToSingleSampledFn {}
20324 unsafe impl Send for ExtMultisampledRenderToSingleSampledFn {}
20325 unsafe impl Sync for ExtMultisampledRenderToSingleSampledFn {}
20326 impl ExtMultisampledRenderToSingleSampledFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20327     pub fn load<F>(mut _f: F) -> Self
20328     where
20329         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20330     {
20331         Self {}
20332     }
20333 }
20334 #[doc = "Generated from 'VK_EXT_multisampled_render_to_single_sampled'"]
20335 impl ImageCreateFlags {
20336     pub const MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXT: Self = Self(0b100_0000_0000_0000_0000);
20337 }
20338 #[doc = "Generated from 'VK_EXT_multisampled_render_to_single_sampled'"]
20339 impl StructureType {
20340     pub const PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT: Self =
20341         Self(1_000_376_000);
20342     pub const SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT: Self = Self(1_000_376_001);
20343     pub const MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT: Self = Self(1_000_376_002);
20344 }
20345 impl ExtExtendedDynamicState2Fn {
20346     #[inline]
name() -> &'static ::std::ffi::CStr20347     pub const fn name() -> &'static ::std::ffi::CStr {
20348         unsafe {
20349             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extended_dynamic_state2\0")
20350         }
20351     }
20352     pub const SPEC_VERSION: u32 = 1u32;
20353 }
20354 #[allow(non_camel_case_types)]
20355 pub type PFN_vkCmdSetPatchControlPointsEXT =
20356     unsafe extern "system" fn(command_buffer: CommandBuffer, patch_control_points: u32);
20357 #[allow(non_camel_case_types)]
20358 pub type PFN_vkCmdSetRasterizerDiscardEnable =
20359     unsafe extern "system" fn(command_buffer: CommandBuffer, rasterizer_discard_enable: Bool32);
20360 #[allow(non_camel_case_types)]
20361 pub type PFN_vkCmdSetDepthBiasEnable =
20362     unsafe extern "system" fn(command_buffer: CommandBuffer, depth_bias_enable: Bool32);
20363 #[allow(non_camel_case_types)]
20364 pub type PFN_vkCmdSetLogicOpEXT =
20365     unsafe extern "system" fn(command_buffer: CommandBuffer, logic_op: LogicOp);
20366 #[allow(non_camel_case_types)]
20367 pub type PFN_vkCmdSetPrimitiveRestartEnable =
20368     unsafe extern "system" fn(command_buffer: CommandBuffer, primitive_restart_enable: Bool32);
20369 #[derive(Clone)]
20370 pub struct ExtExtendedDynamicState2Fn {
20371     pub cmd_set_patch_control_points_ext: PFN_vkCmdSetPatchControlPointsEXT,
20372     pub cmd_set_rasterizer_discard_enable_ext: PFN_vkCmdSetRasterizerDiscardEnable,
20373     pub cmd_set_depth_bias_enable_ext: PFN_vkCmdSetDepthBiasEnable,
20374     pub cmd_set_logic_op_ext: PFN_vkCmdSetLogicOpEXT,
20375     pub cmd_set_primitive_restart_enable_ext: PFN_vkCmdSetPrimitiveRestartEnable,
20376 }
20377 unsafe impl Send for ExtExtendedDynamicState2Fn {}
20378 unsafe impl Sync for ExtExtendedDynamicState2Fn {}
20379 impl ExtExtendedDynamicState2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20380     pub fn load<F>(mut _f: F) -> Self
20381     where
20382         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20383     {
20384         Self {
20385             cmd_set_patch_control_points_ext: unsafe {
20386                 unsafe extern "system" fn cmd_set_patch_control_points_ext(
20387                     _command_buffer: CommandBuffer,
20388                     _patch_control_points: u32,
20389                 ) {
20390                     panic!(concat!(
20391                         "Unable to load ",
20392                         stringify!(cmd_set_patch_control_points_ext)
20393                     ))
20394                 }
20395                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20396                     b"vkCmdSetPatchControlPointsEXT\0",
20397                 );
20398                 let val = _f(cname);
20399                 if val.is_null() {
20400                     cmd_set_patch_control_points_ext
20401                 } else {
20402                     ::std::mem::transmute(val)
20403                 }
20404             },
20405             cmd_set_rasterizer_discard_enable_ext: unsafe {
20406                 unsafe extern "system" fn cmd_set_rasterizer_discard_enable_ext(
20407                     _command_buffer: CommandBuffer,
20408                     _rasterizer_discard_enable: Bool32,
20409                 ) {
20410                     panic!(concat!(
20411                         "Unable to load ",
20412                         stringify!(cmd_set_rasterizer_discard_enable_ext)
20413                     ))
20414                 }
20415                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20416                     b"vkCmdSetRasterizerDiscardEnableEXT\0",
20417                 );
20418                 let val = _f(cname);
20419                 if val.is_null() {
20420                     cmd_set_rasterizer_discard_enable_ext
20421                 } else {
20422                     ::std::mem::transmute(val)
20423                 }
20424             },
20425             cmd_set_depth_bias_enable_ext: unsafe {
20426                 unsafe extern "system" fn cmd_set_depth_bias_enable_ext(
20427                     _command_buffer: CommandBuffer,
20428                     _depth_bias_enable: Bool32,
20429                 ) {
20430                     panic!(concat!(
20431                         "Unable to load ",
20432                         stringify!(cmd_set_depth_bias_enable_ext)
20433                     ))
20434                 }
20435                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20436                     b"vkCmdSetDepthBiasEnableEXT\0",
20437                 );
20438                 let val = _f(cname);
20439                 if val.is_null() {
20440                     cmd_set_depth_bias_enable_ext
20441                 } else {
20442                     ::std::mem::transmute(val)
20443                 }
20444             },
20445             cmd_set_logic_op_ext: unsafe {
20446                 unsafe extern "system" fn cmd_set_logic_op_ext(
20447                     _command_buffer: CommandBuffer,
20448                     _logic_op: LogicOp,
20449                 ) {
20450                     panic!(concat!("Unable to load ", stringify!(cmd_set_logic_op_ext)))
20451                 }
20452                 let cname =
20453                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLogicOpEXT\0");
20454                 let val = _f(cname);
20455                 if val.is_null() {
20456                     cmd_set_logic_op_ext
20457                 } else {
20458                     ::std::mem::transmute(val)
20459                 }
20460             },
20461             cmd_set_primitive_restart_enable_ext: unsafe {
20462                 unsafe extern "system" fn cmd_set_primitive_restart_enable_ext(
20463                     _command_buffer: CommandBuffer,
20464                     _primitive_restart_enable: Bool32,
20465                 ) {
20466                     panic!(concat!(
20467                         "Unable to load ",
20468                         stringify!(cmd_set_primitive_restart_enable_ext)
20469                     ))
20470                 }
20471                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20472                     b"vkCmdSetPrimitiveRestartEnableEXT\0",
20473                 );
20474                 let val = _f(cname);
20475                 if val.is_null() {
20476                     cmd_set_primitive_restart_enable_ext
20477                 } else {
20478                     ::std::mem::transmute(val)
20479                 }
20480             },
20481         }
20482     }
20483 }
20484 #[doc = "Generated from 'VK_EXT_extended_dynamic_state2'"]
20485 impl DynamicState {
20486     #[doc = "Not promoted to 1.3"]
20487     pub const PATCH_CONTROL_POINTS_EXT: Self = Self(1_000_377_000);
20488     pub const RASTERIZER_DISCARD_ENABLE_EXT: Self = Self::RASTERIZER_DISCARD_ENABLE;
20489     pub const DEPTH_BIAS_ENABLE_EXT: Self = Self::DEPTH_BIAS_ENABLE;
20490     #[doc = "Not promoted to 1.3"]
20491     pub const LOGIC_OP_EXT: Self = Self(1_000_377_003);
20492     pub const PRIMITIVE_RESTART_ENABLE_EXT: Self = Self::PRIMITIVE_RESTART_ENABLE;
20493 }
20494 #[doc = "Generated from 'VK_EXT_extended_dynamic_state2'"]
20495 impl StructureType {
20496     #[doc = "Not promoted to 1.3"]
20497     pub const PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: Self = Self(1_000_377_000);
20498 }
20499 impl QnxScreenSurfaceFn {
20500     #[inline]
name() -> &'static ::std::ffi::CStr20501     pub const fn name() -> &'static ::std::ffi::CStr {
20502         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QNX_screen_surface\0") }
20503     }
20504     pub const SPEC_VERSION: u32 = 1u32;
20505 }
20506 #[allow(non_camel_case_types)]
20507 pub type PFN_vkCreateScreenSurfaceQNX = unsafe extern "system" fn(
20508     instance: Instance,
20509     p_create_info: *const ScreenSurfaceCreateInfoQNX,
20510     p_allocator: *const AllocationCallbacks,
20511     p_surface: *mut SurfaceKHR,
20512 ) -> Result;
20513 #[allow(non_camel_case_types)]
20514 pub type PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX = unsafe extern "system" fn(
20515     physical_device: PhysicalDevice,
20516     queue_family_index: u32,
20517     window: *mut _screen_window,
20518 ) -> Bool32;
20519 #[derive(Clone)]
20520 pub struct QnxScreenSurfaceFn {
20521     pub create_screen_surface_qnx: PFN_vkCreateScreenSurfaceQNX,
20522     pub get_physical_device_screen_presentation_support_qnx:
20523         PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX,
20524 }
20525 unsafe impl Send for QnxScreenSurfaceFn {}
20526 unsafe impl Sync for QnxScreenSurfaceFn {}
20527 impl QnxScreenSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20528     pub fn load<F>(mut _f: F) -> Self
20529     where
20530         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20531     {
20532         Self {
20533             create_screen_surface_qnx: unsafe {
20534                 unsafe extern "system" fn create_screen_surface_qnx(
20535                     _instance: Instance,
20536                     _p_create_info: *const ScreenSurfaceCreateInfoQNX,
20537                     _p_allocator: *const AllocationCallbacks,
20538                     _p_surface: *mut SurfaceKHR,
20539                 ) -> Result {
20540                     panic!(concat!(
20541                         "Unable to load ",
20542                         stringify!(create_screen_surface_qnx)
20543                     ))
20544                 }
20545                 let cname =
20546                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateScreenSurfaceQNX\0");
20547                 let val = _f(cname);
20548                 if val.is_null() {
20549                     create_screen_surface_qnx
20550                 } else {
20551                     ::std::mem::transmute(val)
20552                 }
20553             },
20554             get_physical_device_screen_presentation_support_qnx: unsafe {
20555                 unsafe extern "system" fn get_physical_device_screen_presentation_support_qnx(
20556                     _physical_device: PhysicalDevice,
20557                     _queue_family_index: u32,
20558                     _window: *mut _screen_window,
20559                 ) -> Bool32 {
20560                     panic!(concat!(
20561                         "Unable to load ",
20562                         stringify!(get_physical_device_screen_presentation_support_qnx)
20563                     ))
20564                 }
20565                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20566                     b"vkGetPhysicalDeviceScreenPresentationSupportQNX\0",
20567                 );
20568                 let val = _f(cname);
20569                 if val.is_null() {
20570                     get_physical_device_screen_presentation_support_qnx
20571                 } else {
20572                     ::std::mem::transmute(val)
20573                 }
20574             },
20575         }
20576     }
20577 }
20578 #[doc = "Generated from 'VK_QNX_screen_surface'"]
20579 impl StructureType {
20580     pub const SCREEN_SURFACE_CREATE_INFO_QNX: Self = Self(1_000_378_000);
20581 }
20582 impl KhrExtension380Fn {
20583     #[inline]
name() -> &'static ::std::ffi::CStr20584     pub const fn name() -> &'static ::std::ffi::CStr {
20585         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_380\0") }
20586     }
20587     pub const SPEC_VERSION: u32 = 0u32;
20588 }
20589 #[derive(Clone)]
20590 pub struct KhrExtension380Fn {}
20591 unsafe impl Send for KhrExtension380Fn {}
20592 unsafe impl Sync for KhrExtension380Fn {}
20593 impl KhrExtension380Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20594     pub fn load<F>(mut _f: F) -> Self
20595     where
20596         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20597     {
20598         Self {}
20599     }
20600 }
20601 impl KhrExtension381Fn {
20602     #[inline]
name() -> &'static ::std::ffi::CStr20603     pub const fn name() -> &'static ::std::ffi::CStr {
20604         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_381\0") }
20605     }
20606     pub const SPEC_VERSION: u32 = 0u32;
20607 }
20608 #[derive(Clone)]
20609 pub struct KhrExtension381Fn {}
20610 unsafe impl Send for KhrExtension381Fn {}
20611 unsafe impl Sync for KhrExtension381Fn {}
20612 impl KhrExtension381Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20613     pub fn load<F>(mut _f: F) -> Self
20614     where
20615         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20616     {
20617         Self {}
20618     }
20619 }
20620 impl ExtColorWriteEnableFn {
20621     #[inline]
name() -> &'static ::std::ffi::CStr20622     pub const fn name() -> &'static ::std::ffi::CStr {
20623         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_color_write_enable\0") }
20624     }
20625     pub const SPEC_VERSION: u32 = 1u32;
20626 }
20627 #[allow(non_camel_case_types)]
20628 pub type PFN_vkCmdSetColorWriteEnableEXT = unsafe extern "system" fn(
20629     command_buffer: CommandBuffer,
20630     attachment_count: u32,
20631     p_color_write_enables: *const Bool32,
20632 );
20633 #[derive(Clone)]
20634 pub struct ExtColorWriteEnableFn {
20635     pub cmd_set_color_write_enable_ext: PFN_vkCmdSetColorWriteEnableEXT,
20636 }
20637 unsafe impl Send for ExtColorWriteEnableFn {}
20638 unsafe impl Sync for ExtColorWriteEnableFn {}
20639 impl ExtColorWriteEnableFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20640     pub fn load<F>(mut _f: F) -> Self
20641     where
20642         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20643     {
20644         Self {
20645             cmd_set_color_write_enable_ext: unsafe {
20646                 unsafe extern "system" fn cmd_set_color_write_enable_ext(
20647                     _command_buffer: CommandBuffer,
20648                     _attachment_count: u32,
20649                     _p_color_write_enables: *const Bool32,
20650                 ) {
20651                     panic!(concat!(
20652                         "Unable to load ",
20653                         stringify!(cmd_set_color_write_enable_ext)
20654                     ))
20655                 }
20656                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20657                     b"vkCmdSetColorWriteEnableEXT\0",
20658                 );
20659                 let val = _f(cname);
20660                 if val.is_null() {
20661                     cmd_set_color_write_enable_ext
20662                 } else {
20663                     ::std::mem::transmute(val)
20664                 }
20665             },
20666         }
20667     }
20668 }
20669 #[doc = "Generated from 'VK_EXT_color_write_enable'"]
20670 impl DynamicState {
20671     pub const COLOR_WRITE_ENABLE_EXT: Self = Self(1_000_381_000);
20672 }
20673 #[doc = "Generated from 'VK_EXT_color_write_enable'"]
20674 impl StructureType {
20675     pub const PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: Self = Self(1_000_381_000);
20676     pub const PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: Self = Self(1_000_381_001);
20677 }
20678 impl ExtPrimitivesGeneratedQueryFn {
20679     #[inline]
name() -> &'static ::std::ffi::CStr20680     pub const fn name() -> &'static ::std::ffi::CStr {
20681         unsafe {
20682             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_primitives_generated_query\0")
20683         }
20684     }
20685     pub const SPEC_VERSION: u32 = 1u32;
20686 }
20687 #[derive(Clone)]
20688 pub struct ExtPrimitivesGeneratedQueryFn {}
20689 unsafe impl Send for ExtPrimitivesGeneratedQueryFn {}
20690 unsafe impl Sync for ExtPrimitivesGeneratedQueryFn {}
20691 impl ExtPrimitivesGeneratedQueryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20692     pub fn load<F>(mut _f: F) -> Self
20693     where
20694         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20695     {
20696         Self {}
20697     }
20698 }
20699 #[doc = "Generated from 'VK_EXT_primitives_generated_query'"]
20700 impl QueryType {
20701     pub const PRIMITIVES_GENERATED_EXT: Self = Self(1_000_382_000);
20702 }
20703 #[doc = "Generated from 'VK_EXT_primitives_generated_query'"]
20704 impl StructureType {
20705     pub const PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT: Self = Self(1_000_382_000);
20706 }
20707 impl ExtExtension384Fn {
20708     #[inline]
name() -> &'static ::std::ffi::CStr20709     pub const fn name() -> &'static ::std::ffi::CStr {
20710         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_384\0") }
20711     }
20712     pub const SPEC_VERSION: u32 = 0u32;
20713 }
20714 #[derive(Clone)]
20715 pub struct ExtExtension384Fn {}
20716 unsafe impl Send for ExtExtension384Fn {}
20717 unsafe impl Sync for ExtExtension384Fn {}
20718 impl ExtExtension384Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20719     pub fn load<F>(mut _f: F) -> Self
20720     where
20721         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20722     {
20723         Self {}
20724     }
20725 }
20726 impl MesaExtension385Fn {
20727     #[inline]
name() -> &'static ::std::ffi::CStr20728     pub const fn name() -> &'static ::std::ffi::CStr {
20729         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_MESA_extension_385\0") }
20730     }
20731     pub const SPEC_VERSION: u32 = 0u32;
20732 }
20733 #[derive(Clone)]
20734 pub struct MesaExtension385Fn {}
20735 unsafe impl Send for MesaExtension385Fn {}
20736 unsafe impl Sync for MesaExtension385Fn {}
20737 impl MesaExtension385Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20738     pub fn load<F>(mut _f: F) -> Self
20739     where
20740         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20741     {
20742         Self {}
20743     }
20744 }
20745 impl GoogleExtension386Fn {
20746     #[inline]
name() -> &'static ::std::ffi::CStr20747     pub const fn name() -> &'static ::std::ffi::CStr {
20748         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_extension_386\0") }
20749     }
20750     pub const SPEC_VERSION: u32 = 0u32;
20751 }
20752 #[derive(Clone)]
20753 pub struct GoogleExtension386Fn {}
20754 unsafe impl Send for GoogleExtension386Fn {}
20755 unsafe impl Sync for GoogleExtension386Fn {}
20756 impl GoogleExtension386Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20757     pub fn load<F>(mut _f: F) -> Self
20758     where
20759         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20760     {
20761         Self {}
20762     }
20763 }
20764 impl KhrRayTracingMaintenance1Fn {
20765     #[inline]
name() -> &'static ::std::ffi::CStr20766     pub const fn name() -> &'static ::std::ffi::CStr {
20767         unsafe {
20768             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_ray_tracing_maintenance1\0")
20769         }
20770     }
20771     pub const SPEC_VERSION: u32 = 1u32;
20772 }
20773 #[allow(non_camel_case_types)]
20774 pub type PFN_vkCmdTraceRaysIndirect2KHR = unsafe extern "system" fn(
20775     command_buffer: CommandBuffer,
20776     indirect_device_address: DeviceAddress,
20777 );
20778 #[derive(Clone)]
20779 pub struct KhrRayTracingMaintenance1Fn {
20780     pub cmd_trace_rays_indirect2_khr: PFN_vkCmdTraceRaysIndirect2KHR,
20781 }
20782 unsafe impl Send for KhrRayTracingMaintenance1Fn {}
20783 unsafe impl Sync for KhrRayTracingMaintenance1Fn {}
20784 impl KhrRayTracingMaintenance1Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20785     pub fn load<F>(mut _f: F) -> Self
20786     where
20787         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20788     {
20789         Self {
20790             cmd_trace_rays_indirect2_khr: unsafe {
20791                 unsafe extern "system" fn cmd_trace_rays_indirect2_khr(
20792                     _command_buffer: CommandBuffer,
20793                     _indirect_device_address: DeviceAddress,
20794                 ) {
20795                     panic!(concat!(
20796                         "Unable to load ",
20797                         stringify!(cmd_trace_rays_indirect2_khr)
20798                     ))
20799                 }
20800                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20801                     b"vkCmdTraceRaysIndirect2KHR\0",
20802                 );
20803                 let val = _f(cname);
20804                 if val.is_null() {
20805                     cmd_trace_rays_indirect2_khr
20806                 } else {
20807                     ::std::mem::transmute(val)
20808                 }
20809             },
20810         }
20811     }
20812 }
20813 #[doc = "Generated from 'VK_KHR_ray_tracing_maintenance1'"]
20814 impl AccessFlags2 {
20815     pub const SHADER_BINDING_TABLE_READ_KHR: Self =
20816         Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
20817 }
20818 #[doc = "Generated from 'VK_KHR_ray_tracing_maintenance1'"]
20819 impl PipelineStageFlags2 {
20820     pub const ACCELERATION_STRUCTURE_COPY_KHR: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000);
20821 }
20822 #[doc = "Generated from 'VK_KHR_ray_tracing_maintenance1'"]
20823 impl QueryType {
20824     pub const ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR: Self =
20825         Self(1_000_386_000);
20826     pub const ACCELERATION_STRUCTURE_SIZE_KHR: Self = Self(1_000_386_001);
20827 }
20828 #[doc = "Generated from 'VK_KHR_ray_tracing_maintenance1'"]
20829 impl StructureType {
20830     pub const PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR: Self = Self(1_000_386_000);
20831 }
20832 impl ExtExtension388Fn {
20833     #[inline]
name() -> &'static ::std::ffi::CStr20834     pub const fn name() -> &'static ::std::ffi::CStr {
20835         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_388\0") }
20836     }
20837     pub const SPEC_VERSION: u32 = 0u32;
20838 }
20839 #[derive(Clone)]
20840 pub struct ExtExtension388Fn {}
20841 unsafe impl Send for ExtExtension388Fn {}
20842 unsafe impl Sync for ExtExtension388Fn {}
20843 impl ExtExtension388Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20844     pub fn load<F>(mut _f: F) -> Self
20845     where
20846         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20847     {
20848         Self {}
20849     }
20850 }
20851 impl ExtGlobalPriorityQueryFn {
20852     #[inline]
name() -> &'static ::std::ffi::CStr20853     pub const fn name() -> &'static ::std::ffi::CStr {
20854         unsafe {
20855             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_global_priority_query\0")
20856         }
20857     }
20858     pub const SPEC_VERSION: u32 = 1u32;
20859 }
20860 #[derive(Clone)]
20861 pub struct ExtGlobalPriorityQueryFn {}
20862 unsafe impl Send for ExtGlobalPriorityQueryFn {}
20863 unsafe impl Sync for ExtGlobalPriorityQueryFn {}
20864 impl ExtGlobalPriorityQueryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20865     pub fn load<F>(mut _f: F) -> Self
20866     where
20867         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20868     {
20869         Self {}
20870     }
20871 }
20872 #[doc = "Generated from 'VK_EXT_global_priority_query'"]
20873 impl StructureType {
20874     pub const PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT: Self =
20875         Self::PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR;
20876     pub const QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT: Self =
20877         Self::QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR;
20878 }
20879 impl ExtExtension390Fn {
20880     #[inline]
name() -> &'static ::std::ffi::CStr20881     pub const fn name() -> &'static ::std::ffi::CStr {
20882         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_390\0") }
20883     }
20884     pub const SPEC_VERSION: u32 = 0u32;
20885 }
20886 #[derive(Clone)]
20887 pub struct ExtExtension390Fn {}
20888 unsafe impl Send for ExtExtension390Fn {}
20889 unsafe impl Sync for ExtExtension390Fn {}
20890 impl ExtExtension390Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20891     pub fn load<F>(mut _f: F) -> Self
20892     where
20893         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20894     {
20895         Self {}
20896     }
20897 }
20898 impl ExtExtension391Fn {
20899     #[inline]
name() -> &'static ::std::ffi::CStr20900     pub const fn name() -> &'static ::std::ffi::CStr {
20901         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_391\0") }
20902     }
20903     pub const SPEC_VERSION: u32 = 0u32;
20904 }
20905 #[derive(Clone)]
20906 pub struct ExtExtension391Fn {}
20907 unsafe impl Send for ExtExtension391Fn {}
20908 unsafe impl Sync for ExtExtension391Fn {}
20909 impl ExtExtension391Fn {
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         Self {}
20915     }
20916 }
20917 impl ExtImageViewMinLodFn {
20918     #[inline]
name() -> &'static ::std::ffi::CStr20919     pub const fn name() -> &'static ::std::ffi::CStr {
20920         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_view_min_lod\0") }
20921     }
20922     pub const SPEC_VERSION: u32 = 1u32;
20923 }
20924 #[derive(Clone)]
20925 pub struct ExtImageViewMinLodFn {}
20926 unsafe impl Send for ExtImageViewMinLodFn {}
20927 unsafe impl Sync for ExtImageViewMinLodFn {}
20928 impl ExtImageViewMinLodFn {
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         Self {}
20934     }
20935 }
20936 #[doc = "Generated from 'VK_EXT_image_view_min_lod'"]
20937 impl StructureType {
20938     pub const PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT: Self = Self(1_000_391_000);
20939     pub const IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT: Self = Self(1_000_391_001);
20940 }
20941 impl ExtMultiDrawFn {
20942     #[inline]
name() -> &'static ::std::ffi::CStr20943     pub const fn name() -> &'static ::std::ffi::CStr {
20944         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_multi_draw\0") }
20945     }
20946     pub const SPEC_VERSION: u32 = 1u32;
20947 }
20948 #[allow(non_camel_case_types)]
20949 pub type PFN_vkCmdDrawMultiEXT = unsafe extern "system" fn(
20950     command_buffer: CommandBuffer,
20951     draw_count: u32,
20952     p_vertex_info: *const MultiDrawInfoEXT,
20953     instance_count: u32,
20954     first_instance: u32,
20955     stride: u32,
20956 );
20957 #[allow(non_camel_case_types)]
20958 pub type PFN_vkCmdDrawMultiIndexedEXT = unsafe extern "system" fn(
20959     command_buffer: CommandBuffer,
20960     draw_count: u32,
20961     p_index_info: *const MultiDrawIndexedInfoEXT,
20962     instance_count: u32,
20963     first_instance: u32,
20964     stride: u32,
20965     p_vertex_offset: *const i32,
20966 );
20967 #[derive(Clone)]
20968 pub struct ExtMultiDrawFn {
20969     pub cmd_draw_multi_ext: PFN_vkCmdDrawMultiEXT,
20970     pub cmd_draw_multi_indexed_ext: PFN_vkCmdDrawMultiIndexedEXT,
20971 }
20972 unsafe impl Send for ExtMultiDrawFn {}
20973 unsafe impl Sync for ExtMultiDrawFn {}
20974 impl ExtMultiDrawFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20975     pub fn load<F>(mut _f: F) -> Self
20976     where
20977         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20978     {
20979         Self {
20980             cmd_draw_multi_ext: unsafe {
20981                 unsafe extern "system" fn cmd_draw_multi_ext(
20982                     _command_buffer: CommandBuffer,
20983                     _draw_count: u32,
20984                     _p_vertex_info: *const MultiDrawInfoEXT,
20985                     _instance_count: u32,
20986                     _first_instance: u32,
20987                     _stride: u32,
20988                 ) {
20989                     panic!(concat!("Unable to load ", stringify!(cmd_draw_multi_ext)))
20990                 }
20991                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMultiEXT\0");
20992                 let val = _f(cname);
20993                 if val.is_null() {
20994                     cmd_draw_multi_ext
20995                 } else {
20996                     ::std::mem::transmute(val)
20997                 }
20998             },
20999             cmd_draw_multi_indexed_ext: unsafe {
21000                 unsafe extern "system" fn cmd_draw_multi_indexed_ext(
21001                     _command_buffer: CommandBuffer,
21002                     _draw_count: u32,
21003                     _p_index_info: *const MultiDrawIndexedInfoEXT,
21004                     _instance_count: u32,
21005                     _first_instance: u32,
21006                     _stride: u32,
21007                     _p_vertex_offset: *const i32,
21008                 ) {
21009                     panic!(concat!(
21010                         "Unable to load ",
21011                         stringify!(cmd_draw_multi_indexed_ext)
21012                     ))
21013                 }
21014                 let cname =
21015                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMultiIndexedEXT\0");
21016                 let val = _f(cname);
21017                 if val.is_null() {
21018                     cmd_draw_multi_indexed_ext
21019                 } else {
21020                     ::std::mem::transmute(val)
21021                 }
21022             },
21023         }
21024     }
21025 }
21026 #[doc = "Generated from 'VK_EXT_multi_draw'"]
21027 impl StructureType {
21028     pub const PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT: Self = Self(1_000_392_000);
21029     pub const PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT: Self = Self(1_000_392_001);
21030 }
21031 impl ExtImage2dViewOf3dFn {
21032     #[inline]
name() -> &'static ::std::ffi::CStr21033     pub const fn name() -> &'static ::std::ffi::CStr {
21034         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_2d_view_of_3d\0") }
21035     }
21036     pub const SPEC_VERSION: u32 = 1u32;
21037 }
21038 #[derive(Clone)]
21039 pub struct ExtImage2dViewOf3dFn {}
21040 unsafe impl Send for ExtImage2dViewOf3dFn {}
21041 unsafe impl Sync for ExtImage2dViewOf3dFn {}
21042 impl ExtImage2dViewOf3dFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21043     pub fn load<F>(mut _f: F) -> Self
21044     where
21045         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21046     {
21047         Self {}
21048     }
21049 }
21050 #[doc = "Generated from 'VK_EXT_image_2d_view_of_3d'"]
21051 impl ImageCreateFlags {
21052     #[doc = "Image is created with a layout where individual slices are capable of being used as 2D images"]
21053     pub const TYPE_2D_VIEW_COMPATIBLE_EXT: Self = Self(0b10_0000_0000_0000_0000);
21054 }
21055 #[doc = "Generated from 'VK_EXT_image_2d_view_of_3d'"]
21056 impl StructureType {
21057     pub const PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT: Self = Self(1_000_393_000);
21058 }
21059 impl KhrPortabilityEnumerationFn {
21060     #[inline]
name() -> &'static ::std::ffi::CStr21061     pub const fn name() -> &'static ::std::ffi::CStr {
21062         unsafe {
21063             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_portability_enumeration\0")
21064         }
21065     }
21066     pub const SPEC_VERSION: u32 = 1u32;
21067 }
21068 #[derive(Clone)]
21069 pub struct KhrPortabilityEnumerationFn {}
21070 unsafe impl Send for KhrPortabilityEnumerationFn {}
21071 unsafe impl Sync for KhrPortabilityEnumerationFn {}
21072 impl KhrPortabilityEnumerationFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21073     pub fn load<F>(mut _f: F) -> Self
21074     where
21075         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21076     {
21077         Self {}
21078     }
21079 }
21080 #[doc = "Generated from 'VK_KHR_portability_enumeration'"]
21081 impl InstanceCreateFlags {
21082     pub const ENUMERATE_PORTABILITY_KHR: Self = Self(0b1);
21083 }
21084 impl ExtShaderTileImageFn {
21085     #[inline]
name() -> &'static ::std::ffi::CStr21086     pub const fn name() -> &'static ::std::ffi::CStr {
21087         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_tile_image\0") }
21088     }
21089     pub const SPEC_VERSION: u32 = 1u32;
21090 }
21091 #[derive(Clone)]
21092 pub struct ExtShaderTileImageFn {}
21093 unsafe impl Send for ExtShaderTileImageFn {}
21094 unsafe impl Sync for ExtShaderTileImageFn {}
21095 impl ExtShaderTileImageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21096     pub fn load<F>(mut _f: F) -> Self
21097     where
21098         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21099     {
21100         Self {}
21101     }
21102 }
21103 #[doc = "Generated from 'VK_EXT_shader_tile_image'"]
21104 impl StructureType {
21105     pub const PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT: Self = Self(1_000_395_000);
21106     pub const PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT: Self = Self(1_000_395_001);
21107 }
21108 impl ExtOpacityMicromapFn {
21109     #[inline]
name() -> &'static ::std::ffi::CStr21110     pub const fn name() -> &'static ::std::ffi::CStr {
21111         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_opacity_micromap\0") }
21112     }
21113     pub const SPEC_VERSION: u32 = 2u32;
21114 }
21115 #[allow(non_camel_case_types)]
21116 pub type PFN_vkCreateMicromapEXT = unsafe extern "system" fn(
21117     device: Device,
21118     p_create_info: *const MicromapCreateInfoEXT,
21119     p_allocator: *const AllocationCallbacks,
21120     p_micromap: *mut MicromapEXT,
21121 ) -> Result;
21122 #[allow(non_camel_case_types)]
21123 pub type PFN_vkDestroyMicromapEXT = unsafe extern "system" fn(
21124     device: Device,
21125     micromap: MicromapEXT,
21126     p_allocator: *const AllocationCallbacks,
21127 );
21128 #[allow(non_camel_case_types)]
21129 pub type PFN_vkCmdBuildMicromapsEXT = unsafe extern "system" fn(
21130     command_buffer: CommandBuffer,
21131     info_count: u32,
21132     p_infos: *const MicromapBuildInfoEXT,
21133 );
21134 #[allow(non_camel_case_types)]
21135 pub type PFN_vkBuildMicromapsEXT = unsafe extern "system" fn(
21136     device: Device,
21137     deferred_operation: DeferredOperationKHR,
21138     info_count: u32,
21139     p_infos: *const MicromapBuildInfoEXT,
21140 ) -> Result;
21141 #[allow(non_camel_case_types)]
21142 pub type PFN_vkCopyMicromapEXT = unsafe extern "system" fn(
21143     device: Device,
21144     deferred_operation: DeferredOperationKHR,
21145     p_info: *const CopyMicromapInfoEXT,
21146 ) -> Result;
21147 #[allow(non_camel_case_types)]
21148 pub type PFN_vkCopyMicromapToMemoryEXT = unsafe extern "system" fn(
21149     device: Device,
21150     deferred_operation: DeferredOperationKHR,
21151     p_info: *const CopyMicromapToMemoryInfoEXT,
21152 ) -> Result;
21153 #[allow(non_camel_case_types)]
21154 pub type PFN_vkCopyMemoryToMicromapEXT = unsafe extern "system" fn(
21155     device: Device,
21156     deferred_operation: DeferredOperationKHR,
21157     p_info: *const CopyMemoryToMicromapInfoEXT,
21158 ) -> Result;
21159 #[allow(non_camel_case_types)]
21160 pub type PFN_vkWriteMicromapsPropertiesEXT = unsafe extern "system" fn(
21161     device: Device,
21162     micromap_count: u32,
21163     p_micromaps: *const MicromapEXT,
21164     query_type: QueryType,
21165     data_size: usize,
21166     p_data: *mut c_void,
21167     stride: usize,
21168 ) -> Result;
21169 #[allow(non_camel_case_types)]
21170 pub type PFN_vkCmdCopyMicromapEXT =
21171     unsafe extern "system" fn(command_buffer: CommandBuffer, p_info: *const CopyMicromapInfoEXT);
21172 #[allow(non_camel_case_types)]
21173 pub type PFN_vkCmdCopyMicromapToMemoryEXT = unsafe extern "system" fn(
21174     command_buffer: CommandBuffer,
21175     p_info: *const CopyMicromapToMemoryInfoEXT,
21176 );
21177 #[allow(non_camel_case_types)]
21178 pub type PFN_vkCmdCopyMemoryToMicromapEXT = unsafe extern "system" fn(
21179     command_buffer: CommandBuffer,
21180     p_info: *const CopyMemoryToMicromapInfoEXT,
21181 );
21182 #[allow(non_camel_case_types)]
21183 pub type PFN_vkCmdWriteMicromapsPropertiesEXT = unsafe extern "system" fn(
21184     command_buffer: CommandBuffer,
21185     micromap_count: u32,
21186     p_micromaps: *const MicromapEXT,
21187     query_type: QueryType,
21188     query_pool: QueryPool,
21189     first_query: u32,
21190 );
21191 #[allow(non_camel_case_types)]
21192 pub type PFN_vkGetDeviceMicromapCompatibilityEXT = unsafe extern "system" fn(
21193     device: Device,
21194     p_version_info: *const MicromapVersionInfoEXT,
21195     p_compatibility: *mut AccelerationStructureCompatibilityKHR,
21196 );
21197 #[allow(non_camel_case_types)]
21198 pub type PFN_vkGetMicromapBuildSizesEXT = unsafe extern "system" fn(
21199     device: Device,
21200     build_type: AccelerationStructureBuildTypeKHR,
21201     p_build_info: *const MicromapBuildInfoEXT,
21202     p_size_info: *mut MicromapBuildSizesInfoEXT,
21203 );
21204 #[derive(Clone)]
21205 pub struct ExtOpacityMicromapFn {
21206     pub create_micromap_ext: PFN_vkCreateMicromapEXT,
21207     pub destroy_micromap_ext: PFN_vkDestroyMicromapEXT,
21208     pub cmd_build_micromaps_ext: PFN_vkCmdBuildMicromapsEXT,
21209     pub build_micromaps_ext: PFN_vkBuildMicromapsEXT,
21210     pub copy_micromap_ext: PFN_vkCopyMicromapEXT,
21211     pub copy_micromap_to_memory_ext: PFN_vkCopyMicromapToMemoryEXT,
21212     pub copy_memory_to_micromap_ext: PFN_vkCopyMemoryToMicromapEXT,
21213     pub write_micromaps_properties_ext: PFN_vkWriteMicromapsPropertiesEXT,
21214     pub cmd_copy_micromap_ext: PFN_vkCmdCopyMicromapEXT,
21215     pub cmd_copy_micromap_to_memory_ext: PFN_vkCmdCopyMicromapToMemoryEXT,
21216     pub cmd_copy_memory_to_micromap_ext: PFN_vkCmdCopyMemoryToMicromapEXT,
21217     pub cmd_write_micromaps_properties_ext: PFN_vkCmdWriteMicromapsPropertiesEXT,
21218     pub get_device_micromap_compatibility_ext: PFN_vkGetDeviceMicromapCompatibilityEXT,
21219     pub get_micromap_build_sizes_ext: PFN_vkGetMicromapBuildSizesEXT,
21220 }
21221 unsafe impl Send for ExtOpacityMicromapFn {}
21222 unsafe impl Sync for ExtOpacityMicromapFn {}
21223 impl ExtOpacityMicromapFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21224     pub fn load<F>(mut _f: F) -> Self
21225     where
21226         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21227     {
21228         Self {
21229             create_micromap_ext: unsafe {
21230                 unsafe extern "system" fn create_micromap_ext(
21231                     _device: Device,
21232                     _p_create_info: *const MicromapCreateInfoEXT,
21233                     _p_allocator: *const AllocationCallbacks,
21234                     _p_micromap: *mut MicromapEXT,
21235                 ) -> Result {
21236                     panic!(concat!("Unable to load ", stringify!(create_micromap_ext)))
21237                 }
21238                 let cname =
21239                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateMicromapEXT\0");
21240                 let val = _f(cname);
21241                 if val.is_null() {
21242                     create_micromap_ext
21243                 } else {
21244                     ::std::mem::transmute(val)
21245                 }
21246             },
21247             destroy_micromap_ext: unsafe {
21248                 unsafe extern "system" fn destroy_micromap_ext(
21249                     _device: Device,
21250                     _micromap: MicromapEXT,
21251                     _p_allocator: *const AllocationCallbacks,
21252                 ) {
21253                     panic!(concat!("Unable to load ", stringify!(destroy_micromap_ext)))
21254                 }
21255                 let cname =
21256                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroyMicromapEXT\0");
21257                 let val = _f(cname);
21258                 if val.is_null() {
21259                     destroy_micromap_ext
21260                 } else {
21261                     ::std::mem::transmute(val)
21262                 }
21263             },
21264             cmd_build_micromaps_ext: unsafe {
21265                 unsafe extern "system" fn cmd_build_micromaps_ext(
21266                     _command_buffer: CommandBuffer,
21267                     _info_count: u32,
21268                     _p_infos: *const MicromapBuildInfoEXT,
21269                 ) {
21270                     panic!(concat!(
21271                         "Unable to load ",
21272                         stringify!(cmd_build_micromaps_ext)
21273                     ))
21274                 }
21275                 let cname =
21276                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdBuildMicromapsEXT\0");
21277                 let val = _f(cname);
21278                 if val.is_null() {
21279                     cmd_build_micromaps_ext
21280                 } else {
21281                     ::std::mem::transmute(val)
21282                 }
21283             },
21284             build_micromaps_ext: unsafe {
21285                 unsafe extern "system" fn build_micromaps_ext(
21286                     _device: Device,
21287                     _deferred_operation: DeferredOperationKHR,
21288                     _info_count: u32,
21289                     _p_infos: *const MicromapBuildInfoEXT,
21290                 ) -> Result {
21291                     panic!(concat!("Unable to load ", stringify!(build_micromaps_ext)))
21292                 }
21293                 let cname =
21294                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkBuildMicromapsEXT\0");
21295                 let val = _f(cname);
21296                 if val.is_null() {
21297                     build_micromaps_ext
21298                 } else {
21299                     ::std::mem::transmute(val)
21300                 }
21301             },
21302             copy_micromap_ext: unsafe {
21303                 unsafe extern "system" fn copy_micromap_ext(
21304                     _device: Device,
21305                     _deferred_operation: DeferredOperationKHR,
21306                     _p_info: *const CopyMicromapInfoEXT,
21307                 ) -> Result {
21308                     panic!(concat!("Unable to load ", stringify!(copy_micromap_ext)))
21309                 }
21310                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCopyMicromapEXT\0");
21311                 let val = _f(cname);
21312                 if val.is_null() {
21313                     copy_micromap_ext
21314                 } else {
21315                     ::std::mem::transmute(val)
21316                 }
21317             },
21318             copy_micromap_to_memory_ext: unsafe {
21319                 unsafe extern "system" fn copy_micromap_to_memory_ext(
21320                     _device: Device,
21321                     _deferred_operation: DeferredOperationKHR,
21322                     _p_info: *const CopyMicromapToMemoryInfoEXT,
21323                 ) -> Result {
21324                     panic!(concat!(
21325                         "Unable to load ",
21326                         stringify!(copy_micromap_to_memory_ext)
21327                     ))
21328                 }
21329                 let cname =
21330                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCopyMicromapToMemoryEXT\0");
21331                 let val = _f(cname);
21332                 if val.is_null() {
21333                     copy_micromap_to_memory_ext
21334                 } else {
21335                     ::std::mem::transmute(val)
21336                 }
21337             },
21338             copy_memory_to_micromap_ext: unsafe {
21339                 unsafe extern "system" fn copy_memory_to_micromap_ext(
21340                     _device: Device,
21341                     _deferred_operation: DeferredOperationKHR,
21342                     _p_info: *const CopyMemoryToMicromapInfoEXT,
21343                 ) -> Result {
21344                     panic!(concat!(
21345                         "Unable to load ",
21346                         stringify!(copy_memory_to_micromap_ext)
21347                     ))
21348                 }
21349                 let cname =
21350                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCopyMemoryToMicromapEXT\0");
21351                 let val = _f(cname);
21352                 if val.is_null() {
21353                     copy_memory_to_micromap_ext
21354                 } else {
21355                     ::std::mem::transmute(val)
21356                 }
21357             },
21358             write_micromaps_properties_ext: unsafe {
21359                 unsafe extern "system" fn write_micromaps_properties_ext(
21360                     _device: Device,
21361                     _micromap_count: u32,
21362                     _p_micromaps: *const MicromapEXT,
21363                     _query_type: QueryType,
21364                     _data_size: usize,
21365                     _p_data: *mut c_void,
21366                     _stride: usize,
21367                 ) -> Result {
21368                     panic!(concat!(
21369                         "Unable to load ",
21370                         stringify!(write_micromaps_properties_ext)
21371                     ))
21372                 }
21373                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
21374                     b"vkWriteMicromapsPropertiesEXT\0",
21375                 );
21376                 let val = _f(cname);
21377                 if val.is_null() {
21378                     write_micromaps_properties_ext
21379                 } else {
21380                     ::std::mem::transmute(val)
21381                 }
21382             },
21383             cmd_copy_micromap_ext: unsafe {
21384                 unsafe extern "system" fn cmd_copy_micromap_ext(
21385                     _command_buffer: CommandBuffer,
21386                     _p_info: *const CopyMicromapInfoEXT,
21387                 ) {
21388                     panic!(concat!(
21389                         "Unable to load ",
21390                         stringify!(cmd_copy_micromap_ext)
21391                     ))
21392                 }
21393                 let cname =
21394                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyMicromapEXT\0");
21395                 let val = _f(cname);
21396                 if val.is_null() {
21397                     cmd_copy_micromap_ext
21398                 } else {
21399                     ::std::mem::transmute(val)
21400                 }
21401             },
21402             cmd_copy_micromap_to_memory_ext: unsafe {
21403                 unsafe extern "system" fn cmd_copy_micromap_to_memory_ext(
21404                     _command_buffer: CommandBuffer,
21405                     _p_info: *const CopyMicromapToMemoryInfoEXT,
21406                 ) {
21407                     panic!(concat!(
21408                         "Unable to load ",
21409                         stringify!(cmd_copy_micromap_to_memory_ext)
21410                     ))
21411                 }
21412                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
21413                     b"vkCmdCopyMicromapToMemoryEXT\0",
21414                 );
21415                 let val = _f(cname);
21416                 if val.is_null() {
21417                     cmd_copy_micromap_to_memory_ext
21418                 } else {
21419                     ::std::mem::transmute(val)
21420                 }
21421             },
21422             cmd_copy_memory_to_micromap_ext: unsafe {
21423                 unsafe extern "system" fn cmd_copy_memory_to_micromap_ext(
21424                     _command_buffer: CommandBuffer,
21425                     _p_info: *const CopyMemoryToMicromapInfoEXT,
21426                 ) {
21427                     panic!(concat!(
21428                         "Unable to load ",
21429                         stringify!(cmd_copy_memory_to_micromap_ext)
21430                     ))
21431                 }
21432                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
21433                     b"vkCmdCopyMemoryToMicromapEXT\0",
21434                 );
21435                 let val = _f(cname);
21436                 if val.is_null() {
21437                     cmd_copy_memory_to_micromap_ext
21438                 } else {
21439                     ::std::mem::transmute(val)
21440                 }
21441             },
21442             cmd_write_micromaps_properties_ext: unsafe {
21443                 unsafe extern "system" fn cmd_write_micromaps_properties_ext(
21444                     _command_buffer: CommandBuffer,
21445                     _micromap_count: u32,
21446                     _p_micromaps: *const MicromapEXT,
21447                     _query_type: QueryType,
21448                     _query_pool: QueryPool,
21449                     _first_query: u32,
21450                 ) {
21451                     panic!(concat!(
21452                         "Unable to load ",
21453                         stringify!(cmd_write_micromaps_properties_ext)
21454                     ))
21455                 }
21456                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
21457                     b"vkCmdWriteMicromapsPropertiesEXT\0",
21458                 );
21459                 let val = _f(cname);
21460                 if val.is_null() {
21461                     cmd_write_micromaps_properties_ext
21462                 } else {
21463                     ::std::mem::transmute(val)
21464                 }
21465             },
21466             get_device_micromap_compatibility_ext: unsafe {
21467                 unsafe extern "system" fn get_device_micromap_compatibility_ext(
21468                     _device: Device,
21469                     _p_version_info: *const MicromapVersionInfoEXT,
21470                     _p_compatibility: *mut AccelerationStructureCompatibilityKHR,
21471                 ) {
21472                     panic!(concat!(
21473                         "Unable to load ",
21474                         stringify!(get_device_micromap_compatibility_ext)
21475                     ))
21476                 }
21477                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
21478                     b"vkGetDeviceMicromapCompatibilityEXT\0",
21479                 );
21480                 let val = _f(cname);
21481                 if val.is_null() {
21482                     get_device_micromap_compatibility_ext
21483                 } else {
21484                     ::std::mem::transmute(val)
21485                 }
21486             },
21487             get_micromap_build_sizes_ext: unsafe {
21488                 unsafe extern "system" fn get_micromap_build_sizes_ext(
21489                     _device: Device,
21490                     _build_type: AccelerationStructureBuildTypeKHR,
21491                     _p_build_info: *const MicromapBuildInfoEXT,
21492                     _p_size_info: *mut MicromapBuildSizesInfoEXT,
21493                 ) {
21494                     panic!(concat!(
21495                         "Unable to load ",
21496                         stringify!(get_micromap_build_sizes_ext)
21497                     ))
21498                 }
21499                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
21500                     b"vkGetMicromapBuildSizesEXT\0",
21501                 );
21502                 let val = _f(cname);
21503                 if val.is_null() {
21504                     get_micromap_build_sizes_ext
21505                 } else {
21506                     ::std::mem::transmute(val)
21507                 }
21508             },
21509         }
21510     }
21511 }
21512 #[doc = "Generated from 'VK_EXT_opacity_micromap'"]
21513 impl AccessFlags2 {
21514     pub const MICROMAP_READ_EXT: Self =
21515         Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
21516     pub const MICROMAP_WRITE_EXT: Self =
21517         Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
21518 }
21519 #[doc = "Generated from 'VK_EXT_opacity_micromap'"]
21520 impl BufferUsageFlags {
21521     pub const MICROMAP_BUILD_INPUT_READ_ONLY_EXT: Self = Self(0b1000_0000_0000_0000_0000_0000);
21522     pub const MICROMAP_STORAGE_EXT: Self = Self(0b1_0000_0000_0000_0000_0000_0000);
21523 }
21524 #[doc = "Generated from 'VK_EXT_opacity_micromap'"]
21525 impl BuildAccelerationStructureFlagsKHR {
21526     pub const ALLOW_OPACITY_MICROMAP_UPDATE_EXT: Self = Self(0b100_0000);
21527     pub const ALLOW_DISABLE_OPACITY_MICROMAPS_EXT: Self = Self(0b1000_0000);
21528     pub const ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT: Self = Self(0b1_0000_0000);
21529 }
21530 #[doc = "Generated from 'VK_EXT_opacity_micromap'"]
21531 impl GeometryInstanceFlagsKHR {
21532     pub const FORCE_OPACITY_MICROMAP_2_STATE_EXT: Self = Self(0b1_0000);
21533     pub const DISABLE_OPACITY_MICROMAPS_EXT: Self = Self(0b10_0000);
21534 }
21535 #[doc = "Generated from 'VK_EXT_opacity_micromap'"]
21536 impl ObjectType {
21537     pub const MICROMAP_EXT: Self = Self(1_000_396_000);
21538 }
21539 #[doc = "Generated from 'VK_EXT_opacity_micromap'"]
21540 impl PipelineCreateFlags {
21541     pub const RAY_TRACING_OPACITY_MICROMAP_EXT: Self = Self(0b1_0000_0000_0000_0000_0000_0000);
21542 }
21543 #[doc = "Generated from 'VK_EXT_opacity_micromap'"]
21544 impl PipelineStageFlags2 {
21545     pub const MICROMAP_BUILD_EXT: Self = Self(0b100_0000_0000_0000_0000_0000_0000_0000);
21546 }
21547 #[doc = "Generated from 'VK_EXT_opacity_micromap'"]
21548 impl QueryType {
21549     pub const MICROMAP_SERIALIZATION_SIZE_EXT: Self = Self(1_000_396_000);
21550     pub const MICROMAP_COMPACTED_SIZE_EXT: Self = Self(1_000_396_001);
21551 }
21552 #[doc = "Generated from 'VK_EXT_opacity_micromap'"]
21553 impl StructureType {
21554     pub const MICROMAP_BUILD_INFO_EXT: Self = Self(1_000_396_000);
21555     pub const MICROMAP_VERSION_INFO_EXT: Self = Self(1_000_396_001);
21556     pub const COPY_MICROMAP_INFO_EXT: Self = Self(1_000_396_002);
21557     pub const COPY_MICROMAP_TO_MEMORY_INFO_EXT: Self = Self(1_000_396_003);
21558     pub const COPY_MEMORY_TO_MICROMAP_INFO_EXT: Self = Self(1_000_396_004);
21559     pub const PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT: Self = Self(1_000_396_005);
21560     pub const PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT: Self = Self(1_000_396_006);
21561     pub const MICROMAP_CREATE_INFO_EXT: Self = Self(1_000_396_007);
21562     pub const MICROMAP_BUILD_SIZES_INFO_EXT: Self = Self(1_000_396_008);
21563     pub const ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT: Self = Self(1_000_396_009);
21564 }
21565 impl NvDisplacementMicromapFn {
21566     #[inline]
name() -> &'static ::std::ffi::CStr21567     pub const fn name() -> &'static ::std::ffi::CStr {
21568         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_displacement_micromap\0") }
21569     }
21570     pub const SPEC_VERSION: u32 = 1u32;
21571 }
21572 #[derive(Clone)]
21573 pub struct NvDisplacementMicromapFn {}
21574 unsafe impl Send for NvDisplacementMicromapFn {}
21575 unsafe impl Sync for NvDisplacementMicromapFn {}
21576 impl NvDisplacementMicromapFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21577     pub fn load<F>(mut _f: F) -> Self
21578     where
21579         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21580     {
21581         Self {}
21582     }
21583 }
21584 #[doc = "Generated from 'VK_NV_displacement_micromap'"]
21585 impl BuildAccelerationStructureFlagsKHR {
21586     pub const ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV: Self = Self(0b10_0000_0000);
21587 }
21588 #[doc = "Generated from 'VK_NV_displacement_micromap'"]
21589 impl MicromapTypeEXT {
21590     pub const DISPLACEMENT_MICROMAP_NV: Self = Self(1_000_397_000);
21591 }
21592 #[doc = "Generated from 'VK_NV_displacement_micromap'"]
21593 impl PipelineCreateFlags {
21594     pub const RAY_TRACING_DISPLACEMENT_MICROMAP_NV: Self =
21595         Self(0b1_0000_0000_0000_0000_0000_0000_0000);
21596 }
21597 #[doc = "Generated from 'VK_NV_displacement_micromap'"]
21598 impl StructureType {
21599     pub const PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV: Self = Self(1_000_397_000);
21600     pub const PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV: Self = Self(1_000_397_001);
21601     pub const ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV: Self = Self(1_000_397_002);
21602 }
21603 impl JuiceExtension399Fn {
21604     #[inline]
name() -> &'static ::std::ffi::CStr21605     pub const fn name() -> &'static ::std::ffi::CStr {
21606         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_JUICE_extension_399\0") }
21607     }
21608     pub const SPEC_VERSION: u32 = 0u32;
21609 }
21610 #[derive(Clone)]
21611 pub struct JuiceExtension399Fn {}
21612 unsafe impl Send for JuiceExtension399Fn {}
21613 unsafe impl Sync for JuiceExtension399Fn {}
21614 impl JuiceExtension399Fn {
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         Self {}
21620     }
21621 }
21622 impl JuiceExtension400Fn {
21623     #[inline]
name() -> &'static ::std::ffi::CStr21624     pub const fn name() -> &'static ::std::ffi::CStr {
21625         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_JUICE_extension_400\0") }
21626     }
21627     pub const SPEC_VERSION: u32 = 0u32;
21628 }
21629 #[derive(Clone)]
21630 pub struct JuiceExtension400Fn {}
21631 unsafe impl Send for JuiceExtension400Fn {}
21632 unsafe impl Sync for JuiceExtension400Fn {}
21633 impl JuiceExtension400Fn {
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         Self {}
21639     }
21640 }
21641 impl ExtLoadStoreOpNoneFn {
21642     #[inline]
name() -> &'static ::std::ffi::CStr21643     pub const fn name() -> &'static ::std::ffi::CStr {
21644         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_load_store_op_none\0") }
21645     }
21646     pub const SPEC_VERSION: u32 = 1u32;
21647 }
21648 #[derive(Clone)]
21649 pub struct ExtLoadStoreOpNoneFn {}
21650 unsafe impl Send for ExtLoadStoreOpNoneFn {}
21651 unsafe impl Sync for ExtLoadStoreOpNoneFn {}
21652 impl ExtLoadStoreOpNoneFn {
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         Self {}
21658     }
21659 }
21660 #[doc = "Generated from 'VK_EXT_load_store_op_none'"]
21661 impl AttachmentLoadOp {
21662     pub const NONE_EXT: Self = Self(1_000_400_000);
21663 }
21664 #[doc = "Generated from 'VK_EXT_load_store_op_none'"]
21665 impl AttachmentStoreOp {
21666     pub const NONE_EXT: Self = Self::NONE;
21667 }
21668 impl FbExtension402Fn {
21669     #[inline]
name() -> &'static ::std::ffi::CStr21670     pub const fn name() -> &'static ::std::ffi::CStr {
21671         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_FB_extension_402\0") }
21672     }
21673     pub const SPEC_VERSION: u32 = 0u32;
21674 }
21675 #[derive(Clone)]
21676 pub struct FbExtension402Fn {}
21677 unsafe impl Send for FbExtension402Fn {}
21678 unsafe impl Sync for FbExtension402Fn {}
21679 impl FbExtension402Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21680     pub fn load<F>(mut _f: F) -> Self
21681     where
21682         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21683     {
21684         Self {}
21685     }
21686 }
21687 impl FbExtension403Fn {
21688     #[inline]
name() -> &'static ::std::ffi::CStr21689     pub const fn name() -> &'static ::std::ffi::CStr {
21690         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_FB_extension_403\0") }
21691     }
21692     pub const SPEC_VERSION: u32 = 0u32;
21693 }
21694 #[derive(Clone)]
21695 pub struct FbExtension403Fn {}
21696 unsafe impl Send for FbExtension403Fn {}
21697 unsafe impl Sync for FbExtension403Fn {}
21698 impl FbExtension403Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21699     pub fn load<F>(mut _f: F) -> Self
21700     where
21701         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21702     {
21703         Self {}
21704     }
21705 }
21706 impl FbExtension404Fn {
21707     #[inline]
name() -> &'static ::std::ffi::CStr21708     pub const fn name() -> &'static ::std::ffi::CStr {
21709         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_FB_extension_404\0") }
21710     }
21711     pub const SPEC_VERSION: u32 = 0u32;
21712 }
21713 #[derive(Clone)]
21714 pub struct FbExtension404Fn {}
21715 unsafe impl Send for FbExtension404Fn {}
21716 unsafe impl Sync for FbExtension404Fn {}
21717 impl FbExtension404Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21718     pub fn load<F>(mut _f: F) -> Self
21719     where
21720         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21721     {
21722         Self {}
21723     }
21724 }
21725 impl HuaweiClusterCullingShaderFn {
21726     #[inline]
name() -> &'static ::std::ffi::CStr21727     pub const fn name() -> &'static ::std::ffi::CStr {
21728         unsafe {
21729             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_HUAWEI_cluster_culling_shader\0")
21730         }
21731     }
21732     pub const SPEC_VERSION: u32 = 2u32;
21733 }
21734 #[allow(non_camel_case_types)]
21735 pub type PFN_vkCmdDrawClusterHUAWEI = unsafe extern "system" fn(
21736     command_buffer: CommandBuffer,
21737     group_count_x: u32,
21738     group_count_y: u32,
21739     group_count_z: u32,
21740 );
21741 #[allow(non_camel_case_types)]
21742 pub type PFN_vkCmdDrawClusterIndirectHUAWEI =
21743     unsafe extern "system" fn(command_buffer: CommandBuffer, buffer: Buffer, offset: DeviceSize);
21744 #[derive(Clone)]
21745 pub struct HuaweiClusterCullingShaderFn {
21746     pub cmd_draw_cluster_huawei: PFN_vkCmdDrawClusterHUAWEI,
21747     pub cmd_draw_cluster_indirect_huawei: PFN_vkCmdDrawClusterIndirectHUAWEI,
21748 }
21749 unsafe impl Send for HuaweiClusterCullingShaderFn {}
21750 unsafe impl Sync for HuaweiClusterCullingShaderFn {}
21751 impl HuaweiClusterCullingShaderFn {
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         Self {
21757             cmd_draw_cluster_huawei: unsafe {
21758                 unsafe extern "system" fn cmd_draw_cluster_huawei(
21759                     _command_buffer: CommandBuffer,
21760                     _group_count_x: u32,
21761                     _group_count_y: u32,
21762                     _group_count_z: u32,
21763                 ) {
21764                     panic!(concat!(
21765                         "Unable to load ",
21766                         stringify!(cmd_draw_cluster_huawei)
21767                     ))
21768                 }
21769                 let cname =
21770                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawClusterHUAWEI\0");
21771                 let val = _f(cname);
21772                 if val.is_null() {
21773                     cmd_draw_cluster_huawei
21774                 } else {
21775                     ::std::mem::transmute(val)
21776                 }
21777             },
21778             cmd_draw_cluster_indirect_huawei: unsafe {
21779                 unsafe extern "system" fn cmd_draw_cluster_indirect_huawei(
21780                     _command_buffer: CommandBuffer,
21781                     _buffer: Buffer,
21782                     _offset: DeviceSize,
21783                 ) {
21784                     panic!(concat!(
21785                         "Unable to load ",
21786                         stringify!(cmd_draw_cluster_indirect_huawei)
21787                     ))
21788                 }
21789                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
21790                     b"vkCmdDrawClusterIndirectHUAWEI\0",
21791                 );
21792                 let val = _f(cname);
21793                 if val.is_null() {
21794                     cmd_draw_cluster_indirect_huawei
21795                 } else {
21796                     ::std::mem::transmute(val)
21797                 }
21798             },
21799         }
21800     }
21801 }
21802 #[doc = "Generated from 'VK_HUAWEI_cluster_culling_shader'"]
21803 impl PipelineStageFlags2 {
21804     pub const CLUSTER_CULLING_SHADER_HUAWEI: Self =
21805         Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
21806 }
21807 #[doc = "Generated from 'VK_HUAWEI_cluster_culling_shader'"]
21808 impl QueryPipelineStatisticFlags {
21809     pub const CLUSTER_CULLING_SHADER_INVOCATIONS_HUAWEI: Self = Self(0b10_0000_0000_0000);
21810 }
21811 #[doc = "Generated from 'VK_HUAWEI_cluster_culling_shader'"]
21812 impl ShaderStageFlags {
21813     pub const CLUSTER_CULLING_HUAWEI: Self = Self(0b1000_0000_0000_0000_0000);
21814 }
21815 #[doc = "Generated from 'VK_HUAWEI_cluster_culling_shader'"]
21816 impl StructureType {
21817     pub const PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI: Self = Self(1_000_404_000);
21818     pub const PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI: Self = Self(1_000_404_001);
21819 }
21820 impl HuaweiExtension406Fn {
21821     #[inline]
name() -> &'static ::std::ffi::CStr21822     pub const fn name() -> &'static ::std::ffi::CStr {
21823         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_HUAWEI_extension_406\0") }
21824     }
21825     pub const SPEC_VERSION: u32 = 0u32;
21826 }
21827 #[derive(Clone)]
21828 pub struct HuaweiExtension406Fn {}
21829 unsafe impl Send for HuaweiExtension406Fn {}
21830 unsafe impl Sync for HuaweiExtension406Fn {}
21831 impl HuaweiExtension406Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21832     pub fn load<F>(mut _f: F) -> Self
21833     where
21834         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21835     {
21836         Self {}
21837     }
21838 }
21839 impl GgpExtension407Fn {
21840     #[inline]
name() -> &'static ::std::ffi::CStr21841     pub const fn name() -> &'static ::std::ffi::CStr {
21842         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GGP_extension_407\0") }
21843     }
21844     pub const SPEC_VERSION: u32 = 0u32;
21845 }
21846 #[derive(Clone)]
21847 pub struct GgpExtension407Fn {}
21848 unsafe impl Send for GgpExtension407Fn {}
21849 unsafe impl Sync for GgpExtension407Fn {}
21850 impl GgpExtension407Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21851     pub fn load<F>(mut _f: F) -> Self
21852     where
21853         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21854     {
21855         Self {}
21856     }
21857 }
21858 impl GgpExtension408Fn {
21859     #[inline]
name() -> &'static ::std::ffi::CStr21860     pub const fn name() -> &'static ::std::ffi::CStr {
21861         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GGP_extension_408\0") }
21862     }
21863     pub const SPEC_VERSION: u32 = 0u32;
21864 }
21865 #[derive(Clone)]
21866 pub struct GgpExtension408Fn {}
21867 unsafe impl Send for GgpExtension408Fn {}
21868 unsafe impl Sync for GgpExtension408Fn {}
21869 impl GgpExtension408Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21870     pub fn load<F>(mut _f: F) -> Self
21871     where
21872         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21873     {
21874         Self {}
21875     }
21876 }
21877 impl GgpExtension409Fn {
21878     #[inline]
name() -> &'static ::std::ffi::CStr21879     pub const fn name() -> &'static ::std::ffi::CStr {
21880         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GGP_extension_409\0") }
21881     }
21882     pub const SPEC_VERSION: u32 = 0u32;
21883 }
21884 #[derive(Clone)]
21885 pub struct GgpExtension409Fn {}
21886 unsafe impl Send for GgpExtension409Fn {}
21887 unsafe impl Sync for GgpExtension409Fn {}
21888 impl GgpExtension409Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21889     pub fn load<F>(mut _f: F) -> Self
21890     where
21891         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21892     {
21893         Self {}
21894     }
21895 }
21896 impl GgpExtension410Fn {
21897     #[inline]
name() -> &'static ::std::ffi::CStr21898     pub const fn name() -> &'static ::std::ffi::CStr {
21899         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GGP_extension_410\0") }
21900     }
21901     pub const SPEC_VERSION: u32 = 0u32;
21902 }
21903 #[derive(Clone)]
21904 pub struct GgpExtension410Fn {}
21905 unsafe impl Send for GgpExtension410Fn {}
21906 unsafe impl Sync for GgpExtension410Fn {}
21907 impl GgpExtension410Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21908     pub fn load<F>(mut _f: F) -> Self
21909     where
21910         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21911     {
21912         Self {}
21913     }
21914 }
21915 impl GgpExtension411Fn {
21916     #[inline]
name() -> &'static ::std::ffi::CStr21917     pub const fn name() -> &'static ::std::ffi::CStr {
21918         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GGP_extension_411\0") }
21919     }
21920     pub const SPEC_VERSION: u32 = 0u32;
21921 }
21922 #[derive(Clone)]
21923 pub struct GgpExtension411Fn {}
21924 unsafe impl Send for GgpExtension411Fn {}
21925 unsafe impl Sync for GgpExtension411Fn {}
21926 impl GgpExtension411Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21927     pub fn load<F>(mut _f: F) -> Self
21928     where
21929         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21930     {
21931         Self {}
21932     }
21933 }
21934 impl ExtBorderColorSwizzleFn {
21935     #[inline]
name() -> &'static ::std::ffi::CStr21936     pub const fn name() -> &'static ::std::ffi::CStr {
21937         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_border_color_swizzle\0") }
21938     }
21939     pub const SPEC_VERSION: u32 = 1u32;
21940 }
21941 #[derive(Clone)]
21942 pub struct ExtBorderColorSwizzleFn {}
21943 unsafe impl Send for ExtBorderColorSwizzleFn {}
21944 unsafe impl Sync for ExtBorderColorSwizzleFn {}
21945 impl ExtBorderColorSwizzleFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21946     pub fn load<F>(mut _f: F) -> Self
21947     where
21948         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21949     {
21950         Self {}
21951     }
21952 }
21953 #[doc = "Generated from 'VK_EXT_border_color_swizzle'"]
21954 impl StructureType {
21955     pub const PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT: Self = Self(1_000_411_000);
21956     pub const SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT: Self = Self(1_000_411_001);
21957 }
21958 impl ExtPageableDeviceLocalMemoryFn {
21959     #[inline]
name() -> &'static ::std::ffi::CStr21960     pub const fn name() -> &'static ::std::ffi::CStr {
21961         unsafe {
21962             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
21963                 b"VK_EXT_pageable_device_local_memory\0",
21964             )
21965         }
21966     }
21967     pub const SPEC_VERSION: u32 = 1u32;
21968 }
21969 #[allow(non_camel_case_types)]
21970 pub type PFN_vkSetDeviceMemoryPriorityEXT =
21971     unsafe extern "system" fn(device: Device, memory: DeviceMemory, priority: f32);
21972 #[derive(Clone)]
21973 pub struct ExtPageableDeviceLocalMemoryFn {
21974     pub set_device_memory_priority_ext: PFN_vkSetDeviceMemoryPriorityEXT,
21975 }
21976 unsafe impl Send for ExtPageableDeviceLocalMemoryFn {}
21977 unsafe impl Sync for ExtPageableDeviceLocalMemoryFn {}
21978 impl ExtPageableDeviceLocalMemoryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21979     pub fn load<F>(mut _f: F) -> Self
21980     where
21981         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21982     {
21983         Self {
21984             set_device_memory_priority_ext: unsafe {
21985                 unsafe extern "system" fn set_device_memory_priority_ext(
21986                     _device: Device,
21987                     _memory: DeviceMemory,
21988                     _priority: f32,
21989                 ) {
21990                     panic!(concat!(
21991                         "Unable to load ",
21992                         stringify!(set_device_memory_priority_ext)
21993                     ))
21994                 }
21995                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
21996                     b"vkSetDeviceMemoryPriorityEXT\0",
21997                 );
21998                 let val = _f(cname);
21999                 if val.is_null() {
22000                     set_device_memory_priority_ext
22001                 } else {
22002                     ::std::mem::transmute(val)
22003                 }
22004             },
22005         }
22006     }
22007 }
22008 #[doc = "Generated from 'VK_EXT_pageable_device_local_memory'"]
22009 impl StructureType {
22010     pub const PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT: Self = Self(1_000_412_000);
22011 }
22012 impl KhrMaintenance4Fn {
22013     #[inline]
name() -> &'static ::std::ffi::CStr22014     pub const fn name() -> &'static ::std::ffi::CStr {
22015         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance4\0") }
22016     }
22017     pub const SPEC_VERSION: u32 = 2u32;
22018 }
22019 #[allow(non_camel_case_types)]
22020 pub type PFN_vkGetDeviceBufferMemoryRequirements = unsafe extern "system" fn(
22021     device: Device,
22022     p_info: *const DeviceBufferMemoryRequirements,
22023     p_memory_requirements: *mut MemoryRequirements2,
22024 );
22025 #[allow(non_camel_case_types)]
22026 pub type PFN_vkGetDeviceImageMemoryRequirements = unsafe extern "system" fn(
22027     device: Device,
22028     p_info: *const DeviceImageMemoryRequirements,
22029     p_memory_requirements: *mut MemoryRequirements2,
22030 );
22031 #[allow(non_camel_case_types)]
22032 pub type PFN_vkGetDeviceImageSparseMemoryRequirements = unsafe extern "system" fn(
22033     device: Device,
22034     p_info: *const DeviceImageMemoryRequirements,
22035     p_sparse_memory_requirement_count: *mut u32,
22036     p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2,
22037 );
22038 #[derive(Clone)]
22039 pub struct KhrMaintenance4Fn {
22040     pub get_device_buffer_memory_requirements_khr: PFN_vkGetDeviceBufferMemoryRequirements,
22041     pub get_device_image_memory_requirements_khr: PFN_vkGetDeviceImageMemoryRequirements,
22042     pub get_device_image_sparse_memory_requirements_khr:
22043         PFN_vkGetDeviceImageSparseMemoryRequirements,
22044 }
22045 unsafe impl Send for KhrMaintenance4Fn {}
22046 unsafe impl Sync for KhrMaintenance4Fn {}
22047 impl KhrMaintenance4Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22048     pub fn load<F>(mut _f: F) -> Self
22049     where
22050         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22051     {
22052         Self {
22053             get_device_buffer_memory_requirements_khr: unsafe {
22054                 unsafe extern "system" fn get_device_buffer_memory_requirements_khr(
22055                     _device: Device,
22056                     _p_info: *const DeviceBufferMemoryRequirements,
22057                     _p_memory_requirements: *mut MemoryRequirements2,
22058                 ) {
22059                     panic!(concat!(
22060                         "Unable to load ",
22061                         stringify!(get_device_buffer_memory_requirements_khr)
22062                     ))
22063                 }
22064                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22065                     b"vkGetDeviceBufferMemoryRequirementsKHR\0",
22066                 );
22067                 let val = _f(cname);
22068                 if val.is_null() {
22069                     get_device_buffer_memory_requirements_khr
22070                 } else {
22071                     ::std::mem::transmute(val)
22072                 }
22073             },
22074             get_device_image_memory_requirements_khr: unsafe {
22075                 unsafe extern "system" fn get_device_image_memory_requirements_khr(
22076                     _device: Device,
22077                     _p_info: *const DeviceImageMemoryRequirements,
22078                     _p_memory_requirements: *mut MemoryRequirements2,
22079                 ) {
22080                     panic!(concat!(
22081                         "Unable to load ",
22082                         stringify!(get_device_image_memory_requirements_khr)
22083                     ))
22084                 }
22085                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22086                     b"vkGetDeviceImageMemoryRequirementsKHR\0",
22087                 );
22088                 let val = _f(cname);
22089                 if val.is_null() {
22090                     get_device_image_memory_requirements_khr
22091                 } else {
22092                     ::std::mem::transmute(val)
22093                 }
22094             },
22095             get_device_image_sparse_memory_requirements_khr: unsafe {
22096                 unsafe extern "system" fn get_device_image_sparse_memory_requirements_khr(
22097                     _device: Device,
22098                     _p_info: *const DeviceImageMemoryRequirements,
22099                     _p_sparse_memory_requirement_count: *mut u32,
22100                     _p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2,
22101                 ) {
22102                     panic!(concat!(
22103                         "Unable to load ",
22104                         stringify!(get_device_image_sparse_memory_requirements_khr)
22105                     ))
22106                 }
22107                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22108                     b"vkGetDeviceImageSparseMemoryRequirementsKHR\0",
22109                 );
22110                 let val = _f(cname);
22111                 if val.is_null() {
22112                     get_device_image_sparse_memory_requirements_khr
22113                 } else {
22114                     ::std::mem::transmute(val)
22115                 }
22116             },
22117         }
22118     }
22119 }
22120 #[doc = "Generated from 'VK_KHR_maintenance4'"]
22121 impl ImageAspectFlags {
22122     pub const NONE_KHR: Self = Self::NONE;
22123 }
22124 #[doc = "Generated from 'VK_KHR_maintenance4'"]
22125 impl StructureType {
22126     pub const PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR: Self =
22127         Self::PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES;
22128     pub const PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR: Self =
22129         Self::PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES;
22130     pub const DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR: Self = Self::DEVICE_BUFFER_MEMORY_REQUIREMENTS;
22131     pub const DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR: Self = Self::DEVICE_IMAGE_MEMORY_REQUIREMENTS;
22132 }
22133 impl HuaweiExtension415Fn {
22134     #[inline]
name() -> &'static ::std::ffi::CStr22135     pub const fn name() -> &'static ::std::ffi::CStr {
22136         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_HUAWEI_extension_415\0") }
22137     }
22138     pub const SPEC_VERSION: u32 = 0u32;
22139 }
22140 #[derive(Clone)]
22141 pub struct HuaweiExtension415Fn {}
22142 unsafe impl Send for HuaweiExtension415Fn {}
22143 unsafe impl Sync for HuaweiExtension415Fn {}
22144 impl HuaweiExtension415Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22145     pub fn load<F>(mut _f: F) -> Self
22146     where
22147         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22148     {
22149         Self {}
22150     }
22151 }
22152 impl ArmShaderCorePropertiesFn {
22153     #[inline]
name() -> &'static ::std::ffi::CStr22154     pub const fn name() -> &'static ::std::ffi::CStr {
22155         unsafe {
22156             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_ARM_shader_core_properties\0")
22157         }
22158     }
22159     pub const SPEC_VERSION: u32 = 1u32;
22160 }
22161 #[derive(Clone)]
22162 pub struct ArmShaderCorePropertiesFn {}
22163 unsafe impl Send for ArmShaderCorePropertiesFn {}
22164 unsafe impl Sync for ArmShaderCorePropertiesFn {}
22165 impl ArmShaderCorePropertiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22166     pub fn load<F>(mut _f: F) -> Self
22167     where
22168         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22169     {
22170         Self {}
22171     }
22172 }
22173 #[doc = "Generated from 'VK_ARM_shader_core_properties'"]
22174 impl StructureType {
22175     pub const PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM: Self = Self(1_000_415_000);
22176 }
22177 impl KhrExtension417Fn {
22178     #[inline]
name() -> &'static ::std::ffi::CStr22179     pub const fn name() -> &'static ::std::ffi::CStr {
22180         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_417\0") }
22181     }
22182     pub const SPEC_VERSION: u32 = 0u32;
22183 }
22184 #[derive(Clone)]
22185 pub struct KhrExtension417Fn {}
22186 unsafe impl Send for KhrExtension417Fn {}
22187 unsafe impl Sync for KhrExtension417Fn {}
22188 impl KhrExtension417Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22189     pub fn load<F>(mut _f: F) -> Self
22190     where
22191         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22192     {
22193         Self {}
22194     }
22195 }
22196 impl ArmExtension418Fn {
22197     #[inline]
name() -> &'static ::std::ffi::CStr22198     pub const fn name() -> &'static ::std::ffi::CStr {
22199         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_ARM_extension_418\0") }
22200     }
22201     pub const SPEC_VERSION: u32 = 0u32;
22202 }
22203 #[derive(Clone)]
22204 pub struct ArmExtension418Fn {}
22205 unsafe impl Send for ArmExtension418Fn {}
22206 unsafe impl Sync for ArmExtension418Fn {}
22207 impl ArmExtension418Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22208     pub fn load<F>(mut _f: F) -> Self
22209     where
22210         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22211     {
22212         Self {}
22213     }
22214 }
22215 impl ExtImageSlicedViewOf3dFn {
22216     #[inline]
name() -> &'static ::std::ffi::CStr22217     pub const fn name() -> &'static ::std::ffi::CStr {
22218         unsafe {
22219             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_sliced_view_of_3d\0")
22220         }
22221     }
22222     pub const SPEC_VERSION: u32 = 1u32;
22223 }
22224 #[derive(Clone)]
22225 pub struct ExtImageSlicedViewOf3dFn {}
22226 unsafe impl Send for ExtImageSlicedViewOf3dFn {}
22227 unsafe impl Sync for ExtImageSlicedViewOf3dFn {}
22228 impl ExtImageSlicedViewOf3dFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22229     pub fn load<F>(mut _f: F) -> Self
22230     where
22231         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22232     {
22233         Self {}
22234     }
22235 }
22236 #[doc = "Generated from 'VK_EXT_image_sliced_view_of_3d'"]
22237 impl StructureType {
22238     pub const PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT: Self = Self(1_000_418_000);
22239     pub const IMAGE_VIEW_SLICED_CREATE_INFO_EXT: Self = Self(1_000_418_001);
22240 }
22241 impl ExtExtension420Fn {
22242     #[inline]
name() -> &'static ::std::ffi::CStr22243     pub const fn name() -> &'static ::std::ffi::CStr {
22244         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_420\0") }
22245     }
22246     pub const SPEC_VERSION: u32 = 0u32;
22247 }
22248 #[derive(Clone)]
22249 pub struct ExtExtension420Fn {}
22250 unsafe impl Send for ExtExtension420Fn {}
22251 unsafe impl Sync for ExtExtension420Fn {}
22252 impl ExtExtension420Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22253     pub fn load<F>(mut _f: F) -> Self
22254     where
22255         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22256     {
22257         Self {}
22258     }
22259 }
22260 #[doc = "Generated from 'VK_EXT_extension_420'"]
22261 impl SwapchainCreateFlagsKHR {
22262     pub const RESERVED_4_EXT: Self = Self(0b1_0000);
22263 }
22264 impl ValveDescriptorSetHostMappingFn {
22265     #[inline]
name() -> &'static ::std::ffi::CStr22266     pub const fn name() -> &'static ::std::ffi::CStr {
22267         unsafe {
22268             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22269                 b"VK_VALVE_descriptor_set_host_mapping\0",
22270             )
22271         }
22272     }
22273     pub const SPEC_VERSION: u32 = 1u32;
22274 }
22275 #[allow(non_camel_case_types)]
22276 pub type PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = unsafe extern "system" fn(
22277     device: Device,
22278     p_binding_reference: *const DescriptorSetBindingReferenceVALVE,
22279     p_host_mapping: *mut DescriptorSetLayoutHostMappingInfoVALVE,
22280 );
22281 #[allow(non_camel_case_types)]
22282 pub type PFN_vkGetDescriptorSetHostMappingVALVE = unsafe extern "system" fn(
22283     device: Device,
22284     descriptor_set: DescriptorSet,
22285     pp_data: *mut *mut c_void,
22286 );
22287 #[derive(Clone)]
22288 pub struct ValveDescriptorSetHostMappingFn {
22289     pub get_descriptor_set_layout_host_mapping_info_valve:
22290         PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE,
22291     pub get_descriptor_set_host_mapping_valve: PFN_vkGetDescriptorSetHostMappingVALVE,
22292 }
22293 unsafe impl Send for ValveDescriptorSetHostMappingFn {}
22294 unsafe impl Sync for ValveDescriptorSetHostMappingFn {}
22295 impl ValveDescriptorSetHostMappingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22296     pub fn load<F>(mut _f: F) -> Self
22297     where
22298         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22299     {
22300         Self {
22301             get_descriptor_set_layout_host_mapping_info_valve: unsafe {
22302                 unsafe extern "system" fn get_descriptor_set_layout_host_mapping_info_valve(
22303                     _device: Device,
22304                     _p_binding_reference: *const DescriptorSetBindingReferenceVALVE,
22305                     _p_host_mapping: *mut DescriptorSetLayoutHostMappingInfoVALVE,
22306                 ) {
22307                     panic!(concat!(
22308                         "Unable to load ",
22309                         stringify!(get_descriptor_set_layout_host_mapping_info_valve)
22310                     ))
22311                 }
22312                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22313                     b"vkGetDescriptorSetLayoutHostMappingInfoVALVE\0",
22314                 );
22315                 let val = _f(cname);
22316                 if val.is_null() {
22317                     get_descriptor_set_layout_host_mapping_info_valve
22318                 } else {
22319                     ::std::mem::transmute(val)
22320                 }
22321             },
22322             get_descriptor_set_host_mapping_valve: unsafe {
22323                 unsafe extern "system" fn get_descriptor_set_host_mapping_valve(
22324                     _device: Device,
22325                     _descriptor_set: DescriptorSet,
22326                     _pp_data: *mut *mut c_void,
22327                 ) {
22328                     panic!(concat!(
22329                         "Unable to load ",
22330                         stringify!(get_descriptor_set_host_mapping_valve)
22331                     ))
22332                 }
22333                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22334                     b"vkGetDescriptorSetHostMappingVALVE\0",
22335                 );
22336                 let val = _f(cname);
22337                 if val.is_null() {
22338                     get_descriptor_set_host_mapping_valve
22339                 } else {
22340                     ::std::mem::transmute(val)
22341                 }
22342             },
22343         }
22344     }
22345 }
22346 #[doc = "Generated from 'VK_VALVE_descriptor_set_host_mapping'"]
22347 impl StructureType {
22348     pub const PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE: Self =
22349         Self(1_000_420_000);
22350     pub const DESCRIPTOR_SET_BINDING_REFERENCE_VALVE: Self = Self(1_000_420_001);
22351     pub const DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE: Self = Self(1_000_420_002);
22352 }
22353 impl ExtDepthClampZeroOneFn {
22354     #[inline]
name() -> &'static ::std::ffi::CStr22355     pub const fn name() -> &'static ::std::ffi::CStr {
22356         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_depth_clamp_zero_one\0") }
22357     }
22358     pub const SPEC_VERSION: u32 = 1u32;
22359 }
22360 #[derive(Clone)]
22361 pub struct ExtDepthClampZeroOneFn {}
22362 unsafe impl Send for ExtDepthClampZeroOneFn {}
22363 unsafe impl Sync for ExtDepthClampZeroOneFn {}
22364 impl ExtDepthClampZeroOneFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22365     pub fn load<F>(mut _f: F) -> Self
22366     where
22367         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22368     {
22369         Self {}
22370     }
22371 }
22372 #[doc = "Generated from 'VK_EXT_depth_clamp_zero_one'"]
22373 impl StructureType {
22374     pub const PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT: Self = Self(1_000_421_000);
22375 }
22376 impl ExtNonSeamlessCubeMapFn {
22377     #[inline]
name() -> &'static ::std::ffi::CStr22378     pub const fn name() -> &'static ::std::ffi::CStr {
22379         unsafe {
22380             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_non_seamless_cube_map\0")
22381         }
22382     }
22383     pub const SPEC_VERSION: u32 = 1u32;
22384 }
22385 #[derive(Clone)]
22386 pub struct ExtNonSeamlessCubeMapFn {}
22387 unsafe impl Send for ExtNonSeamlessCubeMapFn {}
22388 unsafe impl Sync for ExtNonSeamlessCubeMapFn {}
22389 impl ExtNonSeamlessCubeMapFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22390     pub fn load<F>(mut _f: F) -> Self
22391     where
22392         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22393     {
22394         Self {}
22395     }
22396 }
22397 #[doc = "Generated from 'VK_EXT_non_seamless_cube_map'"]
22398 impl SamplerCreateFlags {
22399     pub const NON_SEAMLESS_CUBE_MAP_EXT: Self = Self(0b100);
22400 }
22401 #[doc = "Generated from 'VK_EXT_non_seamless_cube_map'"]
22402 impl StructureType {
22403     pub const PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT: Self = Self(1_000_422_000);
22404 }
22405 impl ArmExtension424Fn {
22406     #[inline]
name() -> &'static ::std::ffi::CStr22407     pub const fn name() -> &'static ::std::ffi::CStr {
22408         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_ARM_extension_424\0") }
22409     }
22410     pub const SPEC_VERSION: u32 = 0u32;
22411 }
22412 #[derive(Clone)]
22413 pub struct ArmExtension424Fn {}
22414 unsafe impl Send for ArmExtension424Fn {}
22415 unsafe impl Sync for ArmExtension424Fn {}
22416 impl ArmExtension424Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22417     pub fn load<F>(mut _f: F) -> Self
22418     where
22419         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22420     {
22421         Self {}
22422     }
22423 }
22424 impl ArmExtension425Fn {
22425     #[inline]
name() -> &'static ::std::ffi::CStr22426     pub const fn name() -> &'static ::std::ffi::CStr {
22427         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_ARM_extension_425\0") }
22428     }
22429     pub const SPEC_VERSION: u32 = 0u32;
22430 }
22431 #[derive(Clone)]
22432 pub struct ArmExtension425Fn {}
22433 unsafe impl Send for ArmExtension425Fn {}
22434 unsafe impl Sync for ArmExtension425Fn {}
22435 impl ArmExtension425Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22436     pub fn load<F>(mut _f: F) -> Self
22437     where
22438         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22439     {
22440         Self {}
22441     }
22442 }
22443 impl QcomFragmentDensityMapOffsetFn {
22444     #[inline]
name() -> &'static ::std::ffi::CStr22445     pub const fn name() -> &'static ::std::ffi::CStr {
22446         unsafe {
22447             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22448                 b"VK_QCOM_fragment_density_map_offset\0",
22449             )
22450         }
22451     }
22452     pub const SPEC_VERSION: u32 = 1u32;
22453 }
22454 #[derive(Clone)]
22455 pub struct QcomFragmentDensityMapOffsetFn {}
22456 unsafe impl Send for QcomFragmentDensityMapOffsetFn {}
22457 unsafe impl Sync for QcomFragmentDensityMapOffsetFn {}
22458 impl QcomFragmentDensityMapOffsetFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22459     pub fn load<F>(mut _f: F) -> Self
22460     where
22461         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22462     {
22463         Self {}
22464     }
22465 }
22466 #[doc = "Generated from 'VK_QCOM_fragment_density_map_offset'"]
22467 impl ImageCreateFlags {
22468     pub const FRAGMENT_DENSITY_MAP_OFFSET_QCOM: Self = Self(0b1000_0000_0000_0000);
22469 }
22470 #[doc = "Generated from 'VK_QCOM_fragment_density_map_offset'"]
22471 impl StructureType {
22472     pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM: Self = Self(1_000_425_000);
22473     pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM: Self =
22474         Self(1_000_425_001);
22475     pub const SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM: Self = Self(1_000_425_002);
22476 }
22477 impl NvCopyMemoryIndirectFn {
22478     #[inline]
name() -> &'static ::std::ffi::CStr22479     pub const fn name() -> &'static ::std::ffi::CStr {
22480         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_copy_memory_indirect\0") }
22481     }
22482     pub const SPEC_VERSION: u32 = 1u32;
22483 }
22484 #[allow(non_camel_case_types)]
22485 pub type PFN_vkCmdCopyMemoryIndirectNV = unsafe extern "system" fn(
22486     command_buffer: CommandBuffer,
22487     copy_buffer_address: DeviceAddress,
22488     copy_count: u32,
22489     stride: u32,
22490 );
22491 #[allow(non_camel_case_types)]
22492 pub type PFN_vkCmdCopyMemoryToImageIndirectNV = unsafe extern "system" fn(
22493     command_buffer: CommandBuffer,
22494     copy_buffer_address: DeviceAddress,
22495     copy_count: u32,
22496     stride: u32,
22497     dst_image: Image,
22498     dst_image_layout: ImageLayout,
22499     p_image_subresources: *const ImageSubresourceLayers,
22500 );
22501 #[derive(Clone)]
22502 pub struct NvCopyMemoryIndirectFn {
22503     pub cmd_copy_memory_indirect_nv: PFN_vkCmdCopyMemoryIndirectNV,
22504     pub cmd_copy_memory_to_image_indirect_nv: PFN_vkCmdCopyMemoryToImageIndirectNV,
22505 }
22506 unsafe impl Send for NvCopyMemoryIndirectFn {}
22507 unsafe impl Sync for NvCopyMemoryIndirectFn {}
22508 impl NvCopyMemoryIndirectFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22509     pub fn load<F>(mut _f: F) -> Self
22510     where
22511         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22512     {
22513         Self {
22514             cmd_copy_memory_indirect_nv: unsafe {
22515                 unsafe extern "system" fn cmd_copy_memory_indirect_nv(
22516                     _command_buffer: CommandBuffer,
22517                     _copy_buffer_address: DeviceAddress,
22518                     _copy_count: u32,
22519                     _stride: u32,
22520                 ) {
22521                     panic!(concat!(
22522                         "Unable to load ",
22523                         stringify!(cmd_copy_memory_indirect_nv)
22524                     ))
22525                 }
22526                 let cname =
22527                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyMemoryIndirectNV\0");
22528                 let val = _f(cname);
22529                 if val.is_null() {
22530                     cmd_copy_memory_indirect_nv
22531                 } else {
22532                     ::std::mem::transmute(val)
22533                 }
22534             },
22535             cmd_copy_memory_to_image_indirect_nv: unsafe {
22536                 unsafe extern "system" fn cmd_copy_memory_to_image_indirect_nv(
22537                     _command_buffer: CommandBuffer,
22538                     _copy_buffer_address: DeviceAddress,
22539                     _copy_count: u32,
22540                     _stride: u32,
22541                     _dst_image: Image,
22542                     _dst_image_layout: ImageLayout,
22543                     _p_image_subresources: *const ImageSubresourceLayers,
22544                 ) {
22545                     panic!(concat!(
22546                         "Unable to load ",
22547                         stringify!(cmd_copy_memory_to_image_indirect_nv)
22548                     ))
22549                 }
22550                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22551                     b"vkCmdCopyMemoryToImageIndirectNV\0",
22552                 );
22553                 let val = _f(cname);
22554                 if val.is_null() {
22555                     cmd_copy_memory_to_image_indirect_nv
22556                 } else {
22557                     ::std::mem::transmute(val)
22558                 }
22559             },
22560         }
22561     }
22562 }
22563 #[doc = "Generated from 'VK_NV_copy_memory_indirect'"]
22564 impl StructureType {
22565     pub const PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV: Self = Self(1_000_426_000);
22566     pub const PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV: Self = Self(1_000_426_001);
22567 }
22568 impl NvMemoryDecompressionFn {
22569     #[inline]
name() -> &'static ::std::ffi::CStr22570     pub const fn name() -> &'static ::std::ffi::CStr {
22571         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_memory_decompression\0") }
22572     }
22573     pub const SPEC_VERSION: u32 = 1u32;
22574 }
22575 #[allow(non_camel_case_types)]
22576 pub type PFN_vkCmdDecompressMemoryNV = unsafe extern "system" fn(
22577     command_buffer: CommandBuffer,
22578     decompress_region_count: u32,
22579     p_decompress_memory_regions: *const DecompressMemoryRegionNV,
22580 );
22581 #[allow(non_camel_case_types)]
22582 pub type PFN_vkCmdDecompressMemoryIndirectCountNV = unsafe extern "system" fn(
22583     command_buffer: CommandBuffer,
22584     indirect_commands_address: DeviceAddress,
22585     indirect_commands_count_address: DeviceAddress,
22586     stride: u32,
22587 );
22588 #[derive(Clone)]
22589 pub struct NvMemoryDecompressionFn {
22590     pub cmd_decompress_memory_nv: PFN_vkCmdDecompressMemoryNV,
22591     pub cmd_decompress_memory_indirect_count_nv: PFN_vkCmdDecompressMemoryIndirectCountNV,
22592 }
22593 unsafe impl Send for NvMemoryDecompressionFn {}
22594 unsafe impl Sync for NvMemoryDecompressionFn {}
22595 impl NvMemoryDecompressionFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22596     pub fn load<F>(mut _f: F) -> Self
22597     where
22598         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22599     {
22600         Self {
22601             cmd_decompress_memory_nv: unsafe {
22602                 unsafe extern "system" fn cmd_decompress_memory_nv(
22603                     _command_buffer: CommandBuffer,
22604                     _decompress_region_count: u32,
22605                     _p_decompress_memory_regions: *const DecompressMemoryRegionNV,
22606                 ) {
22607                     panic!(concat!(
22608                         "Unable to load ",
22609                         stringify!(cmd_decompress_memory_nv)
22610                     ))
22611                 }
22612                 let cname =
22613                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDecompressMemoryNV\0");
22614                 let val = _f(cname);
22615                 if val.is_null() {
22616                     cmd_decompress_memory_nv
22617                 } else {
22618                     ::std::mem::transmute(val)
22619                 }
22620             },
22621             cmd_decompress_memory_indirect_count_nv: unsafe {
22622                 unsafe extern "system" fn cmd_decompress_memory_indirect_count_nv(
22623                     _command_buffer: CommandBuffer,
22624                     _indirect_commands_address: DeviceAddress,
22625                     _indirect_commands_count_address: DeviceAddress,
22626                     _stride: u32,
22627                 ) {
22628                     panic!(concat!(
22629                         "Unable to load ",
22630                         stringify!(cmd_decompress_memory_indirect_count_nv)
22631                     ))
22632                 }
22633                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22634                     b"vkCmdDecompressMemoryIndirectCountNV\0",
22635                 );
22636                 let val = _f(cname);
22637                 if val.is_null() {
22638                     cmd_decompress_memory_indirect_count_nv
22639                 } else {
22640                     ::std::mem::transmute(val)
22641                 }
22642             },
22643         }
22644     }
22645 }
22646 #[doc = "Generated from 'VK_NV_memory_decompression'"]
22647 impl StructureType {
22648     pub const PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV: Self = Self(1_000_427_000);
22649     pub const PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV: Self = Self(1_000_427_001);
22650 }
22651 impl NvExtension429Fn {
22652     #[inline]
name() -> &'static ::std::ffi::CStr22653     pub const fn name() -> &'static ::std::ffi::CStr {
22654         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_429\0") }
22655     }
22656     pub const SPEC_VERSION: u32 = 0u32;
22657 }
22658 #[derive(Clone)]
22659 pub struct NvExtension429Fn {}
22660 unsafe impl Send for NvExtension429Fn {}
22661 unsafe impl Sync for NvExtension429Fn {}
22662 impl NvExtension429Fn {
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         Self {}
22668     }
22669 }
22670 impl NvExtension430Fn {
22671     #[inline]
name() -> &'static ::std::ffi::CStr22672     pub const fn name() -> &'static ::std::ffi::CStr {
22673         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_430\0") }
22674     }
22675     pub const SPEC_VERSION: u32 = 0u32;
22676 }
22677 #[derive(Clone)]
22678 pub struct NvExtension430Fn {}
22679 unsafe impl Send for NvExtension430Fn {}
22680 unsafe impl Sync for NvExtension430Fn {}
22681 impl NvExtension430Fn {
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         Self {}
22687     }
22688 }
22689 impl NvLinearColorAttachmentFn {
22690     #[inline]
name() -> &'static ::std::ffi::CStr22691     pub const fn name() -> &'static ::std::ffi::CStr {
22692         unsafe {
22693             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_linear_color_attachment\0")
22694         }
22695     }
22696     pub const SPEC_VERSION: u32 = 1u32;
22697 }
22698 #[derive(Clone)]
22699 pub struct NvLinearColorAttachmentFn {}
22700 unsafe impl Send for NvLinearColorAttachmentFn {}
22701 unsafe impl Sync for NvLinearColorAttachmentFn {}
22702 impl NvLinearColorAttachmentFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22703     pub fn load<F>(mut _f: F) -> Self
22704     where
22705         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22706     {
22707         Self {}
22708     }
22709 }
22710 #[doc = "Generated from 'VK_NV_linear_color_attachment'"]
22711 impl FormatFeatureFlags2 {
22712     #[doc = "Format support linear image as render target, it cannot be mixed with non linear attachment"]
22713     pub const LINEAR_COLOR_ATTACHMENT_NV: Self =
22714         Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000_0000);
22715 }
22716 #[doc = "Generated from 'VK_NV_linear_color_attachment'"]
22717 impl StructureType {
22718     pub const PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV: Self = Self(1_000_430_000);
22719 }
22720 impl NvExtension432Fn {
22721     #[inline]
name() -> &'static ::std::ffi::CStr22722     pub const fn name() -> &'static ::std::ffi::CStr {
22723         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_432\0") }
22724     }
22725     pub const SPEC_VERSION: u32 = 0u32;
22726 }
22727 #[derive(Clone)]
22728 pub struct NvExtension432Fn {}
22729 unsafe impl Send for NvExtension432Fn {}
22730 unsafe impl Sync for NvExtension432Fn {}
22731 impl NvExtension432Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22732     pub fn load<F>(mut _f: F) -> Self
22733     where
22734         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22735     {
22736         Self {}
22737     }
22738 }
22739 impl NvExtension433Fn {
22740     #[inline]
name() -> &'static ::std::ffi::CStr22741     pub const fn name() -> &'static ::std::ffi::CStr {
22742         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_433\0") }
22743     }
22744     pub const SPEC_VERSION: u32 = 0u32;
22745 }
22746 #[derive(Clone)]
22747 pub struct NvExtension433Fn {}
22748 unsafe impl Send for NvExtension433Fn {}
22749 unsafe impl Sync for NvExtension433Fn {}
22750 impl NvExtension433Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22751     pub fn load<F>(mut _f: F) -> Self
22752     where
22753         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22754     {
22755         Self {}
22756     }
22757 }
22758 impl GoogleSurfacelessQueryFn {
22759     #[inline]
name() -> &'static ::std::ffi::CStr22760     pub const fn name() -> &'static ::std::ffi::CStr {
22761         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_surfaceless_query\0") }
22762     }
22763     pub const SPEC_VERSION: u32 = 2u32;
22764 }
22765 #[derive(Clone)]
22766 pub struct GoogleSurfacelessQueryFn {}
22767 unsafe impl Send for GoogleSurfacelessQueryFn {}
22768 unsafe impl Sync for GoogleSurfacelessQueryFn {}
22769 impl GoogleSurfacelessQueryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22770     pub fn load<F>(mut _f: F) -> Self
22771     where
22772         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22773     {
22774         Self {}
22775     }
22776 }
22777 impl KhrExtension435Fn {
22778     #[inline]
name() -> &'static ::std::ffi::CStr22779     pub const fn name() -> &'static ::std::ffi::CStr {
22780         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_435\0") }
22781     }
22782     pub const SPEC_VERSION: u32 = 0u32;
22783 }
22784 #[derive(Clone)]
22785 pub struct KhrExtension435Fn {}
22786 unsafe impl Send for KhrExtension435Fn {}
22787 unsafe impl Sync for KhrExtension435Fn {}
22788 impl KhrExtension435Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22789     pub fn load<F>(mut _f: F) -> Self
22790     where
22791         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22792     {
22793         Self {}
22794     }
22795 }
22796 impl ExtExtension437Fn {
22797     #[inline]
name() -> &'static ::std::ffi::CStr22798     pub const fn name() -> &'static ::std::ffi::CStr {
22799         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_437\0") }
22800     }
22801     pub const SPEC_VERSION: u32 = 0u32;
22802 }
22803 #[derive(Clone)]
22804 pub struct ExtExtension437Fn {}
22805 unsafe impl Send for ExtExtension437Fn {}
22806 unsafe impl Sync for ExtExtension437Fn {}
22807 impl ExtExtension437Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22808     pub fn load<F>(mut _f: F) -> Self
22809     where
22810         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22811     {
22812         Self {}
22813     }
22814 }
22815 impl ExtImageCompressionControlSwapchainFn {
22816     #[inline]
name() -> &'static ::std::ffi::CStr22817     pub const fn name() -> &'static ::std::ffi::CStr {
22818         unsafe {
22819             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22820                 b"VK_EXT_image_compression_control_swapchain\0",
22821             )
22822         }
22823     }
22824     pub const SPEC_VERSION: u32 = 1u32;
22825 }
22826 #[derive(Clone)]
22827 pub struct ExtImageCompressionControlSwapchainFn {}
22828 unsafe impl Send for ExtImageCompressionControlSwapchainFn {}
22829 unsafe impl Sync for ExtImageCompressionControlSwapchainFn {}
22830 impl ExtImageCompressionControlSwapchainFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22831     pub fn load<F>(mut _f: F) -> Self
22832     where
22833         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22834     {
22835         Self {}
22836     }
22837 }
22838 #[doc = "Generated from 'VK_EXT_image_compression_control_swapchain'"]
22839 impl StructureType {
22840     pub const PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: Self =
22841         Self(1_000_437_000);
22842 }
22843 impl SecExtension439Fn {
22844     #[inline]
name() -> &'static ::std::ffi::CStr22845     pub const fn name() -> &'static ::std::ffi::CStr {
22846         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_SEC_extension_439\0") }
22847     }
22848     pub const SPEC_VERSION: u32 = 0u32;
22849 }
22850 #[derive(Clone)]
22851 pub struct SecExtension439Fn {}
22852 unsafe impl Send for SecExtension439Fn {}
22853 unsafe impl Sync for SecExtension439Fn {}
22854 impl SecExtension439Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22855     pub fn load<F>(mut _f: F) -> Self
22856     where
22857         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22858     {
22859         Self {}
22860     }
22861 }
22862 impl QcomExtension440Fn {
22863     #[inline]
name() -> &'static ::std::ffi::CStr22864     pub const fn name() -> &'static ::std::ffi::CStr {
22865         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_440\0") }
22866     }
22867     pub const SPEC_VERSION: u32 = 0u32;
22868 }
22869 #[derive(Clone)]
22870 pub struct QcomExtension440Fn {}
22871 unsafe impl Send for QcomExtension440Fn {}
22872 unsafe impl Sync for QcomExtension440Fn {}
22873 impl QcomExtension440Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22874     pub fn load<F>(mut _f: F) -> Self
22875     where
22876         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22877     {
22878         Self {}
22879     }
22880 }
22881 #[doc = "Generated from 'VK_QCOM_extension_440'"]
22882 impl DeviceQueueCreateFlags {
22883     pub const RESERVED_1_QCOM: Self = Self(0b10);
22884 }
22885 #[doc = "Generated from 'VK_QCOM_extension_440'"]
22886 impl QueueFlags {
22887     pub const RESERVED_7_QCOM: Self = Self(0b1000_0000);
22888 }
22889 impl QcomImageProcessingFn {
22890     #[inline]
name() -> &'static ::std::ffi::CStr22891     pub const fn name() -> &'static ::std::ffi::CStr {
22892         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_image_processing\0") }
22893     }
22894     pub const SPEC_VERSION: u32 = 1u32;
22895 }
22896 #[derive(Clone)]
22897 pub struct QcomImageProcessingFn {}
22898 unsafe impl Send for QcomImageProcessingFn {}
22899 unsafe impl Sync for QcomImageProcessingFn {}
22900 impl QcomImageProcessingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22901     pub fn load<F>(mut _f: F) -> Self
22902     where
22903         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22904     {
22905         Self {}
22906     }
22907 }
22908 #[doc = "Generated from 'VK_QCOM_image_processing'"]
22909 impl DescriptorType {
22910     pub const SAMPLE_WEIGHT_IMAGE_QCOM: Self = Self(1_000_440_000);
22911     pub const BLOCK_MATCH_IMAGE_QCOM: Self = Self(1_000_440_001);
22912 }
22913 #[doc = "Generated from 'VK_QCOM_image_processing'"]
22914 impl FormatFeatureFlags2 {
22915     pub const WEIGHT_IMAGE_QCOM: Self = Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000);
22916     pub const WEIGHT_SAMPLED_IMAGE_QCOM: Self =
22917         Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000);
22918     pub const BLOCK_MATCHING_QCOM: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000);
22919     pub const BOX_FILTER_SAMPLED_QCOM: Self =
22920         Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000_0000);
22921 }
22922 #[doc = "Generated from 'VK_QCOM_image_processing'"]
22923 impl ImageUsageFlags {
22924     pub const SAMPLE_WEIGHT_QCOM: Self = Self(0b1_0000_0000_0000_0000_0000);
22925     pub const SAMPLE_BLOCK_MATCH_QCOM: Self = Self(0b10_0000_0000_0000_0000_0000);
22926 }
22927 #[doc = "Generated from 'VK_QCOM_image_processing'"]
22928 impl SamplerCreateFlags {
22929     pub const IMAGE_PROCESSING_QCOM: Self = Self(0b1_0000);
22930 }
22931 #[doc = "Generated from 'VK_QCOM_image_processing'"]
22932 impl StructureType {
22933     pub const PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM: Self = Self(1_000_440_000);
22934     pub const PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM: Self = Self(1_000_440_001);
22935     pub const IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM: Self = Self(1_000_440_002);
22936 }
22937 impl CoreaviExtension442Fn {
22938     #[inline]
name() -> &'static ::std::ffi::CStr22939     pub const fn name() -> &'static ::std::ffi::CStr {
22940         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_COREAVI_extension_442\0") }
22941     }
22942     pub const SPEC_VERSION: u32 = 0u32;
22943 }
22944 #[derive(Clone)]
22945 pub struct CoreaviExtension442Fn {}
22946 unsafe impl Send for CoreaviExtension442Fn {}
22947 unsafe impl Sync for CoreaviExtension442Fn {}
22948 impl CoreaviExtension442Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22949     pub fn load<F>(mut _f: F) -> Self
22950     where
22951         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22952     {
22953         Self {}
22954     }
22955 }
22956 impl CoreaviExtension443Fn {
22957     #[inline]
name() -> &'static ::std::ffi::CStr22958     pub const fn name() -> &'static ::std::ffi::CStr {
22959         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_COREAVI_extension_443\0") }
22960     }
22961     pub const SPEC_VERSION: u32 = 0u32;
22962 }
22963 #[derive(Clone)]
22964 pub struct CoreaviExtension443Fn {}
22965 unsafe impl Send for CoreaviExtension443Fn {}
22966 unsafe impl Sync for CoreaviExtension443Fn {}
22967 impl CoreaviExtension443Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22968     pub fn load<F>(mut _f: F) -> Self
22969     where
22970         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22971     {
22972         Self {}
22973     }
22974 }
22975 impl CoreaviExtension444Fn {
22976     #[inline]
name() -> &'static ::std::ffi::CStr22977     pub const fn name() -> &'static ::std::ffi::CStr {
22978         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_COREAVI_extension_444\0") }
22979     }
22980     pub const SPEC_VERSION: u32 = 0u32;
22981 }
22982 #[derive(Clone)]
22983 pub struct CoreaviExtension444Fn {}
22984 unsafe impl Send for CoreaviExtension444Fn {}
22985 unsafe impl Sync for CoreaviExtension444Fn {}
22986 impl CoreaviExtension444Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22987     pub fn load<F>(mut _f: F) -> Self
22988     where
22989         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22990     {
22991         Self {}
22992     }
22993 }
22994 #[doc = "Generated from 'VK_COREAVI_extension_444'"]
22995 impl CommandPoolResetFlags {
22996     pub const RESERVED_1_COREAVI: Self = Self(0b10);
22997 }
22998 impl CoreaviExtension445Fn {
22999     #[inline]
name() -> &'static ::std::ffi::CStr23000     pub const fn name() -> &'static ::std::ffi::CStr {
23001         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_COREAVI_extension_445\0") }
23002     }
23003     pub const SPEC_VERSION: u32 = 0u32;
23004 }
23005 #[derive(Clone)]
23006 pub struct CoreaviExtension445Fn {}
23007 unsafe impl Send for CoreaviExtension445Fn {}
23008 unsafe impl Sync for CoreaviExtension445Fn {}
23009 impl CoreaviExtension445Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23010     pub fn load<F>(mut _f: F) -> Self
23011     where
23012         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23013     {
23014         Self {}
23015     }
23016 }
23017 impl CoreaviExtension446Fn {
23018     #[inline]
name() -> &'static ::std::ffi::CStr23019     pub const fn name() -> &'static ::std::ffi::CStr {
23020         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_COREAVI_extension_446\0") }
23021     }
23022     pub const SPEC_VERSION: u32 = 0u32;
23023 }
23024 #[derive(Clone)]
23025 pub struct CoreaviExtension446Fn {}
23026 unsafe impl Send for CoreaviExtension446Fn {}
23027 unsafe impl Sync for CoreaviExtension446Fn {}
23028 impl CoreaviExtension446Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23029     pub fn load<F>(mut _f: F) -> Self
23030     where
23031         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23032     {
23033         Self {}
23034     }
23035 }
23036 impl CoreaviExtension447Fn {
23037     #[inline]
name() -> &'static ::std::ffi::CStr23038     pub const fn name() -> &'static ::std::ffi::CStr {
23039         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_COREAVI_extension_447\0") }
23040     }
23041     pub const SPEC_VERSION: u32 = 0u32;
23042 }
23043 #[derive(Clone)]
23044 pub struct CoreaviExtension447Fn {}
23045 unsafe impl Send for CoreaviExtension447Fn {}
23046 unsafe impl Sync for CoreaviExtension447Fn {}
23047 impl CoreaviExtension447Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23048     pub fn load<F>(mut _f: F) -> Self
23049     where
23050         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23051     {
23052         Self {}
23053     }
23054 }
23055 impl SecExtension448Fn {
23056     #[inline]
name() -> &'static ::std::ffi::CStr23057     pub const fn name() -> &'static ::std::ffi::CStr {
23058         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_SEC_extension_448\0") }
23059     }
23060     pub const SPEC_VERSION: u32 = 0u32;
23061 }
23062 #[derive(Clone)]
23063 pub struct SecExtension448Fn {}
23064 unsafe impl Send for SecExtension448Fn {}
23065 unsafe impl Sync for SecExtension448Fn {}
23066 impl SecExtension448Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23067     pub fn load<F>(mut _f: F) -> Self
23068     where
23069         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23070     {
23071         Self {}
23072     }
23073 }
23074 impl SecExtension449Fn {
23075     #[inline]
name() -> &'static ::std::ffi::CStr23076     pub const fn name() -> &'static ::std::ffi::CStr {
23077         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_SEC_extension_449\0") }
23078     }
23079     pub const SPEC_VERSION: u32 = 0u32;
23080 }
23081 #[derive(Clone)]
23082 pub struct SecExtension449Fn {}
23083 unsafe impl Send for SecExtension449Fn {}
23084 unsafe impl Sync for SecExtension449Fn {}
23085 impl SecExtension449Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23086     pub fn load<F>(mut _f: F) -> Self
23087     where
23088         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23089     {
23090         Self {}
23091     }
23092 }
23093 impl SecExtension450Fn {
23094     #[inline]
name() -> &'static ::std::ffi::CStr23095     pub const fn name() -> &'static ::std::ffi::CStr {
23096         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_SEC_extension_450\0") }
23097     }
23098     pub const SPEC_VERSION: u32 = 0u32;
23099 }
23100 #[derive(Clone)]
23101 pub struct SecExtension450Fn {}
23102 unsafe impl Send for SecExtension450Fn {}
23103 unsafe impl Sync for SecExtension450Fn {}
23104 impl SecExtension450Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23105     pub fn load<F>(mut _f: F) -> Self
23106     where
23107         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23108     {
23109         Self {}
23110     }
23111 }
23112 impl SecExtension451Fn {
23113     #[inline]
name() -> &'static ::std::ffi::CStr23114     pub const fn name() -> &'static ::std::ffi::CStr {
23115         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_SEC_extension_451\0") }
23116     }
23117     pub const SPEC_VERSION: u32 = 0u32;
23118 }
23119 #[derive(Clone)]
23120 pub struct SecExtension451Fn {}
23121 unsafe impl Send for SecExtension451Fn {}
23122 unsafe impl Sync for SecExtension451Fn {}
23123 impl SecExtension451Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23124     pub fn load<F>(mut _f: F) -> Self
23125     where
23126         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23127     {
23128         Self {}
23129     }
23130 }
23131 impl NvExtension452Fn {
23132     #[inline]
name() -> &'static ::std::ffi::CStr23133     pub const fn name() -> &'static ::std::ffi::CStr {
23134         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_452\0") }
23135     }
23136     pub const SPEC_VERSION: u32 = 0u32;
23137 }
23138 #[derive(Clone)]
23139 pub struct NvExtension452Fn {}
23140 unsafe impl Send for NvExtension452Fn {}
23141 unsafe impl Sync for NvExtension452Fn {}
23142 impl NvExtension452Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23143     pub fn load<F>(mut _f: F) -> Self
23144     where
23145         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23146     {
23147         Self {}
23148     }
23149 }
23150 impl ArmExtension453Fn {
23151     #[inline]
name() -> &'static ::std::ffi::CStr23152     pub const fn name() -> &'static ::std::ffi::CStr {
23153         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_ARM_extension_453\0") }
23154     }
23155     pub const SPEC_VERSION: u32 = 0u32;
23156 }
23157 #[derive(Clone)]
23158 pub struct ArmExtension453Fn {}
23159 unsafe impl Send for ArmExtension453Fn {}
23160 unsafe impl Sync for ArmExtension453Fn {}
23161 impl ArmExtension453Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23162     pub fn load<F>(mut _f: F) -> Self
23163     where
23164         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23165     {
23166         Self {}
23167     }
23168 }
23169 #[doc = "Generated from 'VK_ARM_extension_453'"]
23170 impl AccessFlags2 {
23171     pub const RESERVED_49_ARM: Self =
23172         Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
23173     pub const RESERVED_50_ARM: Self =
23174         Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
23175 }
23176 #[doc = "Generated from 'VK_ARM_extension_453'"]
23177 impl PipelineStageFlags2 {
23178     pub const RESERVED_43_ARM: Self =
23179         Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
23180 }
23181 #[doc = "Generated from 'VK_ARM_extension_453'"]
23182 impl QueueFlags {
23183     pub const RESERVED_11_ARM: Self = Self(0b1000_0000_0000);
23184 }
23185 impl GoogleExtension454Fn {
23186     #[inline]
name() -> &'static ::std::ffi::CStr23187     pub const fn name() -> &'static ::std::ffi::CStr {
23188         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_extension_454\0") }
23189     }
23190     pub const SPEC_VERSION: u32 = 0u32;
23191 }
23192 #[derive(Clone)]
23193 pub struct GoogleExtension454Fn {}
23194 unsafe impl Send for GoogleExtension454Fn {}
23195 unsafe impl Sync for GoogleExtension454Fn {}
23196 impl GoogleExtension454Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23197     pub fn load<F>(mut _f: F) -> Self
23198     where
23199         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23200     {
23201         Self {}
23202     }
23203 }
23204 impl GoogleExtension455Fn {
23205     #[inline]
name() -> &'static ::std::ffi::CStr23206     pub const fn name() -> &'static ::std::ffi::CStr {
23207         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_extension_455\0") }
23208     }
23209     pub const SPEC_VERSION: u32 = 0u32;
23210 }
23211 #[derive(Clone)]
23212 pub struct GoogleExtension455Fn {}
23213 unsafe impl Send for GoogleExtension455Fn {}
23214 unsafe impl Sync for GoogleExtension455Fn {}
23215 impl GoogleExtension455Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23216     pub fn load<F>(mut _f: F) -> Self
23217     where
23218         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23219     {
23220         Self {}
23221     }
23222 }
23223 impl ExtExtendedDynamicState3Fn {
23224     #[inline]
name() -> &'static ::std::ffi::CStr23225     pub const fn name() -> &'static ::std::ffi::CStr {
23226         unsafe {
23227             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extended_dynamic_state3\0")
23228         }
23229     }
23230     pub const SPEC_VERSION: u32 = 2u32;
23231 }
23232 #[allow(non_camel_case_types)]
23233 pub type PFN_vkCmdSetTessellationDomainOriginEXT = unsafe extern "system" fn(
23234     command_buffer: CommandBuffer,
23235     domain_origin: TessellationDomainOrigin,
23236 );
23237 #[allow(non_camel_case_types)]
23238 pub type PFN_vkCmdSetDepthClampEnableEXT =
23239     unsafe extern "system" fn(command_buffer: CommandBuffer, depth_clamp_enable: Bool32);
23240 #[allow(non_camel_case_types)]
23241 pub type PFN_vkCmdSetPolygonModeEXT =
23242     unsafe extern "system" fn(command_buffer: CommandBuffer, polygon_mode: PolygonMode);
23243 #[allow(non_camel_case_types)]
23244 pub type PFN_vkCmdSetRasterizationSamplesEXT = unsafe extern "system" fn(
23245     command_buffer: CommandBuffer,
23246     rasterization_samples: SampleCountFlags,
23247 );
23248 #[allow(non_camel_case_types)]
23249 pub type PFN_vkCmdSetSampleMaskEXT = unsafe extern "system" fn(
23250     command_buffer: CommandBuffer,
23251     samples: SampleCountFlags,
23252     p_sample_mask: *const SampleMask,
23253 );
23254 #[allow(non_camel_case_types)]
23255 pub type PFN_vkCmdSetAlphaToCoverageEnableEXT =
23256     unsafe extern "system" fn(command_buffer: CommandBuffer, alpha_to_coverage_enable: Bool32);
23257 #[allow(non_camel_case_types)]
23258 pub type PFN_vkCmdSetAlphaToOneEnableEXT =
23259     unsafe extern "system" fn(command_buffer: CommandBuffer, alpha_to_one_enable: Bool32);
23260 #[allow(non_camel_case_types)]
23261 pub type PFN_vkCmdSetLogicOpEnableEXT =
23262     unsafe extern "system" fn(command_buffer: CommandBuffer, logic_op_enable: Bool32);
23263 #[allow(non_camel_case_types)]
23264 pub type PFN_vkCmdSetColorBlendEnableEXT = unsafe extern "system" fn(
23265     command_buffer: CommandBuffer,
23266     first_attachment: u32,
23267     attachment_count: u32,
23268     p_color_blend_enables: *const Bool32,
23269 );
23270 #[allow(non_camel_case_types)]
23271 pub type PFN_vkCmdSetColorBlendEquationEXT = unsafe extern "system" fn(
23272     command_buffer: CommandBuffer,
23273     first_attachment: u32,
23274     attachment_count: u32,
23275     p_color_blend_equations: *const ColorBlendEquationEXT,
23276 );
23277 #[allow(non_camel_case_types)]
23278 pub type PFN_vkCmdSetColorWriteMaskEXT = unsafe extern "system" fn(
23279     command_buffer: CommandBuffer,
23280     first_attachment: u32,
23281     attachment_count: u32,
23282     p_color_write_masks: *const ColorComponentFlags,
23283 );
23284 #[allow(non_camel_case_types)]
23285 pub type PFN_vkCmdSetRasterizationStreamEXT =
23286     unsafe extern "system" fn(command_buffer: CommandBuffer, rasterization_stream: u32);
23287 #[allow(non_camel_case_types)]
23288 pub type PFN_vkCmdSetConservativeRasterizationModeEXT = unsafe extern "system" fn(
23289     command_buffer: CommandBuffer,
23290     conservative_rasterization_mode: ConservativeRasterizationModeEXT,
23291 );
23292 #[allow(non_camel_case_types)]
23293 pub type PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT = unsafe extern "system" fn(
23294     command_buffer: CommandBuffer,
23295     extra_primitive_overestimation_size: f32,
23296 );
23297 #[allow(non_camel_case_types)]
23298 pub type PFN_vkCmdSetDepthClipEnableEXT =
23299     unsafe extern "system" fn(command_buffer: CommandBuffer, depth_clip_enable: Bool32);
23300 #[allow(non_camel_case_types)]
23301 pub type PFN_vkCmdSetSampleLocationsEnableEXT =
23302     unsafe extern "system" fn(command_buffer: CommandBuffer, sample_locations_enable: Bool32);
23303 #[allow(non_camel_case_types)]
23304 pub type PFN_vkCmdSetColorBlendAdvancedEXT = unsafe extern "system" fn(
23305     command_buffer: CommandBuffer,
23306     first_attachment: u32,
23307     attachment_count: u32,
23308     p_color_blend_advanced: *const ColorBlendAdvancedEXT,
23309 );
23310 #[allow(non_camel_case_types)]
23311 pub type PFN_vkCmdSetProvokingVertexModeEXT = unsafe extern "system" fn(
23312     command_buffer: CommandBuffer,
23313     provoking_vertex_mode: ProvokingVertexModeEXT,
23314 );
23315 #[allow(non_camel_case_types)]
23316 pub type PFN_vkCmdSetLineRasterizationModeEXT = unsafe extern "system" fn(
23317     command_buffer: CommandBuffer,
23318     line_rasterization_mode: LineRasterizationModeEXT,
23319 );
23320 #[allow(non_camel_case_types)]
23321 pub type PFN_vkCmdSetLineStippleEnableEXT =
23322     unsafe extern "system" fn(command_buffer: CommandBuffer, stippled_line_enable: Bool32);
23323 #[allow(non_camel_case_types)]
23324 pub type PFN_vkCmdSetDepthClipNegativeOneToOneEXT =
23325     unsafe extern "system" fn(command_buffer: CommandBuffer, negative_one_to_one: Bool32);
23326 #[allow(non_camel_case_types)]
23327 pub type PFN_vkCmdSetViewportWScalingEnableNV =
23328     unsafe extern "system" fn(command_buffer: CommandBuffer, viewport_w_scaling_enable: Bool32);
23329 #[allow(non_camel_case_types)]
23330 pub type PFN_vkCmdSetViewportSwizzleNV = unsafe extern "system" fn(
23331     command_buffer: CommandBuffer,
23332     first_viewport: u32,
23333     viewport_count: u32,
23334     p_viewport_swizzles: *const ViewportSwizzleNV,
23335 );
23336 #[allow(non_camel_case_types)]
23337 pub type PFN_vkCmdSetCoverageToColorEnableNV =
23338     unsafe extern "system" fn(command_buffer: CommandBuffer, coverage_to_color_enable: Bool32);
23339 #[allow(non_camel_case_types)]
23340 pub type PFN_vkCmdSetCoverageToColorLocationNV =
23341     unsafe extern "system" fn(command_buffer: CommandBuffer, coverage_to_color_location: u32);
23342 #[allow(non_camel_case_types)]
23343 pub type PFN_vkCmdSetCoverageModulationModeNV = unsafe extern "system" fn(
23344     command_buffer: CommandBuffer,
23345     coverage_modulation_mode: CoverageModulationModeNV,
23346 );
23347 #[allow(non_camel_case_types)]
23348 pub type PFN_vkCmdSetCoverageModulationTableEnableNV = unsafe extern "system" fn(
23349     command_buffer: CommandBuffer,
23350     coverage_modulation_table_enable: Bool32,
23351 );
23352 #[allow(non_camel_case_types)]
23353 pub type PFN_vkCmdSetCoverageModulationTableNV = unsafe extern "system" fn(
23354     command_buffer: CommandBuffer,
23355     coverage_modulation_table_count: u32,
23356     p_coverage_modulation_table: *const f32,
23357 );
23358 #[allow(non_camel_case_types)]
23359 pub type PFN_vkCmdSetShadingRateImageEnableNV =
23360     unsafe extern "system" fn(command_buffer: CommandBuffer, shading_rate_image_enable: Bool32);
23361 #[allow(non_camel_case_types)]
23362 pub type PFN_vkCmdSetRepresentativeFragmentTestEnableNV = unsafe extern "system" fn(
23363     command_buffer: CommandBuffer,
23364     representative_fragment_test_enable: Bool32,
23365 );
23366 #[allow(non_camel_case_types)]
23367 pub type PFN_vkCmdSetCoverageReductionModeNV = unsafe extern "system" fn(
23368     command_buffer: CommandBuffer,
23369     coverage_reduction_mode: CoverageReductionModeNV,
23370 );
23371 #[derive(Clone)]
23372 pub struct ExtExtendedDynamicState3Fn {
23373     pub cmd_set_tessellation_domain_origin_ext: PFN_vkCmdSetTessellationDomainOriginEXT,
23374     pub cmd_set_depth_clamp_enable_ext: PFN_vkCmdSetDepthClampEnableEXT,
23375     pub cmd_set_polygon_mode_ext: PFN_vkCmdSetPolygonModeEXT,
23376     pub cmd_set_rasterization_samples_ext: PFN_vkCmdSetRasterizationSamplesEXT,
23377     pub cmd_set_sample_mask_ext: PFN_vkCmdSetSampleMaskEXT,
23378     pub cmd_set_alpha_to_coverage_enable_ext: PFN_vkCmdSetAlphaToCoverageEnableEXT,
23379     pub cmd_set_alpha_to_one_enable_ext: PFN_vkCmdSetAlphaToOneEnableEXT,
23380     pub cmd_set_logic_op_enable_ext: PFN_vkCmdSetLogicOpEnableEXT,
23381     pub cmd_set_color_blend_enable_ext: PFN_vkCmdSetColorBlendEnableEXT,
23382     pub cmd_set_color_blend_equation_ext: PFN_vkCmdSetColorBlendEquationEXT,
23383     pub cmd_set_color_write_mask_ext: PFN_vkCmdSetColorWriteMaskEXT,
23384     pub cmd_set_rasterization_stream_ext: PFN_vkCmdSetRasterizationStreamEXT,
23385     pub cmd_set_conservative_rasterization_mode_ext: PFN_vkCmdSetConservativeRasterizationModeEXT,
23386     pub cmd_set_extra_primitive_overestimation_size_ext:
23387         PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT,
23388     pub cmd_set_depth_clip_enable_ext: PFN_vkCmdSetDepthClipEnableEXT,
23389     pub cmd_set_sample_locations_enable_ext: PFN_vkCmdSetSampleLocationsEnableEXT,
23390     pub cmd_set_color_blend_advanced_ext: PFN_vkCmdSetColorBlendAdvancedEXT,
23391     pub cmd_set_provoking_vertex_mode_ext: PFN_vkCmdSetProvokingVertexModeEXT,
23392     pub cmd_set_line_rasterization_mode_ext: PFN_vkCmdSetLineRasterizationModeEXT,
23393     pub cmd_set_line_stipple_enable_ext: PFN_vkCmdSetLineStippleEnableEXT,
23394     pub cmd_set_depth_clip_negative_one_to_one_ext: PFN_vkCmdSetDepthClipNegativeOneToOneEXT,
23395     pub cmd_set_viewport_w_scaling_enable_nv: PFN_vkCmdSetViewportWScalingEnableNV,
23396     pub cmd_set_viewport_swizzle_nv: PFN_vkCmdSetViewportSwizzleNV,
23397     pub cmd_set_coverage_to_color_enable_nv: PFN_vkCmdSetCoverageToColorEnableNV,
23398     pub cmd_set_coverage_to_color_location_nv: PFN_vkCmdSetCoverageToColorLocationNV,
23399     pub cmd_set_coverage_modulation_mode_nv: PFN_vkCmdSetCoverageModulationModeNV,
23400     pub cmd_set_coverage_modulation_table_enable_nv: PFN_vkCmdSetCoverageModulationTableEnableNV,
23401     pub cmd_set_coverage_modulation_table_nv: PFN_vkCmdSetCoverageModulationTableNV,
23402     pub cmd_set_shading_rate_image_enable_nv: PFN_vkCmdSetShadingRateImageEnableNV,
23403     pub cmd_set_representative_fragment_test_enable_nv:
23404         PFN_vkCmdSetRepresentativeFragmentTestEnableNV,
23405     pub cmd_set_coverage_reduction_mode_nv: PFN_vkCmdSetCoverageReductionModeNV,
23406 }
23407 unsafe impl Send for ExtExtendedDynamicState3Fn {}
23408 unsafe impl Sync for ExtExtendedDynamicState3Fn {}
23409 impl ExtExtendedDynamicState3Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23410     pub fn load<F>(mut _f: F) -> Self
23411     where
23412         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23413     {
23414         Self {
23415             cmd_set_tessellation_domain_origin_ext: unsafe {
23416                 unsafe extern "system" fn cmd_set_tessellation_domain_origin_ext(
23417                     _command_buffer: CommandBuffer,
23418                     _domain_origin: TessellationDomainOrigin,
23419                 ) {
23420                     panic!(concat!(
23421                         "Unable to load ",
23422                         stringify!(cmd_set_tessellation_domain_origin_ext)
23423                     ))
23424                 }
23425                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23426                     b"vkCmdSetTessellationDomainOriginEXT\0",
23427                 );
23428                 let val = _f(cname);
23429                 if val.is_null() {
23430                     cmd_set_tessellation_domain_origin_ext
23431                 } else {
23432                     ::std::mem::transmute(val)
23433                 }
23434             },
23435             cmd_set_depth_clamp_enable_ext: unsafe {
23436                 unsafe extern "system" fn cmd_set_depth_clamp_enable_ext(
23437                     _command_buffer: CommandBuffer,
23438                     _depth_clamp_enable: Bool32,
23439                 ) {
23440                     panic!(concat!(
23441                         "Unable to load ",
23442                         stringify!(cmd_set_depth_clamp_enable_ext)
23443                     ))
23444                 }
23445                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23446                     b"vkCmdSetDepthClampEnableEXT\0",
23447                 );
23448                 let val = _f(cname);
23449                 if val.is_null() {
23450                     cmd_set_depth_clamp_enable_ext
23451                 } else {
23452                     ::std::mem::transmute(val)
23453                 }
23454             },
23455             cmd_set_polygon_mode_ext: unsafe {
23456                 unsafe extern "system" fn cmd_set_polygon_mode_ext(
23457                     _command_buffer: CommandBuffer,
23458                     _polygon_mode: PolygonMode,
23459                 ) {
23460                     panic!(concat!(
23461                         "Unable to load ",
23462                         stringify!(cmd_set_polygon_mode_ext)
23463                     ))
23464                 }
23465                 let cname =
23466                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPolygonModeEXT\0");
23467                 let val = _f(cname);
23468                 if val.is_null() {
23469                     cmd_set_polygon_mode_ext
23470                 } else {
23471                     ::std::mem::transmute(val)
23472                 }
23473             },
23474             cmd_set_rasterization_samples_ext: unsafe {
23475                 unsafe extern "system" fn cmd_set_rasterization_samples_ext(
23476                     _command_buffer: CommandBuffer,
23477                     _rasterization_samples: SampleCountFlags,
23478                 ) {
23479                     panic!(concat!(
23480                         "Unable to load ",
23481                         stringify!(cmd_set_rasterization_samples_ext)
23482                     ))
23483                 }
23484                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23485                     b"vkCmdSetRasterizationSamplesEXT\0",
23486                 );
23487                 let val = _f(cname);
23488                 if val.is_null() {
23489                     cmd_set_rasterization_samples_ext
23490                 } else {
23491                     ::std::mem::transmute(val)
23492                 }
23493             },
23494             cmd_set_sample_mask_ext: unsafe {
23495                 unsafe extern "system" fn cmd_set_sample_mask_ext(
23496                     _command_buffer: CommandBuffer,
23497                     _samples: SampleCountFlags,
23498                     _p_sample_mask: *const SampleMask,
23499                 ) {
23500                     panic!(concat!(
23501                         "Unable to load ",
23502                         stringify!(cmd_set_sample_mask_ext)
23503                     ))
23504                 }
23505                 let cname =
23506                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetSampleMaskEXT\0");
23507                 let val = _f(cname);
23508                 if val.is_null() {
23509                     cmd_set_sample_mask_ext
23510                 } else {
23511                     ::std::mem::transmute(val)
23512                 }
23513             },
23514             cmd_set_alpha_to_coverage_enable_ext: unsafe {
23515                 unsafe extern "system" fn cmd_set_alpha_to_coverage_enable_ext(
23516                     _command_buffer: CommandBuffer,
23517                     _alpha_to_coverage_enable: Bool32,
23518                 ) {
23519                     panic!(concat!(
23520                         "Unable to load ",
23521                         stringify!(cmd_set_alpha_to_coverage_enable_ext)
23522                     ))
23523                 }
23524                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23525                     b"vkCmdSetAlphaToCoverageEnableEXT\0",
23526                 );
23527                 let val = _f(cname);
23528                 if val.is_null() {
23529                     cmd_set_alpha_to_coverage_enable_ext
23530                 } else {
23531                     ::std::mem::transmute(val)
23532                 }
23533             },
23534             cmd_set_alpha_to_one_enable_ext: unsafe {
23535                 unsafe extern "system" fn cmd_set_alpha_to_one_enable_ext(
23536                     _command_buffer: CommandBuffer,
23537                     _alpha_to_one_enable: Bool32,
23538                 ) {
23539                     panic!(concat!(
23540                         "Unable to load ",
23541                         stringify!(cmd_set_alpha_to_one_enable_ext)
23542                     ))
23543                 }
23544                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23545                     b"vkCmdSetAlphaToOneEnableEXT\0",
23546                 );
23547                 let val = _f(cname);
23548                 if val.is_null() {
23549                     cmd_set_alpha_to_one_enable_ext
23550                 } else {
23551                     ::std::mem::transmute(val)
23552                 }
23553             },
23554             cmd_set_logic_op_enable_ext: unsafe {
23555                 unsafe extern "system" fn cmd_set_logic_op_enable_ext(
23556                     _command_buffer: CommandBuffer,
23557                     _logic_op_enable: Bool32,
23558                 ) {
23559                     panic!(concat!(
23560                         "Unable to load ",
23561                         stringify!(cmd_set_logic_op_enable_ext)
23562                     ))
23563                 }
23564                 let cname =
23565                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLogicOpEnableEXT\0");
23566                 let val = _f(cname);
23567                 if val.is_null() {
23568                     cmd_set_logic_op_enable_ext
23569                 } else {
23570                     ::std::mem::transmute(val)
23571                 }
23572             },
23573             cmd_set_color_blend_enable_ext: unsafe {
23574                 unsafe extern "system" fn cmd_set_color_blend_enable_ext(
23575                     _command_buffer: CommandBuffer,
23576                     _first_attachment: u32,
23577                     _attachment_count: u32,
23578                     _p_color_blend_enables: *const Bool32,
23579                 ) {
23580                     panic!(concat!(
23581                         "Unable to load ",
23582                         stringify!(cmd_set_color_blend_enable_ext)
23583                     ))
23584                 }
23585                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23586                     b"vkCmdSetColorBlendEnableEXT\0",
23587                 );
23588                 let val = _f(cname);
23589                 if val.is_null() {
23590                     cmd_set_color_blend_enable_ext
23591                 } else {
23592                     ::std::mem::transmute(val)
23593                 }
23594             },
23595             cmd_set_color_blend_equation_ext: unsafe {
23596                 unsafe extern "system" fn cmd_set_color_blend_equation_ext(
23597                     _command_buffer: CommandBuffer,
23598                     _first_attachment: u32,
23599                     _attachment_count: u32,
23600                     _p_color_blend_equations: *const ColorBlendEquationEXT,
23601                 ) {
23602                     panic!(concat!(
23603                         "Unable to load ",
23604                         stringify!(cmd_set_color_blend_equation_ext)
23605                     ))
23606                 }
23607                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23608                     b"vkCmdSetColorBlendEquationEXT\0",
23609                 );
23610                 let val = _f(cname);
23611                 if val.is_null() {
23612                     cmd_set_color_blend_equation_ext
23613                 } else {
23614                     ::std::mem::transmute(val)
23615                 }
23616             },
23617             cmd_set_color_write_mask_ext: unsafe {
23618                 unsafe extern "system" fn cmd_set_color_write_mask_ext(
23619                     _command_buffer: CommandBuffer,
23620                     _first_attachment: u32,
23621                     _attachment_count: u32,
23622                     _p_color_write_masks: *const ColorComponentFlags,
23623                 ) {
23624                     panic!(concat!(
23625                         "Unable to load ",
23626                         stringify!(cmd_set_color_write_mask_ext)
23627                     ))
23628                 }
23629                 let cname =
23630                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorWriteMaskEXT\0");
23631                 let val = _f(cname);
23632                 if val.is_null() {
23633                     cmd_set_color_write_mask_ext
23634                 } else {
23635                     ::std::mem::transmute(val)
23636                 }
23637             },
23638             cmd_set_rasterization_stream_ext: unsafe {
23639                 unsafe extern "system" fn cmd_set_rasterization_stream_ext(
23640                     _command_buffer: CommandBuffer,
23641                     _rasterization_stream: u32,
23642                 ) {
23643                     panic!(concat!(
23644                         "Unable to load ",
23645                         stringify!(cmd_set_rasterization_stream_ext)
23646                     ))
23647                 }
23648                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23649                     b"vkCmdSetRasterizationStreamEXT\0",
23650                 );
23651                 let val = _f(cname);
23652                 if val.is_null() {
23653                     cmd_set_rasterization_stream_ext
23654                 } else {
23655                     ::std::mem::transmute(val)
23656                 }
23657             },
23658             cmd_set_conservative_rasterization_mode_ext: unsafe {
23659                 unsafe extern "system" fn cmd_set_conservative_rasterization_mode_ext(
23660                     _command_buffer: CommandBuffer,
23661                     _conservative_rasterization_mode: ConservativeRasterizationModeEXT,
23662                 ) {
23663                     panic!(concat!(
23664                         "Unable to load ",
23665                         stringify!(cmd_set_conservative_rasterization_mode_ext)
23666                     ))
23667                 }
23668                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23669                     b"vkCmdSetConservativeRasterizationModeEXT\0",
23670                 );
23671                 let val = _f(cname);
23672                 if val.is_null() {
23673                     cmd_set_conservative_rasterization_mode_ext
23674                 } else {
23675                     ::std::mem::transmute(val)
23676                 }
23677             },
23678             cmd_set_extra_primitive_overestimation_size_ext: unsafe {
23679                 unsafe extern "system" fn cmd_set_extra_primitive_overestimation_size_ext(
23680                     _command_buffer: CommandBuffer,
23681                     _extra_primitive_overestimation_size: f32,
23682                 ) {
23683                     panic!(concat!(
23684                         "Unable to load ",
23685                         stringify!(cmd_set_extra_primitive_overestimation_size_ext)
23686                     ))
23687                 }
23688                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23689                     b"vkCmdSetExtraPrimitiveOverestimationSizeEXT\0",
23690                 );
23691                 let val = _f(cname);
23692                 if val.is_null() {
23693                     cmd_set_extra_primitive_overestimation_size_ext
23694                 } else {
23695                     ::std::mem::transmute(val)
23696                 }
23697             },
23698             cmd_set_depth_clip_enable_ext: unsafe {
23699                 unsafe extern "system" fn cmd_set_depth_clip_enable_ext(
23700                     _command_buffer: CommandBuffer,
23701                     _depth_clip_enable: Bool32,
23702                 ) {
23703                     panic!(concat!(
23704                         "Unable to load ",
23705                         stringify!(cmd_set_depth_clip_enable_ext)
23706                     ))
23707                 }
23708                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23709                     b"vkCmdSetDepthClipEnableEXT\0",
23710                 );
23711                 let val = _f(cname);
23712                 if val.is_null() {
23713                     cmd_set_depth_clip_enable_ext
23714                 } else {
23715                     ::std::mem::transmute(val)
23716                 }
23717             },
23718             cmd_set_sample_locations_enable_ext: unsafe {
23719                 unsafe extern "system" fn cmd_set_sample_locations_enable_ext(
23720                     _command_buffer: CommandBuffer,
23721                     _sample_locations_enable: Bool32,
23722                 ) {
23723                     panic!(concat!(
23724                         "Unable to load ",
23725                         stringify!(cmd_set_sample_locations_enable_ext)
23726                     ))
23727                 }
23728                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23729                     b"vkCmdSetSampleLocationsEnableEXT\0",
23730                 );
23731                 let val = _f(cname);
23732                 if val.is_null() {
23733                     cmd_set_sample_locations_enable_ext
23734                 } else {
23735                     ::std::mem::transmute(val)
23736                 }
23737             },
23738             cmd_set_color_blend_advanced_ext: unsafe {
23739                 unsafe extern "system" fn cmd_set_color_blend_advanced_ext(
23740                     _command_buffer: CommandBuffer,
23741                     _first_attachment: u32,
23742                     _attachment_count: u32,
23743                     _p_color_blend_advanced: *const ColorBlendAdvancedEXT,
23744                 ) {
23745                     panic!(concat!(
23746                         "Unable to load ",
23747                         stringify!(cmd_set_color_blend_advanced_ext)
23748                     ))
23749                 }
23750                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23751                     b"vkCmdSetColorBlendAdvancedEXT\0",
23752                 );
23753                 let val = _f(cname);
23754                 if val.is_null() {
23755                     cmd_set_color_blend_advanced_ext
23756                 } else {
23757                     ::std::mem::transmute(val)
23758                 }
23759             },
23760             cmd_set_provoking_vertex_mode_ext: unsafe {
23761                 unsafe extern "system" fn cmd_set_provoking_vertex_mode_ext(
23762                     _command_buffer: CommandBuffer,
23763                     _provoking_vertex_mode: ProvokingVertexModeEXT,
23764                 ) {
23765                     panic!(concat!(
23766                         "Unable to load ",
23767                         stringify!(cmd_set_provoking_vertex_mode_ext)
23768                     ))
23769                 }
23770                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23771                     b"vkCmdSetProvokingVertexModeEXT\0",
23772                 );
23773                 let val = _f(cname);
23774                 if val.is_null() {
23775                     cmd_set_provoking_vertex_mode_ext
23776                 } else {
23777                     ::std::mem::transmute(val)
23778                 }
23779             },
23780             cmd_set_line_rasterization_mode_ext: unsafe {
23781                 unsafe extern "system" fn cmd_set_line_rasterization_mode_ext(
23782                     _command_buffer: CommandBuffer,
23783                     _line_rasterization_mode: LineRasterizationModeEXT,
23784                 ) {
23785                     panic!(concat!(
23786                         "Unable to load ",
23787                         stringify!(cmd_set_line_rasterization_mode_ext)
23788                     ))
23789                 }
23790                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23791                     b"vkCmdSetLineRasterizationModeEXT\0",
23792                 );
23793                 let val = _f(cname);
23794                 if val.is_null() {
23795                     cmd_set_line_rasterization_mode_ext
23796                 } else {
23797                     ::std::mem::transmute(val)
23798                 }
23799             },
23800             cmd_set_line_stipple_enable_ext: unsafe {
23801                 unsafe extern "system" fn cmd_set_line_stipple_enable_ext(
23802                     _command_buffer: CommandBuffer,
23803                     _stippled_line_enable: Bool32,
23804                 ) {
23805                     panic!(concat!(
23806                         "Unable to load ",
23807                         stringify!(cmd_set_line_stipple_enable_ext)
23808                     ))
23809                 }
23810                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23811                     b"vkCmdSetLineStippleEnableEXT\0",
23812                 );
23813                 let val = _f(cname);
23814                 if val.is_null() {
23815                     cmd_set_line_stipple_enable_ext
23816                 } else {
23817                     ::std::mem::transmute(val)
23818                 }
23819             },
23820             cmd_set_depth_clip_negative_one_to_one_ext: unsafe {
23821                 unsafe extern "system" fn cmd_set_depth_clip_negative_one_to_one_ext(
23822                     _command_buffer: CommandBuffer,
23823                     _negative_one_to_one: Bool32,
23824                 ) {
23825                     panic!(concat!(
23826                         "Unable to load ",
23827                         stringify!(cmd_set_depth_clip_negative_one_to_one_ext)
23828                     ))
23829                 }
23830                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23831                     b"vkCmdSetDepthClipNegativeOneToOneEXT\0",
23832                 );
23833                 let val = _f(cname);
23834                 if val.is_null() {
23835                     cmd_set_depth_clip_negative_one_to_one_ext
23836                 } else {
23837                     ::std::mem::transmute(val)
23838                 }
23839             },
23840             cmd_set_viewport_w_scaling_enable_nv: unsafe {
23841                 unsafe extern "system" fn cmd_set_viewport_w_scaling_enable_nv(
23842                     _command_buffer: CommandBuffer,
23843                     _viewport_w_scaling_enable: Bool32,
23844                 ) {
23845                     panic!(concat!(
23846                         "Unable to load ",
23847                         stringify!(cmd_set_viewport_w_scaling_enable_nv)
23848                     ))
23849                 }
23850                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23851                     b"vkCmdSetViewportWScalingEnableNV\0",
23852                 );
23853                 let val = _f(cname);
23854                 if val.is_null() {
23855                     cmd_set_viewport_w_scaling_enable_nv
23856                 } else {
23857                     ::std::mem::transmute(val)
23858                 }
23859             },
23860             cmd_set_viewport_swizzle_nv: unsafe {
23861                 unsafe extern "system" fn cmd_set_viewport_swizzle_nv(
23862                     _command_buffer: CommandBuffer,
23863                     _first_viewport: u32,
23864                     _viewport_count: u32,
23865                     _p_viewport_swizzles: *const ViewportSwizzleNV,
23866                 ) {
23867                     panic!(concat!(
23868                         "Unable to load ",
23869                         stringify!(cmd_set_viewport_swizzle_nv)
23870                     ))
23871                 }
23872                 let cname =
23873                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetViewportSwizzleNV\0");
23874                 let val = _f(cname);
23875                 if val.is_null() {
23876                     cmd_set_viewport_swizzle_nv
23877                 } else {
23878                     ::std::mem::transmute(val)
23879                 }
23880             },
23881             cmd_set_coverage_to_color_enable_nv: unsafe {
23882                 unsafe extern "system" fn cmd_set_coverage_to_color_enable_nv(
23883                     _command_buffer: CommandBuffer,
23884                     _coverage_to_color_enable: Bool32,
23885                 ) {
23886                     panic!(concat!(
23887                         "Unable to load ",
23888                         stringify!(cmd_set_coverage_to_color_enable_nv)
23889                     ))
23890                 }
23891                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23892                     b"vkCmdSetCoverageToColorEnableNV\0",
23893                 );
23894                 let val = _f(cname);
23895                 if val.is_null() {
23896                     cmd_set_coverage_to_color_enable_nv
23897                 } else {
23898                     ::std::mem::transmute(val)
23899                 }
23900             },
23901             cmd_set_coverage_to_color_location_nv: unsafe {
23902                 unsafe extern "system" fn cmd_set_coverage_to_color_location_nv(
23903                     _command_buffer: CommandBuffer,
23904                     _coverage_to_color_location: u32,
23905                 ) {
23906                     panic!(concat!(
23907                         "Unable to load ",
23908                         stringify!(cmd_set_coverage_to_color_location_nv)
23909                     ))
23910                 }
23911                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23912                     b"vkCmdSetCoverageToColorLocationNV\0",
23913                 );
23914                 let val = _f(cname);
23915                 if val.is_null() {
23916                     cmd_set_coverage_to_color_location_nv
23917                 } else {
23918                     ::std::mem::transmute(val)
23919                 }
23920             },
23921             cmd_set_coverage_modulation_mode_nv: unsafe {
23922                 unsafe extern "system" fn cmd_set_coverage_modulation_mode_nv(
23923                     _command_buffer: CommandBuffer,
23924                     _coverage_modulation_mode: CoverageModulationModeNV,
23925                 ) {
23926                     panic!(concat!(
23927                         "Unable to load ",
23928                         stringify!(cmd_set_coverage_modulation_mode_nv)
23929                     ))
23930                 }
23931                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23932                     b"vkCmdSetCoverageModulationModeNV\0",
23933                 );
23934                 let val = _f(cname);
23935                 if val.is_null() {
23936                     cmd_set_coverage_modulation_mode_nv
23937                 } else {
23938                     ::std::mem::transmute(val)
23939                 }
23940             },
23941             cmd_set_coverage_modulation_table_enable_nv: unsafe {
23942                 unsafe extern "system" fn cmd_set_coverage_modulation_table_enable_nv(
23943                     _command_buffer: CommandBuffer,
23944                     _coverage_modulation_table_enable: Bool32,
23945                 ) {
23946                     panic!(concat!(
23947                         "Unable to load ",
23948                         stringify!(cmd_set_coverage_modulation_table_enable_nv)
23949                     ))
23950                 }
23951                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23952                     b"vkCmdSetCoverageModulationTableEnableNV\0",
23953                 );
23954                 let val = _f(cname);
23955                 if val.is_null() {
23956                     cmd_set_coverage_modulation_table_enable_nv
23957                 } else {
23958                     ::std::mem::transmute(val)
23959                 }
23960             },
23961             cmd_set_coverage_modulation_table_nv: unsafe {
23962                 unsafe extern "system" fn cmd_set_coverage_modulation_table_nv(
23963                     _command_buffer: CommandBuffer,
23964                     _coverage_modulation_table_count: u32,
23965                     _p_coverage_modulation_table: *const f32,
23966                 ) {
23967                     panic!(concat!(
23968                         "Unable to load ",
23969                         stringify!(cmd_set_coverage_modulation_table_nv)
23970                     ))
23971                 }
23972                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23973                     b"vkCmdSetCoverageModulationTableNV\0",
23974                 );
23975                 let val = _f(cname);
23976                 if val.is_null() {
23977                     cmd_set_coverage_modulation_table_nv
23978                 } else {
23979                     ::std::mem::transmute(val)
23980                 }
23981             },
23982             cmd_set_shading_rate_image_enable_nv: unsafe {
23983                 unsafe extern "system" fn cmd_set_shading_rate_image_enable_nv(
23984                     _command_buffer: CommandBuffer,
23985                     _shading_rate_image_enable: Bool32,
23986                 ) {
23987                     panic!(concat!(
23988                         "Unable to load ",
23989                         stringify!(cmd_set_shading_rate_image_enable_nv)
23990                     ))
23991                 }
23992                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23993                     b"vkCmdSetShadingRateImageEnableNV\0",
23994                 );
23995                 let val = _f(cname);
23996                 if val.is_null() {
23997                     cmd_set_shading_rate_image_enable_nv
23998                 } else {
23999                     ::std::mem::transmute(val)
24000                 }
24001             },
24002             cmd_set_representative_fragment_test_enable_nv: unsafe {
24003                 unsafe extern "system" fn cmd_set_representative_fragment_test_enable_nv(
24004                     _command_buffer: CommandBuffer,
24005                     _representative_fragment_test_enable: Bool32,
24006                 ) {
24007                     panic!(concat!(
24008                         "Unable to load ",
24009                         stringify!(cmd_set_representative_fragment_test_enable_nv)
24010                     ))
24011                 }
24012                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
24013                     b"vkCmdSetRepresentativeFragmentTestEnableNV\0",
24014                 );
24015                 let val = _f(cname);
24016                 if val.is_null() {
24017                     cmd_set_representative_fragment_test_enable_nv
24018                 } else {
24019                     ::std::mem::transmute(val)
24020                 }
24021             },
24022             cmd_set_coverage_reduction_mode_nv: unsafe {
24023                 unsafe extern "system" fn cmd_set_coverage_reduction_mode_nv(
24024                     _command_buffer: CommandBuffer,
24025                     _coverage_reduction_mode: CoverageReductionModeNV,
24026                 ) {
24027                     panic!(concat!(
24028                         "Unable to load ",
24029                         stringify!(cmd_set_coverage_reduction_mode_nv)
24030                     ))
24031                 }
24032                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
24033                     b"vkCmdSetCoverageReductionModeNV\0",
24034                 );
24035                 let val = _f(cname);
24036                 if val.is_null() {
24037                     cmd_set_coverage_reduction_mode_nv
24038                 } else {
24039                     ::std::mem::transmute(val)
24040                 }
24041             },
24042         }
24043     }
24044 }
24045 #[doc = "Generated from 'VK_EXT_extended_dynamic_state3'"]
24046 impl DynamicState {
24047     pub const TESSELLATION_DOMAIN_ORIGIN_EXT: Self = Self(1_000_455_002);
24048     pub const DEPTH_CLAMP_ENABLE_EXT: Self = Self(1_000_455_003);
24049     pub const POLYGON_MODE_EXT: Self = Self(1_000_455_004);
24050     pub const RASTERIZATION_SAMPLES_EXT: Self = Self(1_000_455_005);
24051     pub const SAMPLE_MASK_EXT: Self = Self(1_000_455_006);
24052     pub const ALPHA_TO_COVERAGE_ENABLE_EXT: Self = Self(1_000_455_007);
24053     pub const ALPHA_TO_ONE_ENABLE_EXT: Self = Self(1_000_455_008);
24054     pub const LOGIC_OP_ENABLE_EXT: Self = Self(1_000_455_009);
24055     pub const COLOR_BLEND_ENABLE_EXT: Self = Self(1_000_455_010);
24056     pub const COLOR_BLEND_EQUATION_EXT: Self = Self(1_000_455_011);
24057     pub const COLOR_WRITE_MASK_EXT: Self = Self(1_000_455_012);
24058     pub const RASTERIZATION_STREAM_EXT: Self = Self(1_000_455_013);
24059     pub const CONSERVATIVE_RASTERIZATION_MODE_EXT: Self = Self(1_000_455_014);
24060     pub const EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT: Self = Self(1_000_455_015);
24061     pub const DEPTH_CLIP_ENABLE_EXT: Self = Self(1_000_455_016);
24062     pub const SAMPLE_LOCATIONS_ENABLE_EXT: Self = Self(1_000_455_017);
24063     pub const COLOR_BLEND_ADVANCED_EXT: Self = Self(1_000_455_018);
24064     pub const PROVOKING_VERTEX_MODE_EXT: Self = Self(1_000_455_019);
24065     pub const LINE_RASTERIZATION_MODE_EXT: Self = Self(1_000_455_020);
24066     pub const LINE_STIPPLE_ENABLE_EXT: Self = Self(1_000_455_021);
24067     pub const DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT: Self = Self(1_000_455_022);
24068     pub const VIEWPORT_W_SCALING_ENABLE_NV: Self = Self(1_000_455_023);
24069     pub const VIEWPORT_SWIZZLE_NV: Self = Self(1_000_455_024);
24070     pub const COVERAGE_TO_COLOR_ENABLE_NV: Self = Self(1_000_455_025);
24071     pub const COVERAGE_TO_COLOR_LOCATION_NV: Self = Self(1_000_455_026);
24072     pub const COVERAGE_MODULATION_MODE_NV: Self = Self(1_000_455_027);
24073     pub const COVERAGE_MODULATION_TABLE_ENABLE_NV: Self = Self(1_000_455_028);
24074     pub const COVERAGE_MODULATION_TABLE_NV: Self = Self(1_000_455_029);
24075     pub const SHADING_RATE_IMAGE_ENABLE_NV: Self = Self(1_000_455_030);
24076     pub const REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV: Self = Self(1_000_455_031);
24077     pub const COVERAGE_REDUCTION_MODE_NV: Self = Self(1_000_455_032);
24078 }
24079 #[doc = "Generated from 'VK_EXT_extended_dynamic_state3'"]
24080 impl StructureType {
24081     pub const PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT: Self = Self(1_000_455_000);
24082     pub const PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT: Self = Self(1_000_455_001);
24083 }
24084 impl ExtExtension457Fn {
24085     #[inline]
name() -> &'static ::std::ffi::CStr24086     pub const fn name() -> &'static ::std::ffi::CStr {
24087         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_457\0") }
24088     }
24089     pub const SPEC_VERSION: u32 = 0u32;
24090 }
24091 #[derive(Clone)]
24092 pub struct ExtExtension457Fn {}
24093 unsafe impl Send for ExtExtension457Fn {}
24094 unsafe impl Sync for ExtExtension457Fn {}
24095 impl ExtExtension457Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24096     pub fn load<F>(mut _f: F) -> Self
24097     where
24098         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24099     {
24100         Self {}
24101     }
24102 }
24103 impl ExtExtension458Fn {
24104     #[inline]
name() -> &'static ::std::ffi::CStr24105     pub const fn name() -> &'static ::std::ffi::CStr {
24106         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_458\0") }
24107     }
24108     pub const SPEC_VERSION: u32 = 0u32;
24109 }
24110 #[derive(Clone)]
24111 pub struct ExtExtension458Fn {}
24112 unsafe impl Send for ExtExtension458Fn {}
24113 unsafe impl Sync for ExtExtension458Fn {}
24114 impl ExtExtension458Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24115     pub fn load<F>(mut _f: F) -> Self
24116     where
24117         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24118     {
24119         Self {}
24120     }
24121 }
24122 impl ExtSubpassMergeFeedbackFn {
24123     #[inline]
name() -> &'static ::std::ffi::CStr24124     pub const fn name() -> &'static ::std::ffi::CStr {
24125         unsafe {
24126             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_subpass_merge_feedback\0")
24127         }
24128     }
24129     pub const SPEC_VERSION: u32 = 2u32;
24130 }
24131 #[derive(Clone)]
24132 pub struct ExtSubpassMergeFeedbackFn {}
24133 unsafe impl Send for ExtSubpassMergeFeedbackFn {}
24134 unsafe impl Sync for ExtSubpassMergeFeedbackFn {}
24135 impl ExtSubpassMergeFeedbackFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24136     pub fn load<F>(mut _f: F) -> Self
24137     where
24138         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24139     {
24140         Self {}
24141     }
24142 }
24143 #[doc = "Generated from 'VK_EXT_subpass_merge_feedback'"]
24144 impl StructureType {
24145     pub const PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT: Self = Self(1_000_458_000);
24146     pub const RENDER_PASS_CREATION_CONTROL_EXT: Self = Self(1_000_458_001);
24147     pub const RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT: Self = Self(1_000_458_002);
24148     pub const RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT: Self = Self(1_000_458_003);
24149 }
24150 impl LunargDirectDriverLoadingFn {
24151     #[inline]
name() -> &'static ::std::ffi::CStr24152     pub const fn name() -> &'static ::std::ffi::CStr {
24153         unsafe {
24154             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_LUNARG_direct_driver_loading\0")
24155         }
24156     }
24157     pub const SPEC_VERSION: u32 = 1u32;
24158 }
24159 #[derive(Clone)]
24160 pub struct LunargDirectDriverLoadingFn {}
24161 unsafe impl Send for LunargDirectDriverLoadingFn {}
24162 unsafe impl Sync for LunargDirectDriverLoadingFn {}
24163 impl LunargDirectDriverLoadingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24164     pub fn load<F>(mut _f: F) -> Self
24165     where
24166         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24167     {
24168         Self {}
24169     }
24170 }
24171 #[doc = "Generated from 'VK_LUNARG_direct_driver_loading'"]
24172 impl StructureType {
24173     pub const DIRECT_DRIVER_LOADING_INFO_LUNARG: Self = Self(1_000_459_000);
24174     pub const DIRECT_DRIVER_LOADING_LIST_LUNARG: Self = Self(1_000_459_001);
24175 }
24176 impl ExtExtension461Fn {
24177     #[inline]
name() -> &'static ::std::ffi::CStr24178     pub const fn name() -> &'static ::std::ffi::CStr {
24179         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_461\0") }
24180     }
24181     pub const SPEC_VERSION: u32 = 0u32;
24182 }
24183 #[derive(Clone)]
24184 pub struct ExtExtension461Fn {}
24185 unsafe impl Send for ExtExtension461Fn {}
24186 unsafe impl Sync for ExtExtension461Fn {}
24187 impl ExtExtension461Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24188     pub fn load<F>(mut _f: F) -> Self
24189     where
24190         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24191     {
24192         Self {}
24193     }
24194 }
24195 #[doc = "Generated from 'VK_EXT_extension_461'"]
24196 impl FormatFeatureFlags2 {
24197     pub const RESERVED_39_EXT: Self = Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
24198 }
24199 #[doc = "Generated from 'VK_EXT_extension_461'"]
24200 impl ImageUsageFlags {
24201     pub const RESERVED_23_EXT: Self = Self(0b1000_0000_0000_0000_0000_0000);
24202 }
24203 impl ExtExtension462Fn {
24204     #[inline]
name() -> &'static ::std::ffi::CStr24205     pub const fn name() -> &'static ::std::ffi::CStr {
24206         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_462\0") }
24207     }
24208     pub const SPEC_VERSION: u32 = 0u32;
24209 }
24210 #[derive(Clone)]
24211 pub struct ExtExtension462Fn {}
24212 unsafe impl Send for ExtExtension462Fn {}
24213 unsafe impl Sync for ExtExtension462Fn {}
24214 impl ExtExtension462Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24215     pub fn load<F>(mut _f: F) -> Self
24216     where
24217         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24218     {
24219         Self {}
24220     }
24221 }
24222 impl ExtShaderModuleIdentifierFn {
24223     #[inline]
name() -> &'static ::std::ffi::CStr24224     pub const fn name() -> &'static ::std::ffi::CStr {
24225         unsafe {
24226             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_module_identifier\0")
24227         }
24228     }
24229     pub const SPEC_VERSION: u32 = 1u32;
24230 }
24231 #[allow(non_camel_case_types)]
24232 pub type PFN_vkGetShaderModuleIdentifierEXT = unsafe extern "system" fn(
24233     device: Device,
24234     shader_module: ShaderModule,
24235     p_identifier: *mut ShaderModuleIdentifierEXT,
24236 );
24237 #[allow(non_camel_case_types)]
24238 pub type PFN_vkGetShaderModuleCreateInfoIdentifierEXT = unsafe extern "system" fn(
24239     device: Device,
24240     p_create_info: *const ShaderModuleCreateInfo,
24241     p_identifier: *mut ShaderModuleIdentifierEXT,
24242 );
24243 #[derive(Clone)]
24244 pub struct ExtShaderModuleIdentifierFn {
24245     pub get_shader_module_identifier_ext: PFN_vkGetShaderModuleIdentifierEXT,
24246     pub get_shader_module_create_info_identifier_ext: PFN_vkGetShaderModuleCreateInfoIdentifierEXT,
24247 }
24248 unsafe impl Send for ExtShaderModuleIdentifierFn {}
24249 unsafe impl Sync for ExtShaderModuleIdentifierFn {}
24250 impl ExtShaderModuleIdentifierFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24251     pub fn load<F>(mut _f: F) -> Self
24252     where
24253         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24254     {
24255         Self {
24256             get_shader_module_identifier_ext: unsafe {
24257                 unsafe extern "system" fn get_shader_module_identifier_ext(
24258                     _device: Device,
24259                     _shader_module: ShaderModule,
24260                     _p_identifier: *mut ShaderModuleIdentifierEXT,
24261                 ) {
24262                     panic!(concat!(
24263                         "Unable to load ",
24264                         stringify!(get_shader_module_identifier_ext)
24265                     ))
24266                 }
24267                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
24268                     b"vkGetShaderModuleIdentifierEXT\0",
24269                 );
24270                 let val = _f(cname);
24271                 if val.is_null() {
24272                     get_shader_module_identifier_ext
24273                 } else {
24274                     ::std::mem::transmute(val)
24275                 }
24276             },
24277             get_shader_module_create_info_identifier_ext: unsafe {
24278                 unsafe extern "system" fn get_shader_module_create_info_identifier_ext(
24279                     _device: Device,
24280                     _p_create_info: *const ShaderModuleCreateInfo,
24281                     _p_identifier: *mut ShaderModuleIdentifierEXT,
24282                 ) {
24283                     panic!(concat!(
24284                         "Unable to load ",
24285                         stringify!(get_shader_module_create_info_identifier_ext)
24286                     ))
24287                 }
24288                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
24289                     b"vkGetShaderModuleCreateInfoIdentifierEXT\0",
24290                 );
24291                 let val = _f(cname);
24292                 if val.is_null() {
24293                     get_shader_module_create_info_identifier_ext
24294                 } else {
24295                     ::std::mem::transmute(val)
24296                 }
24297             },
24298         }
24299     }
24300 }
24301 #[doc = "Generated from 'VK_EXT_shader_module_identifier'"]
24302 impl StructureType {
24303     pub const PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT: Self = Self(1_000_462_000);
24304     pub const PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT: Self = Self(1_000_462_001);
24305     pub const PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT: Self = Self(1_000_462_002);
24306     pub const SHADER_MODULE_IDENTIFIER_EXT: Self = Self(1_000_462_003);
24307 }
24308 impl ExtRasterizationOrderAttachmentAccessFn {
24309     #[inline]
name() -> &'static ::std::ffi::CStr24310     pub const fn name() -> &'static ::std::ffi::CStr {
24311         unsafe {
24312             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
24313                 b"VK_EXT_rasterization_order_attachment_access\0",
24314             )
24315         }
24316     }
24317     pub const SPEC_VERSION: u32 = 1u32;
24318 }
24319 #[derive(Clone)]
24320 pub struct ExtRasterizationOrderAttachmentAccessFn {}
24321 unsafe impl Send for ExtRasterizationOrderAttachmentAccessFn {}
24322 unsafe impl Sync for ExtRasterizationOrderAttachmentAccessFn {}
24323 impl ExtRasterizationOrderAttachmentAccessFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24324     pub fn load<F>(mut _f: F) -> Self
24325     where
24326         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24327     {
24328         Self {}
24329     }
24330 }
24331 #[doc = "Generated from 'VK_EXT_rasterization_order_attachment_access'"]
24332 impl PipelineColorBlendStateCreateFlags {
24333     pub const RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXT: Self = Self(0b1);
24334 }
24335 #[doc = "Generated from 'VK_EXT_rasterization_order_attachment_access'"]
24336 impl PipelineDepthStencilStateCreateFlags {
24337     pub const RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_EXT: Self = Self(0b1);
24338     pub const RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_EXT: Self = Self(0b10);
24339 }
24340 #[doc = "Generated from 'VK_EXT_rasterization_order_attachment_access'"]
24341 impl StructureType {
24342     pub const PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT: Self =
24343         Self(1_000_342_000);
24344 }
24345 #[doc = "Generated from 'VK_EXT_rasterization_order_attachment_access'"]
24346 impl SubpassDescriptionFlags {
24347     pub const RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_EXT: Self = Self(0b1_0000);
24348     pub const RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_EXT: Self = Self(0b10_0000);
24349     pub const RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_EXT: Self = Self(0b100_0000);
24350 }
24351 impl NvOpticalFlowFn {
24352     #[inline]
name() -> &'static ::std::ffi::CStr24353     pub const fn name() -> &'static ::std::ffi::CStr {
24354         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_optical_flow\0") }
24355     }
24356     pub const SPEC_VERSION: u32 = 1u32;
24357 }
24358 #[allow(non_camel_case_types)]
24359 pub type PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV = unsafe extern "system" fn(
24360     physical_device: PhysicalDevice,
24361     p_optical_flow_image_format_info: *const OpticalFlowImageFormatInfoNV,
24362     p_format_count: *mut u32,
24363     p_image_format_properties: *mut OpticalFlowImageFormatPropertiesNV,
24364 ) -> Result;
24365 #[allow(non_camel_case_types)]
24366 pub type PFN_vkCreateOpticalFlowSessionNV = unsafe extern "system" fn(
24367     device: Device,
24368     p_create_info: *const OpticalFlowSessionCreateInfoNV,
24369     p_allocator: *const AllocationCallbacks,
24370     p_session: *mut OpticalFlowSessionNV,
24371 ) -> Result;
24372 #[allow(non_camel_case_types)]
24373 pub type PFN_vkDestroyOpticalFlowSessionNV = unsafe extern "system" fn(
24374     device: Device,
24375     session: OpticalFlowSessionNV,
24376     p_allocator: *const AllocationCallbacks,
24377 );
24378 #[allow(non_camel_case_types)]
24379 pub type PFN_vkBindOpticalFlowSessionImageNV = unsafe extern "system" fn(
24380     device: Device,
24381     session: OpticalFlowSessionNV,
24382     binding_point: OpticalFlowSessionBindingPointNV,
24383     view: ImageView,
24384     layout: ImageLayout,
24385 ) -> Result;
24386 #[allow(non_camel_case_types)]
24387 pub type PFN_vkCmdOpticalFlowExecuteNV = unsafe extern "system" fn(
24388     command_buffer: CommandBuffer,
24389     session: OpticalFlowSessionNV,
24390     p_execute_info: *const OpticalFlowExecuteInfoNV,
24391 );
24392 #[derive(Clone)]
24393 pub struct NvOpticalFlowFn {
24394     pub get_physical_device_optical_flow_image_formats_nv:
24395         PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV,
24396     pub create_optical_flow_session_nv: PFN_vkCreateOpticalFlowSessionNV,
24397     pub destroy_optical_flow_session_nv: PFN_vkDestroyOpticalFlowSessionNV,
24398     pub bind_optical_flow_session_image_nv: PFN_vkBindOpticalFlowSessionImageNV,
24399     pub cmd_optical_flow_execute_nv: PFN_vkCmdOpticalFlowExecuteNV,
24400 }
24401 unsafe impl Send for NvOpticalFlowFn {}
24402 unsafe impl Sync for NvOpticalFlowFn {}
24403 impl NvOpticalFlowFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24404     pub fn load<F>(mut _f: F) -> Self
24405     where
24406         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24407     {
24408         Self {
24409             get_physical_device_optical_flow_image_formats_nv: unsafe {
24410                 unsafe extern "system" fn get_physical_device_optical_flow_image_formats_nv(
24411                     _physical_device: PhysicalDevice,
24412                     _p_optical_flow_image_format_info: *const OpticalFlowImageFormatInfoNV,
24413                     _p_format_count: *mut u32,
24414                     _p_image_format_properties: *mut OpticalFlowImageFormatPropertiesNV,
24415                 ) -> Result {
24416                     panic!(concat!(
24417                         "Unable to load ",
24418                         stringify!(get_physical_device_optical_flow_image_formats_nv)
24419                     ))
24420                 }
24421                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
24422                     b"vkGetPhysicalDeviceOpticalFlowImageFormatsNV\0",
24423                 );
24424                 let val = _f(cname);
24425                 if val.is_null() {
24426                     get_physical_device_optical_flow_image_formats_nv
24427                 } else {
24428                     ::std::mem::transmute(val)
24429                 }
24430             },
24431             create_optical_flow_session_nv: unsafe {
24432                 unsafe extern "system" fn create_optical_flow_session_nv(
24433                     _device: Device,
24434                     _p_create_info: *const OpticalFlowSessionCreateInfoNV,
24435                     _p_allocator: *const AllocationCallbacks,
24436                     _p_session: *mut OpticalFlowSessionNV,
24437                 ) -> Result {
24438                     panic!(concat!(
24439                         "Unable to load ",
24440                         stringify!(create_optical_flow_session_nv)
24441                     ))
24442                 }
24443                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
24444                     b"vkCreateOpticalFlowSessionNV\0",
24445                 );
24446                 let val = _f(cname);
24447                 if val.is_null() {
24448                     create_optical_flow_session_nv
24449                 } else {
24450                     ::std::mem::transmute(val)
24451                 }
24452             },
24453             destroy_optical_flow_session_nv: unsafe {
24454                 unsafe extern "system" fn destroy_optical_flow_session_nv(
24455                     _device: Device,
24456                     _session: OpticalFlowSessionNV,
24457                     _p_allocator: *const AllocationCallbacks,
24458                 ) {
24459                     panic!(concat!(
24460                         "Unable to load ",
24461                         stringify!(destroy_optical_flow_session_nv)
24462                     ))
24463                 }
24464                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
24465                     b"vkDestroyOpticalFlowSessionNV\0",
24466                 );
24467                 let val = _f(cname);
24468                 if val.is_null() {
24469                     destroy_optical_flow_session_nv
24470                 } else {
24471                     ::std::mem::transmute(val)
24472                 }
24473             },
24474             bind_optical_flow_session_image_nv: unsafe {
24475                 unsafe extern "system" fn bind_optical_flow_session_image_nv(
24476                     _device: Device,
24477                     _session: OpticalFlowSessionNV,
24478                     _binding_point: OpticalFlowSessionBindingPointNV,
24479                     _view: ImageView,
24480                     _layout: ImageLayout,
24481                 ) -> Result {
24482                     panic!(concat!(
24483                         "Unable to load ",
24484                         stringify!(bind_optical_flow_session_image_nv)
24485                     ))
24486                 }
24487                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
24488                     b"vkBindOpticalFlowSessionImageNV\0",
24489                 );
24490                 let val = _f(cname);
24491                 if val.is_null() {
24492                     bind_optical_flow_session_image_nv
24493                 } else {
24494                     ::std::mem::transmute(val)
24495                 }
24496             },
24497             cmd_optical_flow_execute_nv: unsafe {
24498                 unsafe extern "system" fn cmd_optical_flow_execute_nv(
24499                     _command_buffer: CommandBuffer,
24500                     _session: OpticalFlowSessionNV,
24501                     _p_execute_info: *const OpticalFlowExecuteInfoNV,
24502                 ) {
24503                     panic!(concat!(
24504                         "Unable to load ",
24505                         stringify!(cmd_optical_flow_execute_nv)
24506                     ))
24507                 }
24508                 let cname =
24509                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdOpticalFlowExecuteNV\0");
24510                 let val = _f(cname);
24511                 if val.is_null() {
24512                     cmd_optical_flow_execute_nv
24513                 } else {
24514                     ::std::mem::transmute(val)
24515                 }
24516             },
24517         }
24518     }
24519 }
24520 #[doc = "Generated from 'VK_NV_optical_flow'"]
24521 impl AccessFlags2 {
24522     pub const OPTICAL_FLOW_READ_NV: Self =
24523         Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
24524     pub const OPTICAL_FLOW_WRITE_NV: Self =
24525         Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
24526 }
24527 #[doc = "Generated from 'VK_NV_optical_flow'"]
24528 impl Format {
24529     pub const R16G16_S10_5_NV: Self = Self(1_000_464_000);
24530 }
24531 #[doc = "Generated from 'VK_NV_optical_flow'"]
24532 impl FormatFeatureFlags2 {
24533     pub const OPTICAL_FLOW_IMAGE_NV: Self =
24534         Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
24535     pub const OPTICAL_FLOW_VECTOR_NV: Self =
24536         Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
24537     pub const OPTICAL_FLOW_COST_NV: Self =
24538         Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
24539 }
24540 #[doc = "Generated from 'VK_NV_optical_flow'"]
24541 impl ObjectType {
24542     pub const OPTICAL_FLOW_SESSION_NV: Self = Self(1_000_464_000);
24543 }
24544 #[doc = "Generated from 'VK_NV_optical_flow'"]
24545 impl PipelineStageFlags2 {
24546     pub const OPTICAL_FLOW_NV: Self = Self(0b10_0000_0000_0000_0000_0000_0000_0000);
24547 }
24548 #[doc = "Generated from 'VK_NV_optical_flow'"]
24549 impl QueueFlags {
24550     pub const OPTICAL_FLOW_NV: Self = Self(0b1_0000_0000);
24551 }
24552 #[doc = "Generated from 'VK_NV_optical_flow'"]
24553 impl StructureType {
24554     pub const PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV: Self = Self(1_000_464_000);
24555     pub const PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV: Self = Self(1_000_464_001);
24556     pub const OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV: Self = Self(1_000_464_002);
24557     pub const OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV: Self = Self(1_000_464_003);
24558     pub const OPTICAL_FLOW_SESSION_CREATE_INFO_NV: Self = Self(1_000_464_004);
24559     pub const OPTICAL_FLOW_EXECUTE_INFO_NV: Self = Self(1_000_464_005);
24560     pub const OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV: Self = Self(1_000_464_010);
24561 }
24562 impl ExtLegacyDitheringFn {
24563     #[inline]
name() -> &'static ::std::ffi::CStr24564     pub const fn name() -> &'static ::std::ffi::CStr {
24565         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_legacy_dithering\0") }
24566     }
24567     pub const SPEC_VERSION: u32 = 1u32;
24568 }
24569 #[derive(Clone)]
24570 pub struct ExtLegacyDitheringFn {}
24571 unsafe impl Send for ExtLegacyDitheringFn {}
24572 unsafe impl Sync for ExtLegacyDitheringFn {}
24573 impl ExtLegacyDitheringFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24574     pub fn load<F>(mut _f: F) -> Self
24575     where
24576         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24577     {
24578         Self {}
24579     }
24580 }
24581 #[doc = "Generated from 'VK_EXT_legacy_dithering'"]
24582 impl RenderingFlags {
24583     pub const ENABLE_LEGACY_DITHERING_EXT: Self = Self(0b1000);
24584 }
24585 #[doc = "Generated from 'VK_EXT_legacy_dithering'"]
24586 impl StructureType {
24587     pub const PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT: Self = Self(1_000_465_000);
24588 }
24589 #[doc = "Generated from 'VK_EXT_legacy_dithering'"]
24590 impl SubpassDescriptionFlags {
24591     pub const ENABLE_LEGACY_DITHERING_EXT: Self = Self(0b1000_0000);
24592 }
24593 impl ExtPipelineProtectedAccessFn {
24594     #[inline]
name() -> &'static ::std::ffi::CStr24595     pub const fn name() -> &'static ::std::ffi::CStr {
24596         unsafe {
24597             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pipeline_protected_access\0")
24598         }
24599     }
24600     pub const SPEC_VERSION: u32 = 1u32;
24601 }
24602 #[derive(Clone)]
24603 pub struct ExtPipelineProtectedAccessFn {}
24604 unsafe impl Send for ExtPipelineProtectedAccessFn {}
24605 unsafe impl Sync for ExtPipelineProtectedAccessFn {}
24606 impl ExtPipelineProtectedAccessFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24607     pub fn load<F>(mut _f: F) -> Self
24608     where
24609         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24610     {
24611         Self {}
24612     }
24613 }
24614 #[doc = "Generated from 'VK_EXT_pipeline_protected_access'"]
24615 impl PipelineCreateFlags {
24616     pub const NO_PROTECTED_ACCESS_EXT: Self = Self(0b1000_0000_0000_0000_0000_0000_0000);
24617     pub const PROTECTED_ACCESS_ONLY_EXT: Self = Self(0b100_0000_0000_0000_0000_0000_0000_0000);
24618 }
24619 #[doc = "Generated from 'VK_EXT_pipeline_protected_access'"]
24620 impl StructureType {
24621     pub const PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT: Self = Self(1_000_466_000);
24622 }
24623 impl ExtExtension468Fn {
24624     #[inline]
name() -> &'static ::std::ffi::CStr24625     pub const fn name() -> &'static ::std::ffi::CStr {
24626         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_468\0") }
24627     }
24628     pub const SPEC_VERSION: u32 = 0u32;
24629 }
24630 #[derive(Clone)]
24631 pub struct ExtExtension468Fn {}
24632 unsafe impl Send for ExtExtension468Fn {}
24633 unsafe impl Sync for ExtExtension468Fn {}
24634 impl ExtExtension468Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24635     pub fn load<F>(mut _f: F) -> Self
24636     where
24637         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24638     {
24639         Self {}
24640     }
24641 }
24642 impl AndroidExtension469Fn {
24643     #[inline]
name() -> &'static ::std::ffi::CStr24644     pub const fn name() -> &'static ::std::ffi::CStr {
24645         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_ANDROID_extension_469\0") }
24646     }
24647     pub const SPEC_VERSION: u32 = 0u32;
24648 }
24649 #[derive(Clone)]
24650 pub struct AndroidExtension469Fn {}
24651 unsafe impl Send for AndroidExtension469Fn {}
24652 unsafe impl Sync for AndroidExtension469Fn {}
24653 impl AndroidExtension469Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24654     pub fn load<F>(mut _f: F) -> Self
24655     where
24656         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24657     {
24658         Self {}
24659     }
24660 }
24661 #[doc = "Generated from 'VK_ANDROID_extension_469'"]
24662 impl ResolveModeFlags {
24663     pub const EXTENSION_469_FLAG_0: Self = Self(0b1_0000);
24664 }
24665 impl AmdExtension470Fn {
24666     #[inline]
name() -> &'static ::std::ffi::CStr24667     pub const fn name() -> &'static ::std::ffi::CStr {
24668         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_470\0") }
24669     }
24670     pub const SPEC_VERSION: u32 = 0u32;
24671 }
24672 #[derive(Clone)]
24673 pub struct AmdExtension470Fn {}
24674 unsafe impl Send for AmdExtension470Fn {}
24675 unsafe impl Sync for AmdExtension470Fn {}
24676 impl AmdExtension470Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24677     pub fn load<F>(mut _f: F) -> Self
24678     where
24679         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24680     {
24681         Self {}
24682     }
24683 }
24684 impl AmdExtension471Fn {
24685     #[inline]
name() -> &'static ::std::ffi::CStr24686     pub const fn name() -> &'static ::std::ffi::CStr {
24687         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_471\0") }
24688     }
24689     pub const SPEC_VERSION: u32 = 0u32;
24690 }
24691 #[derive(Clone)]
24692 pub struct AmdExtension471Fn {}
24693 unsafe impl Send for AmdExtension471Fn {}
24694 unsafe impl Sync for AmdExtension471Fn {}
24695 impl AmdExtension471Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24696     pub fn load<F>(mut _f: F) -> Self
24697     where
24698         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24699     {
24700         Self {}
24701     }
24702 }
24703 impl AmdExtension472Fn {
24704     #[inline]
name() -> &'static ::std::ffi::CStr24705     pub const fn name() -> &'static ::std::ffi::CStr {
24706         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_472\0") }
24707     }
24708     pub const SPEC_VERSION: u32 = 0u32;
24709 }
24710 #[derive(Clone)]
24711 pub struct AmdExtension472Fn {}
24712 unsafe impl Send for AmdExtension472Fn {}
24713 unsafe impl Sync for AmdExtension472Fn {}
24714 impl AmdExtension472Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24715     pub fn load<F>(mut _f: F) -> Self
24716     where
24717         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24718     {
24719         Self {}
24720     }
24721 }
24722 impl AmdExtension473Fn {
24723     #[inline]
name() -> &'static ::std::ffi::CStr24724     pub const fn name() -> &'static ::std::ffi::CStr {
24725         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_473\0") }
24726     }
24727     pub const SPEC_VERSION: u32 = 0u32;
24728 }
24729 #[derive(Clone)]
24730 pub struct AmdExtension473Fn {}
24731 unsafe impl Send for AmdExtension473Fn {}
24732 unsafe impl Sync for AmdExtension473Fn {}
24733 impl AmdExtension473Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24734     pub fn load<F>(mut _f: F) -> Self
24735     where
24736         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24737     {
24738         Self {}
24739     }
24740 }
24741 impl AmdExtension474Fn {
24742     #[inline]
name() -> &'static ::std::ffi::CStr24743     pub const fn name() -> &'static ::std::ffi::CStr {
24744         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_474\0") }
24745     }
24746     pub const SPEC_VERSION: u32 = 0u32;
24747 }
24748 #[derive(Clone)]
24749 pub struct AmdExtension474Fn {}
24750 unsafe impl Send for AmdExtension474Fn {}
24751 unsafe impl Sync for AmdExtension474Fn {}
24752 impl AmdExtension474Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24753     pub fn load<F>(mut _f: F) -> Self
24754     where
24755         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24756     {
24757         Self {}
24758     }
24759 }
24760 impl AmdExtension475Fn {
24761     #[inline]
name() -> &'static ::std::ffi::CStr24762     pub const fn name() -> &'static ::std::ffi::CStr {
24763         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_475\0") }
24764     }
24765     pub const SPEC_VERSION: u32 = 0u32;
24766 }
24767 #[derive(Clone)]
24768 pub struct AmdExtension475Fn {}
24769 unsafe impl Send for AmdExtension475Fn {}
24770 unsafe impl Sync for AmdExtension475Fn {}
24771 impl AmdExtension475Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24772     pub fn load<F>(mut _f: F) -> Self
24773     where
24774         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24775     {
24776         Self {}
24777     }
24778 }
24779 impl AmdExtension476Fn {
24780     #[inline]
name() -> &'static ::std::ffi::CStr24781     pub const fn name() -> &'static ::std::ffi::CStr {
24782         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_476\0") }
24783     }
24784     pub const SPEC_VERSION: u32 = 0u32;
24785 }
24786 #[derive(Clone)]
24787 pub struct AmdExtension476Fn {}
24788 unsafe impl Send for AmdExtension476Fn {}
24789 unsafe impl Sync for AmdExtension476Fn {}
24790 impl AmdExtension476Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24791     pub fn load<F>(mut _f: F) -> Self
24792     where
24793         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24794     {
24795         Self {}
24796     }
24797 }
24798 impl AmdExtension477Fn {
24799     #[inline]
name() -> &'static ::std::ffi::CStr24800     pub const fn name() -> &'static ::std::ffi::CStr {
24801         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_477\0") }
24802     }
24803     pub const SPEC_VERSION: u32 = 0u32;
24804 }
24805 #[derive(Clone)]
24806 pub struct AmdExtension477Fn {}
24807 unsafe impl Send for AmdExtension477Fn {}
24808 unsafe impl Sync for AmdExtension477Fn {}
24809 impl AmdExtension477Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24810     pub fn load<F>(mut _f: F) -> Self
24811     where
24812         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24813     {
24814         Self {}
24815     }
24816 }
24817 impl AmdExtension478Fn {
24818     #[inline]
name() -> &'static ::std::ffi::CStr24819     pub const fn name() -> &'static ::std::ffi::CStr {
24820         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_478\0") }
24821     }
24822     pub const SPEC_VERSION: u32 = 0u32;
24823 }
24824 #[derive(Clone)]
24825 pub struct AmdExtension478Fn {}
24826 unsafe impl Send for AmdExtension478Fn {}
24827 unsafe impl Sync for AmdExtension478Fn {}
24828 impl AmdExtension478Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24829     pub fn load<F>(mut _f: F) -> Self
24830     where
24831         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24832     {
24833         Self {}
24834     }
24835 }
24836 impl AmdExtension479Fn {
24837     #[inline]
name() -> &'static ::std::ffi::CStr24838     pub const fn name() -> &'static ::std::ffi::CStr {
24839         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_479\0") }
24840     }
24841     pub const SPEC_VERSION: u32 = 0u32;
24842 }
24843 #[derive(Clone)]
24844 pub struct AmdExtension479Fn {}
24845 unsafe impl Send for AmdExtension479Fn {}
24846 unsafe impl Sync for AmdExtension479Fn {}
24847 impl AmdExtension479Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24848     pub fn load<F>(mut _f: F) -> Self
24849     where
24850         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24851     {
24852         Self {}
24853     }
24854 }
24855 impl ExtExtension480Fn {
24856     #[inline]
name() -> &'static ::std::ffi::CStr24857     pub const fn name() -> &'static ::std::ffi::CStr {
24858         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_480\0") }
24859     }
24860     pub const SPEC_VERSION: u32 = 0u32;
24861 }
24862 #[derive(Clone)]
24863 pub struct ExtExtension480Fn {}
24864 unsafe impl Send for ExtExtension480Fn {}
24865 unsafe impl Sync for ExtExtension480Fn {}
24866 impl ExtExtension480Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24867     pub fn load<F>(mut _f: F) -> Self
24868     where
24869         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24870     {
24871         Self {}
24872     }
24873 }
24874 impl ExtExtension481Fn {
24875     #[inline]
name() -> &'static ::std::ffi::CStr24876     pub const fn name() -> &'static ::std::ffi::CStr {
24877         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_481\0") }
24878     }
24879     pub const SPEC_VERSION: u32 = 0u32;
24880 }
24881 #[derive(Clone)]
24882 pub struct ExtExtension481Fn {}
24883 unsafe impl Send for ExtExtension481Fn {}
24884 unsafe impl Sync for ExtExtension481Fn {}
24885 impl ExtExtension481Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24886     pub fn load<F>(mut _f: F) -> Self
24887     where
24888         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24889     {
24890         Self {}
24891     }
24892 }
24893 impl KhrRayTracingPositionFetchFn {
24894     #[inline]
name() -> &'static ::std::ffi::CStr24895     pub const fn name() -> &'static ::std::ffi::CStr {
24896         unsafe {
24897             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_ray_tracing_position_fetch\0")
24898         }
24899     }
24900     pub const SPEC_VERSION: u32 = 1u32;
24901 }
24902 #[derive(Clone)]
24903 pub struct KhrRayTracingPositionFetchFn {}
24904 unsafe impl Send for KhrRayTracingPositionFetchFn {}
24905 unsafe impl Sync for KhrRayTracingPositionFetchFn {}
24906 impl KhrRayTracingPositionFetchFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24907     pub fn load<F>(mut _f: F) -> Self
24908     where
24909         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24910     {
24911         Self {}
24912     }
24913 }
24914 #[doc = "Generated from 'VK_KHR_ray_tracing_position_fetch'"]
24915 impl BuildAccelerationStructureFlagsKHR {
24916     pub const ALLOW_DATA_ACCESS: Self = Self(0b1000_0000_0000);
24917 }
24918 #[doc = "Generated from 'VK_KHR_ray_tracing_position_fetch'"]
24919 impl StructureType {
24920     pub const PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR: Self = Self(1_000_481_000);
24921 }
24922 impl ExtShaderObjectFn {
24923     #[inline]
name() -> &'static ::std::ffi::CStr24924     pub const fn name() -> &'static ::std::ffi::CStr {
24925         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_object\0") }
24926     }
24927     pub const SPEC_VERSION: u32 = 1u32;
24928 }
24929 #[allow(non_camel_case_types)]
24930 pub type PFN_vkCreateShadersEXT = unsafe extern "system" fn(
24931     device: Device,
24932     create_info_count: u32,
24933     p_create_infos: *const ShaderCreateInfoEXT,
24934     p_allocator: *const AllocationCallbacks,
24935     p_shaders: *mut ShaderEXT,
24936 ) -> Result;
24937 #[allow(non_camel_case_types)]
24938 pub type PFN_vkDestroyShaderEXT = unsafe extern "system" fn(
24939     device: Device,
24940     shader: ShaderEXT,
24941     p_allocator: *const AllocationCallbacks,
24942 );
24943 #[allow(non_camel_case_types)]
24944 pub type PFN_vkGetShaderBinaryDataEXT = unsafe extern "system" fn(
24945     device: Device,
24946     shader: ShaderEXT,
24947     p_data_size: *mut usize,
24948     p_data: *mut c_void,
24949 ) -> Result;
24950 #[allow(non_camel_case_types)]
24951 pub type PFN_vkCmdBindShadersEXT = unsafe extern "system" fn(
24952     command_buffer: CommandBuffer,
24953     stage_count: u32,
24954     p_stages: *const ShaderStageFlags,
24955     p_shaders: *const ShaderEXT,
24956 );
24957 #[derive(Clone)]
24958 pub struct ExtShaderObjectFn {
24959     pub create_shaders_ext: PFN_vkCreateShadersEXT,
24960     pub destroy_shader_ext: PFN_vkDestroyShaderEXT,
24961     pub get_shader_binary_data_ext: PFN_vkGetShaderBinaryDataEXT,
24962     pub cmd_bind_shaders_ext: PFN_vkCmdBindShadersEXT,
24963     pub cmd_set_cull_mode_ext: crate::vk::PFN_vkCmdSetCullMode,
24964     pub cmd_set_front_face_ext: crate::vk::PFN_vkCmdSetFrontFace,
24965     pub cmd_set_primitive_topology_ext: crate::vk::PFN_vkCmdSetPrimitiveTopology,
24966     pub cmd_set_viewport_with_count_ext: crate::vk::PFN_vkCmdSetViewportWithCount,
24967     pub cmd_set_scissor_with_count_ext: crate::vk::PFN_vkCmdSetScissorWithCount,
24968     pub cmd_bind_vertex_buffers2_ext: crate::vk::PFN_vkCmdBindVertexBuffers2,
24969     pub cmd_set_depth_test_enable_ext: crate::vk::PFN_vkCmdSetDepthTestEnable,
24970     pub cmd_set_depth_write_enable_ext: crate::vk::PFN_vkCmdSetDepthWriteEnable,
24971     pub cmd_set_depth_compare_op_ext: crate::vk::PFN_vkCmdSetDepthCompareOp,
24972     pub cmd_set_depth_bounds_test_enable_ext: crate::vk::PFN_vkCmdSetDepthBoundsTestEnable,
24973     pub cmd_set_stencil_test_enable_ext: crate::vk::PFN_vkCmdSetStencilTestEnable,
24974     pub cmd_set_stencil_op_ext: crate::vk::PFN_vkCmdSetStencilOp,
24975     pub cmd_set_vertex_input_ext: crate::vk::PFN_vkCmdSetVertexInputEXT,
24976     pub cmd_set_patch_control_points_ext: crate::vk::PFN_vkCmdSetPatchControlPointsEXT,
24977     pub cmd_set_rasterizer_discard_enable_ext: crate::vk::PFN_vkCmdSetRasterizerDiscardEnable,
24978     pub cmd_set_depth_bias_enable_ext: crate::vk::PFN_vkCmdSetDepthBiasEnable,
24979     pub cmd_set_logic_op_ext: crate::vk::PFN_vkCmdSetLogicOpEXT,
24980     pub cmd_set_primitive_restart_enable_ext: crate::vk::PFN_vkCmdSetPrimitiveRestartEnable,
24981     pub cmd_set_tessellation_domain_origin_ext: crate::vk::PFN_vkCmdSetTessellationDomainOriginEXT,
24982     pub cmd_set_depth_clamp_enable_ext: crate::vk::PFN_vkCmdSetDepthClampEnableEXT,
24983     pub cmd_set_polygon_mode_ext: crate::vk::PFN_vkCmdSetPolygonModeEXT,
24984     pub cmd_set_rasterization_samples_ext: crate::vk::PFN_vkCmdSetRasterizationSamplesEXT,
24985     pub cmd_set_sample_mask_ext: crate::vk::PFN_vkCmdSetSampleMaskEXT,
24986     pub cmd_set_alpha_to_coverage_enable_ext: crate::vk::PFN_vkCmdSetAlphaToCoverageEnableEXT,
24987     pub cmd_set_alpha_to_one_enable_ext: crate::vk::PFN_vkCmdSetAlphaToOneEnableEXT,
24988     pub cmd_set_logic_op_enable_ext: crate::vk::PFN_vkCmdSetLogicOpEnableEXT,
24989     pub cmd_set_color_blend_enable_ext: crate::vk::PFN_vkCmdSetColorBlendEnableEXT,
24990     pub cmd_set_color_blend_equation_ext: crate::vk::PFN_vkCmdSetColorBlendEquationEXT,
24991     pub cmd_set_color_write_mask_ext: crate::vk::PFN_vkCmdSetColorWriteMaskEXT,
24992     pub cmd_set_rasterization_stream_ext: crate::vk::PFN_vkCmdSetRasterizationStreamEXT,
24993     pub cmd_set_conservative_rasterization_mode_ext:
24994         crate::vk::PFN_vkCmdSetConservativeRasterizationModeEXT,
24995     pub cmd_set_extra_primitive_overestimation_size_ext:
24996         crate::vk::PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT,
24997     pub cmd_set_depth_clip_enable_ext: crate::vk::PFN_vkCmdSetDepthClipEnableEXT,
24998     pub cmd_set_sample_locations_enable_ext: crate::vk::PFN_vkCmdSetSampleLocationsEnableEXT,
24999     pub cmd_set_color_blend_advanced_ext: crate::vk::PFN_vkCmdSetColorBlendAdvancedEXT,
25000     pub cmd_set_provoking_vertex_mode_ext: crate::vk::PFN_vkCmdSetProvokingVertexModeEXT,
25001     pub cmd_set_line_rasterization_mode_ext: crate::vk::PFN_vkCmdSetLineRasterizationModeEXT,
25002     pub cmd_set_line_stipple_enable_ext: crate::vk::PFN_vkCmdSetLineStippleEnableEXT,
25003     pub cmd_set_depth_clip_negative_one_to_one_ext:
25004         crate::vk::PFN_vkCmdSetDepthClipNegativeOneToOneEXT,
25005     pub cmd_set_viewport_w_scaling_enable_nv: crate::vk::PFN_vkCmdSetViewportWScalingEnableNV,
25006     pub cmd_set_viewport_swizzle_nv: crate::vk::PFN_vkCmdSetViewportSwizzleNV,
25007     pub cmd_set_coverage_to_color_enable_nv: crate::vk::PFN_vkCmdSetCoverageToColorEnableNV,
25008     pub cmd_set_coverage_to_color_location_nv: crate::vk::PFN_vkCmdSetCoverageToColorLocationNV,
25009     pub cmd_set_coverage_modulation_mode_nv: crate::vk::PFN_vkCmdSetCoverageModulationModeNV,
25010     pub cmd_set_coverage_modulation_table_enable_nv:
25011         crate::vk::PFN_vkCmdSetCoverageModulationTableEnableNV,
25012     pub cmd_set_coverage_modulation_table_nv: crate::vk::PFN_vkCmdSetCoverageModulationTableNV,
25013     pub cmd_set_shading_rate_image_enable_nv: crate::vk::PFN_vkCmdSetShadingRateImageEnableNV,
25014     pub cmd_set_representative_fragment_test_enable_nv:
25015         crate::vk::PFN_vkCmdSetRepresentativeFragmentTestEnableNV,
25016     pub cmd_set_coverage_reduction_mode_nv: crate::vk::PFN_vkCmdSetCoverageReductionModeNV,
25017 }
25018 unsafe impl Send for ExtShaderObjectFn {}
25019 unsafe impl Sync for ExtShaderObjectFn {}
25020 impl ExtShaderObjectFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,25021     pub fn load<F>(mut _f: F) -> Self
25022     where
25023         F: FnMut(&::std::ffi::CStr) -> *const c_void,
25024     {
25025         Self {
25026             create_shaders_ext: unsafe {
25027                 unsafe extern "system" fn create_shaders_ext(
25028                     _device: Device,
25029                     _create_info_count: u32,
25030                     _p_create_infos: *const ShaderCreateInfoEXT,
25031                     _p_allocator: *const AllocationCallbacks,
25032                     _p_shaders: *mut ShaderEXT,
25033                 ) -> Result {
25034                     panic!(concat!("Unable to load ", stringify!(create_shaders_ext)))
25035                 }
25036                 let cname =
25037                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateShadersEXT\0");
25038                 let val = _f(cname);
25039                 if val.is_null() {
25040                     create_shaders_ext
25041                 } else {
25042                     ::std::mem::transmute(val)
25043                 }
25044             },
25045             destroy_shader_ext: unsafe {
25046                 unsafe extern "system" fn destroy_shader_ext(
25047                     _device: Device,
25048                     _shader: ShaderEXT,
25049                     _p_allocator: *const AllocationCallbacks,
25050                 ) {
25051                     panic!(concat!("Unable to load ", stringify!(destroy_shader_ext)))
25052                 }
25053                 let cname =
25054                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroyShaderEXT\0");
25055                 let val = _f(cname);
25056                 if val.is_null() {
25057                     destroy_shader_ext
25058                 } else {
25059                     ::std::mem::transmute(val)
25060                 }
25061             },
25062             get_shader_binary_data_ext: unsafe {
25063                 unsafe extern "system" fn get_shader_binary_data_ext(
25064                     _device: Device,
25065                     _shader: ShaderEXT,
25066                     _p_data_size: *mut usize,
25067                     _p_data: *mut c_void,
25068                 ) -> Result {
25069                     panic!(concat!(
25070                         "Unable to load ",
25071                         stringify!(get_shader_binary_data_ext)
25072                     ))
25073                 }
25074                 let cname =
25075                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetShaderBinaryDataEXT\0");
25076                 let val = _f(cname);
25077                 if val.is_null() {
25078                     get_shader_binary_data_ext
25079                 } else {
25080                     ::std::mem::transmute(val)
25081                 }
25082             },
25083             cmd_bind_shaders_ext: unsafe {
25084                 unsafe extern "system" fn cmd_bind_shaders_ext(
25085                     _command_buffer: CommandBuffer,
25086                     _stage_count: u32,
25087                     _p_stages: *const ShaderStageFlags,
25088                     _p_shaders: *const ShaderEXT,
25089                 ) {
25090                     panic!(concat!("Unable to load ", stringify!(cmd_bind_shaders_ext)))
25091                 }
25092                 let cname =
25093                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdBindShadersEXT\0");
25094                 let val = _f(cname);
25095                 if val.is_null() {
25096                     cmd_bind_shaders_ext
25097                 } else {
25098                     ::std::mem::transmute(val)
25099                 }
25100             },
25101             cmd_set_cull_mode_ext: unsafe {
25102                 unsafe extern "system" fn cmd_set_cull_mode_ext(
25103                     _command_buffer: CommandBuffer,
25104                     _cull_mode: CullModeFlags,
25105                 ) {
25106                     panic!(concat!(
25107                         "Unable to load ",
25108                         stringify!(cmd_set_cull_mode_ext)
25109                     ))
25110                 }
25111                 let cname =
25112                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCullModeEXT\0");
25113                 let val = _f(cname);
25114                 if val.is_null() {
25115                     cmd_set_cull_mode_ext
25116                 } else {
25117                     ::std::mem::transmute(val)
25118                 }
25119             },
25120             cmd_set_front_face_ext: unsafe {
25121                 unsafe extern "system" fn cmd_set_front_face_ext(
25122                     _command_buffer: CommandBuffer,
25123                     _front_face: FrontFace,
25124                 ) {
25125                     panic!(concat!(
25126                         "Unable to load ",
25127                         stringify!(cmd_set_front_face_ext)
25128                     ))
25129                 }
25130                 let cname =
25131                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetFrontFaceEXT\0");
25132                 let val = _f(cname);
25133                 if val.is_null() {
25134                     cmd_set_front_face_ext
25135                 } else {
25136                     ::std::mem::transmute(val)
25137                 }
25138             },
25139             cmd_set_primitive_topology_ext: unsafe {
25140                 unsafe extern "system" fn cmd_set_primitive_topology_ext(
25141                     _command_buffer: CommandBuffer,
25142                     _primitive_topology: PrimitiveTopology,
25143                 ) {
25144                     panic!(concat!(
25145                         "Unable to load ",
25146                         stringify!(cmd_set_primitive_topology_ext)
25147                     ))
25148                 }
25149                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25150                     b"vkCmdSetPrimitiveTopologyEXT\0",
25151                 );
25152                 let val = _f(cname);
25153                 if val.is_null() {
25154                     cmd_set_primitive_topology_ext
25155                 } else {
25156                     ::std::mem::transmute(val)
25157                 }
25158             },
25159             cmd_set_viewport_with_count_ext: unsafe {
25160                 unsafe extern "system" fn cmd_set_viewport_with_count_ext(
25161                     _command_buffer: CommandBuffer,
25162                     _viewport_count: u32,
25163                     _p_viewports: *const Viewport,
25164                 ) {
25165                     panic!(concat!(
25166                         "Unable to load ",
25167                         stringify!(cmd_set_viewport_with_count_ext)
25168                     ))
25169                 }
25170                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25171                     b"vkCmdSetViewportWithCountEXT\0",
25172                 );
25173                 let val = _f(cname);
25174                 if val.is_null() {
25175                     cmd_set_viewport_with_count_ext
25176                 } else {
25177                     ::std::mem::transmute(val)
25178                 }
25179             },
25180             cmd_set_scissor_with_count_ext: unsafe {
25181                 unsafe extern "system" fn cmd_set_scissor_with_count_ext(
25182                     _command_buffer: CommandBuffer,
25183                     _scissor_count: u32,
25184                     _p_scissors: *const Rect2D,
25185                 ) {
25186                     panic!(concat!(
25187                         "Unable to load ",
25188                         stringify!(cmd_set_scissor_with_count_ext)
25189                     ))
25190                 }
25191                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25192                     b"vkCmdSetScissorWithCountEXT\0",
25193                 );
25194                 let val = _f(cname);
25195                 if val.is_null() {
25196                     cmd_set_scissor_with_count_ext
25197                 } else {
25198                     ::std::mem::transmute(val)
25199                 }
25200             },
25201             cmd_bind_vertex_buffers2_ext: unsafe {
25202                 unsafe extern "system" fn cmd_bind_vertex_buffers2_ext(
25203                     _command_buffer: CommandBuffer,
25204                     _first_binding: u32,
25205                     _binding_count: u32,
25206                     _p_buffers: *const Buffer,
25207                     _p_offsets: *const DeviceSize,
25208                     _p_sizes: *const DeviceSize,
25209                     _p_strides: *const DeviceSize,
25210                 ) {
25211                     panic!(concat!(
25212                         "Unable to load ",
25213                         stringify!(cmd_bind_vertex_buffers2_ext)
25214                     ))
25215                 }
25216                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25217                     b"vkCmdBindVertexBuffers2EXT\0",
25218                 );
25219                 let val = _f(cname);
25220                 if val.is_null() {
25221                     cmd_bind_vertex_buffers2_ext
25222                 } else {
25223                     ::std::mem::transmute(val)
25224                 }
25225             },
25226             cmd_set_depth_test_enable_ext: unsafe {
25227                 unsafe extern "system" fn cmd_set_depth_test_enable_ext(
25228                     _command_buffer: CommandBuffer,
25229                     _depth_test_enable: Bool32,
25230                 ) {
25231                     panic!(concat!(
25232                         "Unable to load ",
25233                         stringify!(cmd_set_depth_test_enable_ext)
25234                     ))
25235                 }
25236                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25237                     b"vkCmdSetDepthTestEnableEXT\0",
25238                 );
25239                 let val = _f(cname);
25240                 if val.is_null() {
25241                     cmd_set_depth_test_enable_ext
25242                 } else {
25243                     ::std::mem::transmute(val)
25244                 }
25245             },
25246             cmd_set_depth_write_enable_ext: unsafe {
25247                 unsafe extern "system" fn cmd_set_depth_write_enable_ext(
25248                     _command_buffer: CommandBuffer,
25249                     _depth_write_enable: Bool32,
25250                 ) {
25251                     panic!(concat!(
25252                         "Unable to load ",
25253                         stringify!(cmd_set_depth_write_enable_ext)
25254                     ))
25255                 }
25256                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25257                     b"vkCmdSetDepthWriteEnableEXT\0",
25258                 );
25259                 let val = _f(cname);
25260                 if val.is_null() {
25261                     cmd_set_depth_write_enable_ext
25262                 } else {
25263                     ::std::mem::transmute(val)
25264                 }
25265             },
25266             cmd_set_depth_compare_op_ext: unsafe {
25267                 unsafe extern "system" fn cmd_set_depth_compare_op_ext(
25268                     _command_buffer: CommandBuffer,
25269                     _depth_compare_op: CompareOp,
25270                 ) {
25271                     panic!(concat!(
25272                         "Unable to load ",
25273                         stringify!(cmd_set_depth_compare_op_ext)
25274                     ))
25275                 }
25276                 let cname =
25277                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthCompareOpEXT\0");
25278                 let val = _f(cname);
25279                 if val.is_null() {
25280                     cmd_set_depth_compare_op_ext
25281                 } else {
25282                     ::std::mem::transmute(val)
25283                 }
25284             },
25285             cmd_set_depth_bounds_test_enable_ext: unsafe {
25286                 unsafe extern "system" fn cmd_set_depth_bounds_test_enable_ext(
25287                     _command_buffer: CommandBuffer,
25288                     _depth_bounds_test_enable: Bool32,
25289                 ) {
25290                     panic!(concat!(
25291                         "Unable to load ",
25292                         stringify!(cmd_set_depth_bounds_test_enable_ext)
25293                     ))
25294                 }
25295                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25296                     b"vkCmdSetDepthBoundsTestEnableEXT\0",
25297                 );
25298                 let val = _f(cname);
25299                 if val.is_null() {
25300                     cmd_set_depth_bounds_test_enable_ext
25301                 } else {
25302                     ::std::mem::transmute(val)
25303                 }
25304             },
25305             cmd_set_stencil_test_enable_ext: unsafe {
25306                 unsafe extern "system" fn cmd_set_stencil_test_enable_ext(
25307                     _command_buffer: CommandBuffer,
25308                     _stencil_test_enable: Bool32,
25309                 ) {
25310                     panic!(concat!(
25311                         "Unable to load ",
25312                         stringify!(cmd_set_stencil_test_enable_ext)
25313                     ))
25314                 }
25315                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25316                     b"vkCmdSetStencilTestEnableEXT\0",
25317                 );
25318                 let val = _f(cname);
25319                 if val.is_null() {
25320                     cmd_set_stencil_test_enable_ext
25321                 } else {
25322                     ::std::mem::transmute(val)
25323                 }
25324             },
25325             cmd_set_stencil_op_ext: unsafe {
25326                 unsafe extern "system" fn cmd_set_stencil_op_ext(
25327                     _command_buffer: CommandBuffer,
25328                     _face_mask: StencilFaceFlags,
25329                     _fail_op: StencilOp,
25330                     _pass_op: StencilOp,
25331                     _depth_fail_op: StencilOp,
25332                     _compare_op: CompareOp,
25333                 ) {
25334                     panic!(concat!(
25335                         "Unable to load ",
25336                         stringify!(cmd_set_stencil_op_ext)
25337                     ))
25338                 }
25339                 let cname =
25340                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilOpEXT\0");
25341                 let val = _f(cname);
25342                 if val.is_null() {
25343                     cmd_set_stencil_op_ext
25344                 } else {
25345                     ::std::mem::transmute(val)
25346                 }
25347             },
25348             cmd_set_vertex_input_ext: unsafe {
25349                 unsafe extern "system" fn cmd_set_vertex_input_ext(
25350                     _command_buffer: CommandBuffer,
25351                     _vertex_binding_description_count: u32,
25352                     _p_vertex_binding_descriptions: *const VertexInputBindingDescription2EXT,
25353                     _vertex_attribute_description_count: u32,
25354                     _p_vertex_attribute_descriptions: *const VertexInputAttributeDescription2EXT,
25355                 ) {
25356                     panic!(concat!(
25357                         "Unable to load ",
25358                         stringify!(cmd_set_vertex_input_ext)
25359                     ))
25360                 }
25361                 let cname =
25362                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetVertexInputEXT\0");
25363                 let val = _f(cname);
25364                 if val.is_null() {
25365                     cmd_set_vertex_input_ext
25366                 } else {
25367                     ::std::mem::transmute(val)
25368                 }
25369             },
25370             cmd_set_patch_control_points_ext: unsafe {
25371                 unsafe extern "system" fn cmd_set_patch_control_points_ext(
25372                     _command_buffer: CommandBuffer,
25373                     _patch_control_points: u32,
25374                 ) {
25375                     panic!(concat!(
25376                         "Unable to load ",
25377                         stringify!(cmd_set_patch_control_points_ext)
25378                     ))
25379                 }
25380                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25381                     b"vkCmdSetPatchControlPointsEXT\0",
25382                 );
25383                 let val = _f(cname);
25384                 if val.is_null() {
25385                     cmd_set_patch_control_points_ext
25386                 } else {
25387                     ::std::mem::transmute(val)
25388                 }
25389             },
25390             cmd_set_rasterizer_discard_enable_ext: unsafe {
25391                 unsafe extern "system" fn cmd_set_rasterizer_discard_enable_ext(
25392                     _command_buffer: CommandBuffer,
25393                     _rasterizer_discard_enable: Bool32,
25394                 ) {
25395                     panic!(concat!(
25396                         "Unable to load ",
25397                         stringify!(cmd_set_rasterizer_discard_enable_ext)
25398                     ))
25399                 }
25400                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25401                     b"vkCmdSetRasterizerDiscardEnableEXT\0",
25402                 );
25403                 let val = _f(cname);
25404                 if val.is_null() {
25405                     cmd_set_rasterizer_discard_enable_ext
25406                 } else {
25407                     ::std::mem::transmute(val)
25408                 }
25409             },
25410             cmd_set_depth_bias_enable_ext: unsafe {
25411                 unsafe extern "system" fn cmd_set_depth_bias_enable_ext(
25412                     _command_buffer: CommandBuffer,
25413                     _depth_bias_enable: Bool32,
25414                 ) {
25415                     panic!(concat!(
25416                         "Unable to load ",
25417                         stringify!(cmd_set_depth_bias_enable_ext)
25418                     ))
25419                 }
25420                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25421                     b"vkCmdSetDepthBiasEnableEXT\0",
25422                 );
25423                 let val = _f(cname);
25424                 if val.is_null() {
25425                     cmd_set_depth_bias_enable_ext
25426                 } else {
25427                     ::std::mem::transmute(val)
25428                 }
25429             },
25430             cmd_set_logic_op_ext: unsafe {
25431                 unsafe extern "system" fn cmd_set_logic_op_ext(
25432                     _command_buffer: CommandBuffer,
25433                     _logic_op: LogicOp,
25434                 ) {
25435                     panic!(concat!("Unable to load ", stringify!(cmd_set_logic_op_ext)))
25436                 }
25437                 let cname =
25438                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLogicOpEXT\0");
25439                 let val = _f(cname);
25440                 if val.is_null() {
25441                     cmd_set_logic_op_ext
25442                 } else {
25443                     ::std::mem::transmute(val)
25444                 }
25445             },
25446             cmd_set_primitive_restart_enable_ext: unsafe {
25447                 unsafe extern "system" fn cmd_set_primitive_restart_enable_ext(
25448                     _command_buffer: CommandBuffer,
25449                     _primitive_restart_enable: Bool32,
25450                 ) {
25451                     panic!(concat!(
25452                         "Unable to load ",
25453                         stringify!(cmd_set_primitive_restart_enable_ext)
25454                     ))
25455                 }
25456                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25457                     b"vkCmdSetPrimitiveRestartEnableEXT\0",
25458                 );
25459                 let val = _f(cname);
25460                 if val.is_null() {
25461                     cmd_set_primitive_restart_enable_ext
25462                 } else {
25463                     ::std::mem::transmute(val)
25464                 }
25465             },
25466             cmd_set_tessellation_domain_origin_ext: unsafe {
25467                 unsafe extern "system" fn cmd_set_tessellation_domain_origin_ext(
25468                     _command_buffer: CommandBuffer,
25469                     _domain_origin: TessellationDomainOrigin,
25470                 ) {
25471                     panic!(concat!(
25472                         "Unable to load ",
25473                         stringify!(cmd_set_tessellation_domain_origin_ext)
25474                     ))
25475                 }
25476                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25477                     b"vkCmdSetTessellationDomainOriginEXT\0",
25478                 );
25479                 let val = _f(cname);
25480                 if val.is_null() {
25481                     cmd_set_tessellation_domain_origin_ext
25482                 } else {
25483                     ::std::mem::transmute(val)
25484                 }
25485             },
25486             cmd_set_depth_clamp_enable_ext: unsafe {
25487                 unsafe extern "system" fn cmd_set_depth_clamp_enable_ext(
25488                     _command_buffer: CommandBuffer,
25489                     _depth_clamp_enable: Bool32,
25490                 ) {
25491                     panic!(concat!(
25492                         "Unable to load ",
25493                         stringify!(cmd_set_depth_clamp_enable_ext)
25494                     ))
25495                 }
25496                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25497                     b"vkCmdSetDepthClampEnableEXT\0",
25498                 );
25499                 let val = _f(cname);
25500                 if val.is_null() {
25501                     cmd_set_depth_clamp_enable_ext
25502                 } else {
25503                     ::std::mem::transmute(val)
25504                 }
25505             },
25506             cmd_set_polygon_mode_ext: unsafe {
25507                 unsafe extern "system" fn cmd_set_polygon_mode_ext(
25508                     _command_buffer: CommandBuffer,
25509                     _polygon_mode: PolygonMode,
25510                 ) {
25511                     panic!(concat!(
25512                         "Unable to load ",
25513                         stringify!(cmd_set_polygon_mode_ext)
25514                     ))
25515                 }
25516                 let cname =
25517                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPolygonModeEXT\0");
25518                 let val = _f(cname);
25519                 if val.is_null() {
25520                     cmd_set_polygon_mode_ext
25521                 } else {
25522                     ::std::mem::transmute(val)
25523                 }
25524             },
25525             cmd_set_rasterization_samples_ext: unsafe {
25526                 unsafe extern "system" fn cmd_set_rasterization_samples_ext(
25527                     _command_buffer: CommandBuffer,
25528                     _rasterization_samples: SampleCountFlags,
25529                 ) {
25530                     panic!(concat!(
25531                         "Unable to load ",
25532                         stringify!(cmd_set_rasterization_samples_ext)
25533                     ))
25534                 }
25535                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25536                     b"vkCmdSetRasterizationSamplesEXT\0",
25537                 );
25538                 let val = _f(cname);
25539                 if val.is_null() {
25540                     cmd_set_rasterization_samples_ext
25541                 } else {
25542                     ::std::mem::transmute(val)
25543                 }
25544             },
25545             cmd_set_sample_mask_ext: unsafe {
25546                 unsafe extern "system" fn cmd_set_sample_mask_ext(
25547                     _command_buffer: CommandBuffer,
25548                     _samples: SampleCountFlags,
25549                     _p_sample_mask: *const SampleMask,
25550                 ) {
25551                     panic!(concat!(
25552                         "Unable to load ",
25553                         stringify!(cmd_set_sample_mask_ext)
25554                     ))
25555                 }
25556                 let cname =
25557                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetSampleMaskEXT\0");
25558                 let val = _f(cname);
25559                 if val.is_null() {
25560                     cmd_set_sample_mask_ext
25561                 } else {
25562                     ::std::mem::transmute(val)
25563                 }
25564             },
25565             cmd_set_alpha_to_coverage_enable_ext: unsafe {
25566                 unsafe extern "system" fn cmd_set_alpha_to_coverage_enable_ext(
25567                     _command_buffer: CommandBuffer,
25568                     _alpha_to_coverage_enable: Bool32,
25569                 ) {
25570                     panic!(concat!(
25571                         "Unable to load ",
25572                         stringify!(cmd_set_alpha_to_coverage_enable_ext)
25573                     ))
25574                 }
25575                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25576                     b"vkCmdSetAlphaToCoverageEnableEXT\0",
25577                 );
25578                 let val = _f(cname);
25579                 if val.is_null() {
25580                     cmd_set_alpha_to_coverage_enable_ext
25581                 } else {
25582                     ::std::mem::transmute(val)
25583                 }
25584             },
25585             cmd_set_alpha_to_one_enable_ext: unsafe {
25586                 unsafe extern "system" fn cmd_set_alpha_to_one_enable_ext(
25587                     _command_buffer: CommandBuffer,
25588                     _alpha_to_one_enable: Bool32,
25589                 ) {
25590                     panic!(concat!(
25591                         "Unable to load ",
25592                         stringify!(cmd_set_alpha_to_one_enable_ext)
25593                     ))
25594                 }
25595                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25596                     b"vkCmdSetAlphaToOneEnableEXT\0",
25597                 );
25598                 let val = _f(cname);
25599                 if val.is_null() {
25600                     cmd_set_alpha_to_one_enable_ext
25601                 } else {
25602                     ::std::mem::transmute(val)
25603                 }
25604             },
25605             cmd_set_logic_op_enable_ext: unsafe {
25606                 unsafe extern "system" fn cmd_set_logic_op_enable_ext(
25607                     _command_buffer: CommandBuffer,
25608                     _logic_op_enable: Bool32,
25609                 ) {
25610                     panic!(concat!(
25611                         "Unable to load ",
25612                         stringify!(cmd_set_logic_op_enable_ext)
25613                     ))
25614                 }
25615                 let cname =
25616                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLogicOpEnableEXT\0");
25617                 let val = _f(cname);
25618                 if val.is_null() {
25619                     cmd_set_logic_op_enable_ext
25620                 } else {
25621                     ::std::mem::transmute(val)
25622                 }
25623             },
25624             cmd_set_color_blend_enable_ext: unsafe {
25625                 unsafe extern "system" fn cmd_set_color_blend_enable_ext(
25626                     _command_buffer: CommandBuffer,
25627                     _first_attachment: u32,
25628                     _attachment_count: u32,
25629                     _p_color_blend_enables: *const Bool32,
25630                 ) {
25631                     panic!(concat!(
25632                         "Unable to load ",
25633                         stringify!(cmd_set_color_blend_enable_ext)
25634                     ))
25635                 }
25636                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25637                     b"vkCmdSetColorBlendEnableEXT\0",
25638                 );
25639                 let val = _f(cname);
25640                 if val.is_null() {
25641                     cmd_set_color_blend_enable_ext
25642                 } else {
25643                     ::std::mem::transmute(val)
25644                 }
25645             },
25646             cmd_set_color_blend_equation_ext: unsafe {
25647                 unsafe extern "system" fn cmd_set_color_blend_equation_ext(
25648                     _command_buffer: CommandBuffer,
25649                     _first_attachment: u32,
25650                     _attachment_count: u32,
25651                     _p_color_blend_equations: *const ColorBlendEquationEXT,
25652                 ) {
25653                     panic!(concat!(
25654                         "Unable to load ",
25655                         stringify!(cmd_set_color_blend_equation_ext)
25656                     ))
25657                 }
25658                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25659                     b"vkCmdSetColorBlendEquationEXT\0",
25660                 );
25661                 let val = _f(cname);
25662                 if val.is_null() {
25663                     cmd_set_color_blend_equation_ext
25664                 } else {
25665                     ::std::mem::transmute(val)
25666                 }
25667             },
25668             cmd_set_color_write_mask_ext: unsafe {
25669                 unsafe extern "system" fn cmd_set_color_write_mask_ext(
25670                     _command_buffer: CommandBuffer,
25671                     _first_attachment: u32,
25672                     _attachment_count: u32,
25673                     _p_color_write_masks: *const ColorComponentFlags,
25674                 ) {
25675                     panic!(concat!(
25676                         "Unable to load ",
25677                         stringify!(cmd_set_color_write_mask_ext)
25678                     ))
25679                 }
25680                 let cname =
25681                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorWriteMaskEXT\0");
25682                 let val = _f(cname);
25683                 if val.is_null() {
25684                     cmd_set_color_write_mask_ext
25685                 } else {
25686                     ::std::mem::transmute(val)
25687                 }
25688             },
25689             cmd_set_rasterization_stream_ext: unsafe {
25690                 unsafe extern "system" fn cmd_set_rasterization_stream_ext(
25691                     _command_buffer: CommandBuffer,
25692                     _rasterization_stream: u32,
25693                 ) {
25694                     panic!(concat!(
25695                         "Unable to load ",
25696                         stringify!(cmd_set_rasterization_stream_ext)
25697                     ))
25698                 }
25699                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25700                     b"vkCmdSetRasterizationStreamEXT\0",
25701                 );
25702                 let val = _f(cname);
25703                 if val.is_null() {
25704                     cmd_set_rasterization_stream_ext
25705                 } else {
25706                     ::std::mem::transmute(val)
25707                 }
25708             },
25709             cmd_set_conservative_rasterization_mode_ext: unsafe {
25710                 unsafe extern "system" fn cmd_set_conservative_rasterization_mode_ext(
25711                     _command_buffer: CommandBuffer,
25712                     _conservative_rasterization_mode: ConservativeRasterizationModeEXT,
25713                 ) {
25714                     panic!(concat!(
25715                         "Unable to load ",
25716                         stringify!(cmd_set_conservative_rasterization_mode_ext)
25717                     ))
25718                 }
25719                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25720                     b"vkCmdSetConservativeRasterizationModeEXT\0",
25721                 );
25722                 let val = _f(cname);
25723                 if val.is_null() {
25724                     cmd_set_conservative_rasterization_mode_ext
25725                 } else {
25726                     ::std::mem::transmute(val)
25727                 }
25728             },
25729             cmd_set_extra_primitive_overestimation_size_ext: unsafe {
25730                 unsafe extern "system" fn cmd_set_extra_primitive_overestimation_size_ext(
25731                     _command_buffer: CommandBuffer,
25732                     _extra_primitive_overestimation_size: f32,
25733                 ) {
25734                     panic!(concat!(
25735                         "Unable to load ",
25736                         stringify!(cmd_set_extra_primitive_overestimation_size_ext)
25737                     ))
25738                 }
25739                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25740                     b"vkCmdSetExtraPrimitiveOverestimationSizeEXT\0",
25741                 );
25742                 let val = _f(cname);
25743                 if val.is_null() {
25744                     cmd_set_extra_primitive_overestimation_size_ext
25745                 } else {
25746                     ::std::mem::transmute(val)
25747                 }
25748             },
25749             cmd_set_depth_clip_enable_ext: unsafe {
25750                 unsafe extern "system" fn cmd_set_depth_clip_enable_ext(
25751                     _command_buffer: CommandBuffer,
25752                     _depth_clip_enable: Bool32,
25753                 ) {
25754                     panic!(concat!(
25755                         "Unable to load ",
25756                         stringify!(cmd_set_depth_clip_enable_ext)
25757                     ))
25758                 }
25759                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25760                     b"vkCmdSetDepthClipEnableEXT\0",
25761                 );
25762                 let val = _f(cname);
25763                 if val.is_null() {
25764                     cmd_set_depth_clip_enable_ext
25765                 } else {
25766                     ::std::mem::transmute(val)
25767                 }
25768             },
25769             cmd_set_sample_locations_enable_ext: unsafe {
25770                 unsafe extern "system" fn cmd_set_sample_locations_enable_ext(
25771                     _command_buffer: CommandBuffer,
25772                     _sample_locations_enable: Bool32,
25773                 ) {
25774                     panic!(concat!(
25775                         "Unable to load ",
25776                         stringify!(cmd_set_sample_locations_enable_ext)
25777                     ))
25778                 }
25779                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25780                     b"vkCmdSetSampleLocationsEnableEXT\0",
25781                 );
25782                 let val = _f(cname);
25783                 if val.is_null() {
25784                     cmd_set_sample_locations_enable_ext
25785                 } else {
25786                     ::std::mem::transmute(val)
25787                 }
25788             },
25789             cmd_set_color_blend_advanced_ext: unsafe {
25790                 unsafe extern "system" fn cmd_set_color_blend_advanced_ext(
25791                     _command_buffer: CommandBuffer,
25792                     _first_attachment: u32,
25793                     _attachment_count: u32,
25794                     _p_color_blend_advanced: *const ColorBlendAdvancedEXT,
25795                 ) {
25796                     panic!(concat!(
25797                         "Unable to load ",
25798                         stringify!(cmd_set_color_blend_advanced_ext)
25799                     ))
25800                 }
25801                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25802                     b"vkCmdSetColorBlendAdvancedEXT\0",
25803                 );
25804                 let val = _f(cname);
25805                 if val.is_null() {
25806                     cmd_set_color_blend_advanced_ext
25807                 } else {
25808                     ::std::mem::transmute(val)
25809                 }
25810             },
25811             cmd_set_provoking_vertex_mode_ext: unsafe {
25812                 unsafe extern "system" fn cmd_set_provoking_vertex_mode_ext(
25813                     _command_buffer: CommandBuffer,
25814                     _provoking_vertex_mode: ProvokingVertexModeEXT,
25815                 ) {
25816                     panic!(concat!(
25817                         "Unable to load ",
25818                         stringify!(cmd_set_provoking_vertex_mode_ext)
25819                     ))
25820                 }
25821                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25822                     b"vkCmdSetProvokingVertexModeEXT\0",
25823                 );
25824                 let val = _f(cname);
25825                 if val.is_null() {
25826                     cmd_set_provoking_vertex_mode_ext
25827                 } else {
25828                     ::std::mem::transmute(val)
25829                 }
25830             },
25831             cmd_set_line_rasterization_mode_ext: unsafe {
25832                 unsafe extern "system" fn cmd_set_line_rasterization_mode_ext(
25833                     _command_buffer: CommandBuffer,
25834                     _line_rasterization_mode: LineRasterizationModeEXT,
25835                 ) {
25836                     panic!(concat!(
25837                         "Unable to load ",
25838                         stringify!(cmd_set_line_rasterization_mode_ext)
25839                     ))
25840                 }
25841                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25842                     b"vkCmdSetLineRasterizationModeEXT\0",
25843                 );
25844                 let val = _f(cname);
25845                 if val.is_null() {
25846                     cmd_set_line_rasterization_mode_ext
25847                 } else {
25848                     ::std::mem::transmute(val)
25849                 }
25850             },
25851             cmd_set_line_stipple_enable_ext: unsafe {
25852                 unsafe extern "system" fn cmd_set_line_stipple_enable_ext(
25853                     _command_buffer: CommandBuffer,
25854                     _stippled_line_enable: Bool32,
25855                 ) {
25856                     panic!(concat!(
25857                         "Unable to load ",
25858                         stringify!(cmd_set_line_stipple_enable_ext)
25859                     ))
25860                 }
25861                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25862                     b"vkCmdSetLineStippleEnableEXT\0",
25863                 );
25864                 let val = _f(cname);
25865                 if val.is_null() {
25866                     cmd_set_line_stipple_enable_ext
25867                 } else {
25868                     ::std::mem::transmute(val)
25869                 }
25870             },
25871             cmd_set_depth_clip_negative_one_to_one_ext: unsafe {
25872                 unsafe extern "system" fn cmd_set_depth_clip_negative_one_to_one_ext(
25873                     _command_buffer: CommandBuffer,
25874                     _negative_one_to_one: Bool32,
25875                 ) {
25876                     panic!(concat!(
25877                         "Unable to load ",
25878                         stringify!(cmd_set_depth_clip_negative_one_to_one_ext)
25879                     ))
25880                 }
25881                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25882                     b"vkCmdSetDepthClipNegativeOneToOneEXT\0",
25883                 );
25884                 let val = _f(cname);
25885                 if val.is_null() {
25886                     cmd_set_depth_clip_negative_one_to_one_ext
25887                 } else {
25888                     ::std::mem::transmute(val)
25889                 }
25890             },
25891             cmd_set_viewport_w_scaling_enable_nv: unsafe {
25892                 unsafe extern "system" fn cmd_set_viewport_w_scaling_enable_nv(
25893                     _command_buffer: CommandBuffer,
25894                     _viewport_w_scaling_enable: Bool32,
25895                 ) {
25896                     panic!(concat!(
25897                         "Unable to load ",
25898                         stringify!(cmd_set_viewport_w_scaling_enable_nv)
25899                     ))
25900                 }
25901                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25902                     b"vkCmdSetViewportWScalingEnableNV\0",
25903                 );
25904                 let val = _f(cname);
25905                 if val.is_null() {
25906                     cmd_set_viewport_w_scaling_enable_nv
25907                 } else {
25908                     ::std::mem::transmute(val)
25909                 }
25910             },
25911             cmd_set_viewport_swizzle_nv: unsafe {
25912                 unsafe extern "system" fn cmd_set_viewport_swizzle_nv(
25913                     _command_buffer: CommandBuffer,
25914                     _first_viewport: u32,
25915                     _viewport_count: u32,
25916                     _p_viewport_swizzles: *const ViewportSwizzleNV,
25917                 ) {
25918                     panic!(concat!(
25919                         "Unable to load ",
25920                         stringify!(cmd_set_viewport_swizzle_nv)
25921                     ))
25922                 }
25923                 let cname =
25924                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetViewportSwizzleNV\0");
25925                 let val = _f(cname);
25926                 if val.is_null() {
25927                     cmd_set_viewport_swizzle_nv
25928                 } else {
25929                     ::std::mem::transmute(val)
25930                 }
25931             },
25932             cmd_set_coverage_to_color_enable_nv: unsafe {
25933                 unsafe extern "system" fn cmd_set_coverage_to_color_enable_nv(
25934                     _command_buffer: CommandBuffer,
25935                     _coverage_to_color_enable: Bool32,
25936                 ) {
25937                     panic!(concat!(
25938                         "Unable to load ",
25939                         stringify!(cmd_set_coverage_to_color_enable_nv)
25940                     ))
25941                 }
25942                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25943                     b"vkCmdSetCoverageToColorEnableNV\0",
25944                 );
25945                 let val = _f(cname);
25946                 if val.is_null() {
25947                     cmd_set_coverage_to_color_enable_nv
25948                 } else {
25949                     ::std::mem::transmute(val)
25950                 }
25951             },
25952             cmd_set_coverage_to_color_location_nv: unsafe {
25953                 unsafe extern "system" fn cmd_set_coverage_to_color_location_nv(
25954                     _command_buffer: CommandBuffer,
25955                     _coverage_to_color_location: u32,
25956                 ) {
25957                     panic!(concat!(
25958                         "Unable to load ",
25959                         stringify!(cmd_set_coverage_to_color_location_nv)
25960                     ))
25961                 }
25962                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25963                     b"vkCmdSetCoverageToColorLocationNV\0",
25964                 );
25965                 let val = _f(cname);
25966                 if val.is_null() {
25967                     cmd_set_coverage_to_color_location_nv
25968                 } else {
25969                     ::std::mem::transmute(val)
25970                 }
25971             },
25972             cmd_set_coverage_modulation_mode_nv: unsafe {
25973                 unsafe extern "system" fn cmd_set_coverage_modulation_mode_nv(
25974                     _command_buffer: CommandBuffer,
25975                     _coverage_modulation_mode: CoverageModulationModeNV,
25976                 ) {
25977                     panic!(concat!(
25978                         "Unable to load ",
25979                         stringify!(cmd_set_coverage_modulation_mode_nv)
25980                     ))
25981                 }
25982                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
25983                     b"vkCmdSetCoverageModulationModeNV\0",
25984                 );
25985                 let val = _f(cname);
25986                 if val.is_null() {
25987                     cmd_set_coverage_modulation_mode_nv
25988                 } else {
25989                     ::std::mem::transmute(val)
25990                 }
25991             },
25992             cmd_set_coverage_modulation_table_enable_nv: unsafe {
25993                 unsafe extern "system" fn cmd_set_coverage_modulation_table_enable_nv(
25994                     _command_buffer: CommandBuffer,
25995                     _coverage_modulation_table_enable: Bool32,
25996                 ) {
25997                     panic!(concat!(
25998                         "Unable to load ",
25999                         stringify!(cmd_set_coverage_modulation_table_enable_nv)
26000                     ))
26001                 }
26002                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
26003                     b"vkCmdSetCoverageModulationTableEnableNV\0",
26004                 );
26005                 let val = _f(cname);
26006                 if val.is_null() {
26007                     cmd_set_coverage_modulation_table_enable_nv
26008                 } else {
26009                     ::std::mem::transmute(val)
26010                 }
26011             },
26012             cmd_set_coverage_modulation_table_nv: unsafe {
26013                 unsafe extern "system" fn cmd_set_coverage_modulation_table_nv(
26014                     _command_buffer: CommandBuffer,
26015                     _coverage_modulation_table_count: u32,
26016                     _p_coverage_modulation_table: *const f32,
26017                 ) {
26018                     panic!(concat!(
26019                         "Unable to load ",
26020                         stringify!(cmd_set_coverage_modulation_table_nv)
26021                     ))
26022                 }
26023                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
26024                     b"vkCmdSetCoverageModulationTableNV\0",
26025                 );
26026                 let val = _f(cname);
26027                 if val.is_null() {
26028                     cmd_set_coverage_modulation_table_nv
26029                 } else {
26030                     ::std::mem::transmute(val)
26031                 }
26032             },
26033             cmd_set_shading_rate_image_enable_nv: unsafe {
26034                 unsafe extern "system" fn cmd_set_shading_rate_image_enable_nv(
26035                     _command_buffer: CommandBuffer,
26036                     _shading_rate_image_enable: Bool32,
26037                 ) {
26038                     panic!(concat!(
26039                         "Unable to load ",
26040                         stringify!(cmd_set_shading_rate_image_enable_nv)
26041                     ))
26042                 }
26043                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
26044                     b"vkCmdSetShadingRateImageEnableNV\0",
26045                 );
26046                 let val = _f(cname);
26047                 if val.is_null() {
26048                     cmd_set_shading_rate_image_enable_nv
26049                 } else {
26050                     ::std::mem::transmute(val)
26051                 }
26052             },
26053             cmd_set_representative_fragment_test_enable_nv: unsafe {
26054                 unsafe extern "system" fn cmd_set_representative_fragment_test_enable_nv(
26055                     _command_buffer: CommandBuffer,
26056                     _representative_fragment_test_enable: Bool32,
26057                 ) {
26058                     panic!(concat!(
26059                         "Unable to load ",
26060                         stringify!(cmd_set_representative_fragment_test_enable_nv)
26061                     ))
26062                 }
26063                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
26064                     b"vkCmdSetRepresentativeFragmentTestEnableNV\0",
26065                 );
26066                 let val = _f(cname);
26067                 if val.is_null() {
26068                     cmd_set_representative_fragment_test_enable_nv
26069                 } else {
26070                     ::std::mem::transmute(val)
26071                 }
26072             },
26073             cmd_set_coverage_reduction_mode_nv: unsafe {
26074                 unsafe extern "system" fn cmd_set_coverage_reduction_mode_nv(
26075                     _command_buffer: CommandBuffer,
26076                     _coverage_reduction_mode: CoverageReductionModeNV,
26077                 ) {
26078                     panic!(concat!(
26079                         "Unable to load ",
26080                         stringify!(cmd_set_coverage_reduction_mode_nv)
26081                     ))
26082                 }
26083                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
26084                     b"vkCmdSetCoverageReductionModeNV\0",
26085                 );
26086                 let val = _f(cname);
26087                 if val.is_null() {
26088                     cmd_set_coverage_reduction_mode_nv
26089                 } else {
26090                     ::std::mem::transmute(val)
26091                 }
26092             },
26093         }
26094     }
26095 }
26096 #[doc = "Generated from 'VK_EXT_shader_object'"]
26097 impl ObjectType {
26098     pub const SHADER_EXT: Self = Self(1_000_482_000);
26099 }
26100 #[doc = "Generated from 'VK_EXT_shader_object'"]
26101 impl Result {
26102     pub const ERROR_INCOMPATIBLE_SHADER_BINARY_EXT: Self = Self(1_000_482_000);
26103 }
26104 #[doc = "Generated from 'VK_EXT_shader_object'"]
26105 impl ShaderCreateFlagsEXT {
26106     pub const ALLOW_VARYING_SUBGROUP_SIZE: Self = Self(0b10);
26107     pub const REQUIRE_FULL_SUBGROUPS: Self = Self(0b100);
26108     pub const NO_TASK_SHADER: Self = Self(0b1000);
26109     pub const DISPATCH_BASE: Self = Self(0b1_0000);
26110     pub const FRAGMENT_SHADING_RATE_ATTACHMENT: Self = Self(0b10_0000);
26111     pub const FRAGMENT_DENSITY_MAP_ATTACHMENT: Self = Self(0b100_0000);
26112 }
26113 #[doc = "Generated from 'VK_EXT_shader_object'"]
26114 impl StructureType {
26115     pub const PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT: Self = Self(1_000_482_000);
26116     pub const PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT: Self = Self(1_000_482_001);
26117     pub const SHADER_CREATE_INFO_EXT: Self = Self(1_000_482_002);
26118     pub const SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT: Self =
26119         Self::PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO;
26120 }
26121 impl ExtExtension484Fn {
26122     #[inline]
name() -> &'static ::std::ffi::CStr26123     pub const fn name() -> &'static ::std::ffi::CStr {
26124         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_484\0") }
26125     }
26126     pub const SPEC_VERSION: u32 = 0u32;
26127 }
26128 #[derive(Clone)]
26129 pub struct ExtExtension484Fn {}
26130 unsafe impl Send for ExtExtension484Fn {}
26131 unsafe impl Sync for ExtExtension484Fn {}
26132 impl ExtExtension484Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26133     pub fn load<F>(mut _f: F) -> Self
26134     where
26135         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26136     {
26137         Self {}
26138     }
26139 }
26140 impl QcomTilePropertiesFn {
26141     #[inline]
name() -> &'static ::std::ffi::CStr26142     pub const fn name() -> &'static ::std::ffi::CStr {
26143         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_tile_properties\0") }
26144     }
26145     pub const SPEC_VERSION: u32 = 1u32;
26146 }
26147 #[allow(non_camel_case_types)]
26148 pub type PFN_vkGetFramebufferTilePropertiesQCOM = unsafe extern "system" fn(
26149     device: Device,
26150     framebuffer: Framebuffer,
26151     p_properties_count: *mut u32,
26152     p_properties: *mut TilePropertiesQCOM,
26153 ) -> Result;
26154 #[allow(non_camel_case_types)]
26155 pub type PFN_vkGetDynamicRenderingTilePropertiesQCOM = unsafe extern "system" fn(
26156     device: Device,
26157     p_rendering_info: *const RenderingInfo,
26158     p_properties: *mut TilePropertiesQCOM,
26159 ) -> Result;
26160 #[derive(Clone)]
26161 pub struct QcomTilePropertiesFn {
26162     pub get_framebuffer_tile_properties_qcom: PFN_vkGetFramebufferTilePropertiesQCOM,
26163     pub get_dynamic_rendering_tile_properties_qcom: PFN_vkGetDynamicRenderingTilePropertiesQCOM,
26164 }
26165 unsafe impl Send for QcomTilePropertiesFn {}
26166 unsafe impl Sync for QcomTilePropertiesFn {}
26167 impl QcomTilePropertiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26168     pub fn load<F>(mut _f: F) -> Self
26169     where
26170         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26171     {
26172         Self {
26173             get_framebuffer_tile_properties_qcom: unsafe {
26174                 unsafe extern "system" fn get_framebuffer_tile_properties_qcom(
26175                     _device: Device,
26176                     _framebuffer: Framebuffer,
26177                     _p_properties_count: *mut u32,
26178                     _p_properties: *mut TilePropertiesQCOM,
26179                 ) -> Result {
26180                     panic!(concat!(
26181                         "Unable to load ",
26182                         stringify!(get_framebuffer_tile_properties_qcom)
26183                     ))
26184                 }
26185                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
26186                     b"vkGetFramebufferTilePropertiesQCOM\0",
26187                 );
26188                 let val = _f(cname);
26189                 if val.is_null() {
26190                     get_framebuffer_tile_properties_qcom
26191                 } else {
26192                     ::std::mem::transmute(val)
26193                 }
26194             },
26195             get_dynamic_rendering_tile_properties_qcom: unsafe {
26196                 unsafe extern "system" fn get_dynamic_rendering_tile_properties_qcom(
26197                     _device: Device,
26198                     _p_rendering_info: *const RenderingInfo,
26199                     _p_properties: *mut TilePropertiesQCOM,
26200                 ) -> Result {
26201                     panic!(concat!(
26202                         "Unable to load ",
26203                         stringify!(get_dynamic_rendering_tile_properties_qcom)
26204                     ))
26205                 }
26206                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
26207                     b"vkGetDynamicRenderingTilePropertiesQCOM\0",
26208                 );
26209                 let val = _f(cname);
26210                 if val.is_null() {
26211                     get_dynamic_rendering_tile_properties_qcom
26212                 } else {
26213                     ::std::mem::transmute(val)
26214                 }
26215             },
26216         }
26217     }
26218 }
26219 #[doc = "Generated from 'VK_QCOM_tile_properties'"]
26220 impl StructureType {
26221     pub const PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM: Self = Self(1_000_484_000);
26222     pub const TILE_PROPERTIES_QCOM: Self = Self(1_000_484_001);
26223 }
26224 impl SecAmigoProfilingFn {
26225     #[inline]
name() -> &'static ::std::ffi::CStr26226     pub const fn name() -> &'static ::std::ffi::CStr {
26227         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_SEC_amigo_profiling\0") }
26228     }
26229     pub const SPEC_VERSION: u32 = 1u32;
26230 }
26231 #[derive(Clone)]
26232 pub struct SecAmigoProfilingFn {}
26233 unsafe impl Send for SecAmigoProfilingFn {}
26234 unsafe impl Sync for SecAmigoProfilingFn {}
26235 impl SecAmigoProfilingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26236     pub fn load<F>(mut _f: F) -> Self
26237     where
26238         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26239     {
26240         Self {}
26241     }
26242 }
26243 #[doc = "Generated from 'VK_SEC_amigo_profiling'"]
26244 impl StructureType {
26245     pub const PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC: Self = Self(1_000_485_000);
26246     pub const AMIGO_PROFILING_SUBMIT_INFO_SEC: Self = Self(1_000_485_001);
26247 }
26248 impl ExtExtension487Fn {
26249     #[inline]
name() -> &'static ::std::ffi::CStr26250     pub const fn name() -> &'static ::std::ffi::CStr {
26251         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_487\0") }
26252     }
26253     pub const SPEC_VERSION: u32 = 0u32;
26254 }
26255 #[derive(Clone)]
26256 pub struct ExtExtension487Fn {}
26257 unsafe impl Send for ExtExtension487Fn {}
26258 unsafe impl Sync for ExtExtension487Fn {}
26259 impl ExtExtension487Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26260     pub fn load<F>(mut _f: F) -> Self
26261     where
26262         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26263     {
26264         Self {}
26265     }
26266 }
26267 impl ExtExtension488Fn {
26268     #[inline]
name() -> &'static ::std::ffi::CStr26269     pub const fn name() -> &'static ::std::ffi::CStr {
26270         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_488\0") }
26271     }
26272     pub const SPEC_VERSION: u32 = 0u32;
26273 }
26274 #[derive(Clone)]
26275 pub struct ExtExtension488Fn {}
26276 unsafe impl Send for ExtExtension488Fn {}
26277 unsafe impl Sync for ExtExtension488Fn {}
26278 impl ExtExtension488Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26279     pub fn load<F>(mut _f: F) -> Self
26280     where
26281         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26282     {
26283         Self {}
26284     }
26285 }
26286 impl QcomMultiviewPerViewViewportsFn {
26287     #[inline]
name() -> &'static ::std::ffi::CStr26288     pub const fn name() -> &'static ::std::ffi::CStr {
26289         unsafe {
26290             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
26291                 b"VK_QCOM_multiview_per_view_viewports\0",
26292             )
26293         }
26294     }
26295     pub const SPEC_VERSION: u32 = 1u32;
26296 }
26297 #[derive(Clone)]
26298 pub struct QcomMultiviewPerViewViewportsFn {}
26299 unsafe impl Send for QcomMultiviewPerViewViewportsFn {}
26300 unsafe impl Sync for QcomMultiviewPerViewViewportsFn {}
26301 impl QcomMultiviewPerViewViewportsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26302     pub fn load<F>(mut _f: F) -> Self
26303     where
26304         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26305     {
26306         Self {}
26307     }
26308 }
26309 #[doc = "Generated from 'VK_QCOM_multiview_per_view_viewports'"]
26310 impl StructureType {
26311     pub const PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM: Self =
26312         Self(1_000_488_000);
26313 }
26314 impl NvRayTracingInvocationReorderFn {
26315     #[inline]
name() -> &'static ::std::ffi::CStr26316     pub const fn name() -> &'static ::std::ffi::CStr {
26317         unsafe {
26318             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
26319                 b"VK_NV_ray_tracing_invocation_reorder\0",
26320             )
26321         }
26322     }
26323     pub const SPEC_VERSION: u32 = 1u32;
26324 }
26325 #[derive(Clone)]
26326 pub struct NvRayTracingInvocationReorderFn {}
26327 unsafe impl Send for NvRayTracingInvocationReorderFn {}
26328 unsafe impl Sync for NvRayTracingInvocationReorderFn {}
26329 impl NvRayTracingInvocationReorderFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26330     pub fn load<F>(mut _f: F) -> Self
26331     where
26332         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26333     {
26334         Self {}
26335     }
26336 }
26337 #[doc = "Generated from 'VK_NV_ray_tracing_invocation_reorder'"]
26338 impl StructureType {
26339     pub const PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV: Self =
26340         Self(1_000_490_000);
26341     pub const PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV: Self =
26342         Self(1_000_490_001);
26343 }
26344 impl NvExtension492Fn {
26345     #[inline]
name() -> &'static ::std::ffi::CStr26346     pub const fn name() -> &'static ::std::ffi::CStr {
26347         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_492\0") }
26348     }
26349     pub const SPEC_VERSION: u32 = 0u32;
26350 }
26351 #[derive(Clone)]
26352 pub struct NvExtension492Fn {}
26353 unsafe impl Send for NvExtension492Fn {}
26354 unsafe impl Sync for NvExtension492Fn {}
26355 impl NvExtension492Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26356     pub fn load<F>(mut _f: F) -> Self
26357     where
26358         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26359     {
26360         Self {}
26361     }
26362 }
26363 impl NvExtension493Fn {
26364     #[inline]
name() -> &'static ::std::ffi::CStr26365     pub const fn name() -> &'static ::std::ffi::CStr {
26366         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_493\0") }
26367     }
26368     pub const SPEC_VERSION: u32 = 0u32;
26369 }
26370 #[derive(Clone)]
26371 pub struct NvExtension493Fn {}
26372 unsafe impl Send for NvExtension493Fn {}
26373 unsafe impl Sync for NvExtension493Fn {}
26374 impl NvExtension493Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26375     pub fn load<F>(mut _f: F) -> Self
26376     where
26377         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26378     {
26379         Self {}
26380     }
26381 }
26382 impl NvExtension494Fn {
26383     #[inline]
name() -> &'static ::std::ffi::CStr26384     pub const fn name() -> &'static ::std::ffi::CStr {
26385         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_494\0") }
26386     }
26387     pub const SPEC_VERSION: u32 = 0u32;
26388 }
26389 #[derive(Clone)]
26390 pub struct NvExtension494Fn {}
26391 unsafe impl Send for NvExtension494Fn {}
26392 unsafe impl Sync for NvExtension494Fn {}
26393 impl NvExtension494Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26394     pub fn load<F>(mut _f: F) -> Self
26395     where
26396         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26397     {
26398         Self {}
26399     }
26400 }
26401 impl ExtMutableDescriptorTypeFn {
26402     #[inline]
name() -> &'static ::std::ffi::CStr26403     pub const fn name() -> &'static ::std::ffi::CStr {
26404         unsafe {
26405             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_mutable_descriptor_type\0")
26406         }
26407     }
26408     pub const SPEC_VERSION: u32 = 1u32;
26409 }
26410 #[derive(Clone)]
26411 pub struct ExtMutableDescriptorTypeFn {}
26412 unsafe impl Send for ExtMutableDescriptorTypeFn {}
26413 unsafe impl Sync for ExtMutableDescriptorTypeFn {}
26414 impl ExtMutableDescriptorTypeFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26415     pub fn load<F>(mut _f: F) -> Self
26416     where
26417         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26418     {
26419         Self {}
26420     }
26421 }
26422 #[doc = "Generated from 'VK_EXT_mutable_descriptor_type'"]
26423 impl DescriptorPoolCreateFlags {
26424     pub const HOST_ONLY_EXT: Self = Self(0b100);
26425 }
26426 #[doc = "Generated from 'VK_EXT_mutable_descriptor_type'"]
26427 impl DescriptorSetLayoutCreateFlags {
26428     pub const HOST_ONLY_POOL_EXT: Self = Self(0b100);
26429 }
26430 #[doc = "Generated from 'VK_EXT_mutable_descriptor_type'"]
26431 impl DescriptorType {
26432     pub const MUTABLE_EXT: Self = Self(1_000_351_000);
26433 }
26434 #[doc = "Generated from 'VK_EXT_mutable_descriptor_type'"]
26435 impl StructureType {
26436     pub const PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT: Self = Self(1_000_351_000);
26437     pub const MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT: Self = Self(1_000_351_002);
26438 }
26439 impl ExtExtension496Fn {
26440     #[inline]
name() -> &'static ::std::ffi::CStr26441     pub const fn name() -> &'static ::std::ffi::CStr {
26442         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_496\0") }
26443     }
26444     pub const SPEC_VERSION: u32 = 0u32;
26445 }
26446 #[derive(Clone)]
26447 pub struct ExtExtension496Fn {}
26448 unsafe impl Send for ExtExtension496Fn {}
26449 unsafe impl Sync for ExtExtension496Fn {}
26450 impl ExtExtension496Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26451     pub fn load<F>(mut _f: F) -> Self
26452     where
26453         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26454     {
26455         Self {}
26456     }
26457 }
26458 impl ExtExtension497Fn {
26459     #[inline]
name() -> &'static ::std::ffi::CStr26460     pub const fn name() -> &'static ::std::ffi::CStr {
26461         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_497\0") }
26462     }
26463     pub const SPEC_VERSION: u32 = 0u32;
26464 }
26465 #[derive(Clone)]
26466 pub struct ExtExtension497Fn {}
26467 unsafe impl Send for ExtExtension497Fn {}
26468 unsafe impl Sync for ExtExtension497Fn {}
26469 impl ExtExtension497Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26470     pub fn load<F>(mut _f: F) -> Self
26471     where
26472         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26473     {
26474         Self {}
26475     }
26476 }
26477 impl ArmShaderCoreBuiltinsFn {
26478     #[inline]
name() -> &'static ::std::ffi::CStr26479     pub const fn name() -> &'static ::std::ffi::CStr {
26480         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_ARM_shader_core_builtins\0") }
26481     }
26482     pub const SPEC_VERSION: u32 = 2u32;
26483 }
26484 #[derive(Clone)]
26485 pub struct ArmShaderCoreBuiltinsFn {}
26486 unsafe impl Send for ArmShaderCoreBuiltinsFn {}
26487 unsafe impl Sync for ArmShaderCoreBuiltinsFn {}
26488 impl ArmShaderCoreBuiltinsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26489     pub fn load<F>(mut _f: F) -> Self
26490     where
26491         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26492     {
26493         Self {}
26494     }
26495 }
26496 #[doc = "Generated from 'VK_ARM_shader_core_builtins'"]
26497 impl StructureType {
26498     pub const PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM: Self = Self(1_000_497_000);
26499     pub const PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM: Self = Self(1_000_497_001);
26500 }
26501 impl ExtPipelineLibraryGroupHandlesFn {
26502     #[inline]
name() -> &'static ::std::ffi::CStr26503     pub const fn name() -> &'static ::std::ffi::CStr {
26504         unsafe {
26505             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
26506                 b"VK_EXT_pipeline_library_group_handles\0",
26507             )
26508         }
26509     }
26510     pub const SPEC_VERSION: u32 = 1u32;
26511 }
26512 #[derive(Clone)]
26513 pub struct ExtPipelineLibraryGroupHandlesFn {}
26514 unsafe impl Send for ExtPipelineLibraryGroupHandlesFn {}
26515 unsafe impl Sync for ExtPipelineLibraryGroupHandlesFn {}
26516 impl ExtPipelineLibraryGroupHandlesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26517     pub fn load<F>(mut _f: F) -> Self
26518     where
26519         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26520     {
26521         Self {}
26522     }
26523 }
26524 #[doc = "Generated from 'VK_EXT_pipeline_library_group_handles'"]
26525 impl StructureType {
26526     pub const PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT: Self =
26527         Self(1_000_498_000);
26528 }
26529 impl ExtDynamicRenderingUnusedAttachmentsFn {
26530     #[inline]
name() -> &'static ::std::ffi::CStr26531     pub const fn name() -> &'static ::std::ffi::CStr {
26532         unsafe {
26533             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
26534                 b"VK_EXT_dynamic_rendering_unused_attachments\0",
26535             )
26536         }
26537     }
26538     pub const SPEC_VERSION: u32 = 1u32;
26539 }
26540 #[derive(Clone)]
26541 pub struct ExtDynamicRenderingUnusedAttachmentsFn {}
26542 unsafe impl Send for ExtDynamicRenderingUnusedAttachmentsFn {}
26543 unsafe impl Sync for ExtDynamicRenderingUnusedAttachmentsFn {}
26544 impl ExtDynamicRenderingUnusedAttachmentsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26545     pub fn load<F>(mut _f: F) -> Self
26546     where
26547         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26548     {
26549         Self {}
26550     }
26551 }
26552 #[doc = "Generated from 'VK_EXT_dynamic_rendering_unused_attachments'"]
26553 impl StructureType {
26554     pub const PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT: Self =
26555         Self(1_000_499_000);
26556 }
26557 impl ExtExtension501Fn {
26558     #[inline]
name() -> &'static ::std::ffi::CStr26559     pub const fn name() -> &'static ::std::ffi::CStr {
26560         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_501\0") }
26561     }
26562     pub const SPEC_VERSION: u32 = 0u32;
26563 }
26564 #[derive(Clone)]
26565 pub struct ExtExtension501Fn {}
26566 unsafe impl Send for ExtExtension501Fn {}
26567 unsafe impl Sync for ExtExtension501Fn {}
26568 impl ExtExtension501Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26569     pub fn load<F>(mut _f: F) -> Self
26570     where
26571         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26572     {
26573         Self {}
26574     }
26575 }
26576 impl ExtExtension502Fn {
26577     #[inline]
name() -> &'static ::std::ffi::CStr26578     pub const fn name() -> &'static ::std::ffi::CStr {
26579         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_502\0") }
26580     }
26581     pub const SPEC_VERSION: u32 = 0u32;
26582 }
26583 #[derive(Clone)]
26584 pub struct ExtExtension502Fn {}
26585 unsafe impl Send for ExtExtension502Fn {}
26586 unsafe impl Sync for ExtExtension502Fn {}
26587 impl ExtExtension502Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26588     pub fn load<F>(mut _f: F) -> Self
26589     where
26590         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26591     {
26592         Self {}
26593     }
26594 }
26595 impl ExtExtension503Fn {
26596     #[inline]
name() -> &'static ::std::ffi::CStr26597     pub const fn name() -> &'static ::std::ffi::CStr {
26598         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_503\0") }
26599     }
26600     pub const SPEC_VERSION: u32 = 0u32;
26601 }
26602 #[derive(Clone)]
26603 pub struct ExtExtension503Fn {}
26604 unsafe impl Send for ExtExtension503Fn {}
26605 unsafe impl Sync for ExtExtension503Fn {}
26606 impl ExtExtension503Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26607     pub fn load<F>(mut _f: F) -> Self
26608     where
26609         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26610     {
26611         Self {}
26612     }
26613 }
26614 impl NvExtension504Fn {
26615     #[inline]
name() -> &'static ::std::ffi::CStr26616     pub const fn name() -> &'static ::std::ffi::CStr {
26617         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_504\0") }
26618     }
26619     pub const SPEC_VERSION: u32 = 0u32;
26620 }
26621 #[derive(Clone)]
26622 pub struct NvExtension504Fn {}
26623 unsafe impl Send for NvExtension504Fn {}
26624 unsafe impl Sync for NvExtension504Fn {}
26625 impl NvExtension504Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26626     pub fn load<F>(mut _f: F) -> Self
26627     where
26628         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26629     {
26630         Self {}
26631     }
26632 }
26633 impl ExtExtension505Fn {
26634     #[inline]
name() -> &'static ::std::ffi::CStr26635     pub const fn name() -> &'static ::std::ffi::CStr {
26636         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_505\0") }
26637     }
26638     pub const SPEC_VERSION: u32 = 0u32;
26639 }
26640 #[derive(Clone)]
26641 pub struct ExtExtension505Fn {}
26642 unsafe impl Send for ExtExtension505Fn {}
26643 unsafe impl Sync for ExtExtension505Fn {}
26644 impl ExtExtension505Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26645     pub fn load<F>(mut _f: F) -> Self
26646     where
26647         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26648     {
26649         Self {}
26650     }
26651 }
26652 impl NvExtension506Fn {
26653     #[inline]
name() -> &'static ::std::ffi::CStr26654     pub const fn name() -> &'static ::std::ffi::CStr {
26655         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_506\0") }
26656     }
26657     pub const SPEC_VERSION: u32 = 0u32;
26658 }
26659 #[derive(Clone)]
26660 pub struct NvExtension506Fn {}
26661 unsafe impl Send for NvExtension506Fn {}
26662 unsafe impl Sync for NvExtension506Fn {}
26663 impl NvExtension506Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26664     pub fn load<F>(mut _f: F) -> Self
26665     where
26666         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26667     {
26668         Self {}
26669     }
26670 }
26671 impl KhrExtension507Fn {
26672     #[inline]
name() -> &'static ::std::ffi::CStr26673     pub const fn name() -> &'static ::std::ffi::CStr {
26674         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_507\0") }
26675     }
26676     pub const SPEC_VERSION: u32 = 0u32;
26677 }
26678 #[derive(Clone)]
26679 pub struct KhrExtension507Fn {}
26680 unsafe impl Send for KhrExtension507Fn {}
26681 unsafe impl Sync for KhrExtension507Fn {}
26682 impl KhrExtension507Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26683     pub fn load<F>(mut _f: F) -> Self
26684     where
26685         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26686     {
26687         Self {}
26688     }
26689 }
26690 impl ExtExtension508Fn {
26691     #[inline]
name() -> &'static ::std::ffi::CStr26692     pub const fn name() -> &'static ::std::ffi::CStr {
26693         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_508\0") }
26694     }
26695     pub const SPEC_VERSION: u32 = 0u32;
26696 }
26697 #[derive(Clone)]
26698 pub struct ExtExtension508Fn {}
26699 unsafe impl Send for ExtExtension508Fn {}
26700 unsafe impl Sync for ExtExtension508Fn {}
26701 impl ExtExtension508Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26702     pub fn load<F>(mut _f: F) -> Self
26703     where
26704         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26705     {
26706         Self {}
26707     }
26708 }
26709 #[doc = "Generated from 'VK_EXT_extension_508'"]
26710 impl AccessFlags2 {
26711     pub const RESERVED_47_EXT: Self =
26712         Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
26713     pub const RESERVED_48_EXT: Self =
26714         Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
26715 }
26716 #[doc = "Generated from 'VK_EXT_extension_508'"]
26717 impl PipelineStageFlags2 {
26718     pub const RESERVED_42_EXT: Self = Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
26719 }
26720 #[doc = "Generated from 'VK_EXT_extension_508'"]
26721 impl QueueFlags {
26722     pub const RESERVED_10_EXT: Self = Self(0b100_0000_0000);
26723 }
26724 impl ExtExtension509Fn {
26725     #[inline]
name() -> &'static ::std::ffi::CStr26726     pub const fn name() -> &'static ::std::ffi::CStr {
26727         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_509\0") }
26728     }
26729     pub const SPEC_VERSION: u32 = 0u32;
26730 }
26731 #[derive(Clone)]
26732 pub struct ExtExtension509Fn {}
26733 unsafe impl Send for ExtExtension509Fn {}
26734 unsafe impl Sync for ExtExtension509Fn {}
26735 impl ExtExtension509Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26736     pub fn load<F>(mut _f: F) -> Self
26737     where
26738         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26739     {
26740         Self {}
26741     }
26742 }
26743 impl MesaExtension510Fn {
26744     #[inline]
name() -> &'static ::std::ffi::CStr26745     pub const fn name() -> &'static ::std::ffi::CStr {
26746         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_MESA_extension_510\0") }
26747     }
26748     pub const SPEC_VERSION: u32 = 0u32;
26749 }
26750 #[derive(Clone)]
26751 pub struct MesaExtension510Fn {}
26752 unsafe impl Send for MesaExtension510Fn {}
26753 unsafe impl Sync for MesaExtension510Fn {}
26754 impl MesaExtension510Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26755     pub fn load<F>(mut _f: F) -> Self
26756     where
26757         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26758     {
26759         Self {}
26760     }
26761 }
26762 impl QcomMultiviewPerViewRenderAreasFn {
26763     #[inline]
name() -> &'static ::std::ffi::CStr26764     pub const fn name() -> &'static ::std::ffi::CStr {
26765         unsafe {
26766             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
26767                 b"VK_QCOM_multiview_per_view_render_areas\0",
26768             )
26769         }
26770     }
26771     pub const SPEC_VERSION: u32 = 1u32;
26772 }
26773 #[derive(Clone)]
26774 pub struct QcomMultiviewPerViewRenderAreasFn {}
26775 unsafe impl Send for QcomMultiviewPerViewRenderAreasFn {}
26776 unsafe impl Sync for QcomMultiviewPerViewRenderAreasFn {}
26777 impl QcomMultiviewPerViewRenderAreasFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26778     pub fn load<F>(mut _f: F) -> Self
26779     where
26780         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26781     {
26782         Self {}
26783     }
26784 }
26785 #[doc = "Generated from 'VK_QCOM_multiview_per_view_render_areas'"]
26786 impl StructureType {
26787     pub const PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM: Self =
26788         Self(1_000_510_000);
26789     pub const MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM: Self =
26790         Self(1_000_510_001);
26791 }
26792 impl ExtExtension512Fn {
26793     #[inline]
name() -> &'static ::std::ffi::CStr26794     pub const fn name() -> &'static ::std::ffi::CStr {
26795         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_512\0") }
26796     }
26797     pub const SPEC_VERSION: u32 = 0u32;
26798 }
26799 #[derive(Clone)]
26800 pub struct ExtExtension512Fn {}
26801 unsafe impl Send for ExtExtension512Fn {}
26802 unsafe impl Sync for ExtExtension512Fn {}
26803 impl ExtExtension512Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26804     pub fn load<F>(mut _f: F) -> Self
26805     where
26806         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26807     {
26808         Self {}
26809     }
26810 }
26811 impl KhrExtension513Fn {
26812     #[inline]
name() -> &'static ::std::ffi::CStr26813     pub const fn name() -> &'static ::std::ffi::CStr {
26814         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_513\0") }
26815     }
26816     pub const SPEC_VERSION: u32 = 0u32;
26817 }
26818 #[derive(Clone)]
26819 pub struct KhrExtension513Fn {}
26820 unsafe impl Send for KhrExtension513Fn {}
26821 unsafe impl Sync for KhrExtension513Fn {}
26822 impl KhrExtension513Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26823     pub fn load<F>(mut _f: F) -> Self
26824     where
26825         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26826     {
26827         Self {}
26828     }
26829 }
26830 impl KhrExtension514Fn {
26831     #[inline]
name() -> &'static ::std::ffi::CStr26832     pub const fn name() -> &'static ::std::ffi::CStr {
26833         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_514\0") }
26834     }
26835     pub const SPEC_VERSION: u32 = 0u32;
26836 }
26837 #[derive(Clone)]
26838 pub struct KhrExtension514Fn {}
26839 unsafe impl Send for KhrExtension514Fn {}
26840 unsafe impl Sync for KhrExtension514Fn {}
26841 impl KhrExtension514Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26842     pub fn load<F>(mut _f: F) -> Self
26843     where
26844         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26845     {
26846         Self {}
26847     }
26848 }
26849 impl KhrExtension515Fn {
26850     #[inline]
name() -> &'static ::std::ffi::CStr26851     pub const fn name() -> &'static ::std::ffi::CStr {
26852         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_515\0") }
26853     }
26854     pub const SPEC_VERSION: u32 = 0u32;
26855 }
26856 #[derive(Clone)]
26857 pub struct KhrExtension515Fn {}
26858 unsafe impl Send for KhrExtension515Fn {}
26859 unsafe impl Sync for KhrExtension515Fn {}
26860 impl KhrExtension515Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26861     pub fn load<F>(mut _f: F) -> Self
26862     where
26863         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26864     {
26865         Self {}
26866     }
26867 }
26868 impl KhrExtension516Fn {
26869     #[inline]
name() -> &'static ::std::ffi::CStr26870     pub const fn name() -> &'static ::std::ffi::CStr {
26871         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_516\0") }
26872     }
26873     pub const SPEC_VERSION: u32 = 0u32;
26874 }
26875 #[derive(Clone)]
26876 pub struct KhrExtension516Fn {}
26877 unsafe impl Send for KhrExtension516Fn {}
26878 unsafe impl Sync for KhrExtension516Fn {}
26879 impl KhrExtension516Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26880     pub fn load<F>(mut _f: F) -> Self
26881     where
26882         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26883     {
26884         Self {}
26885     }
26886 }
26887 #[doc = "Generated from 'VK_KHR_extension_516'"]
26888 impl BufferCreateFlags {
26889     pub const RESERVED_6_KHR: Self = Self(0b100_0000);
26890 }
26891 #[doc = "Generated from 'VK_KHR_extension_516'"]
26892 impl ImageCreateFlags {
26893     pub const RESERVED_20_KHR: Self = Self(0b1_0000_0000_0000_0000_0000);
26894 }
26895 impl ExtExtension517Fn {
26896     #[inline]
name() -> &'static ::std::ffi::CStr26897     pub const fn name() -> &'static ::std::ffi::CStr {
26898         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_517\0") }
26899     }
26900     pub const SPEC_VERSION: u32 = 0u32;
26901 }
26902 #[derive(Clone)]
26903 pub struct ExtExtension517Fn {}
26904 unsafe impl Send for ExtExtension517Fn {}
26905 unsafe impl Sync for ExtExtension517Fn {}
26906 impl ExtExtension517Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26907     pub fn load<F>(mut _f: F) -> Self
26908     where
26909         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26910     {
26911         Self {}
26912     }
26913 }
26914 #[doc = "Generated from 'VK_EXT_extension_517'"]
26915 impl DescriptorSetLayoutCreateFlags {
26916     pub const RESERVED_6_EXT: Self = Self(0b100_0000);
26917 }
26918 impl MesaExtension518Fn {
26919     #[inline]
name() -> &'static ::std::ffi::CStr26920     pub const fn name() -> &'static ::std::ffi::CStr {
26921         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_MESA_extension_518\0") }
26922     }
26923     pub const SPEC_VERSION: u32 = 0u32;
26924 }
26925 #[derive(Clone)]
26926 pub struct MesaExtension518Fn {}
26927 unsafe impl Send for MesaExtension518Fn {}
26928 unsafe impl Sync for MesaExtension518Fn {}
26929 impl MesaExtension518Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26930     pub fn load<F>(mut _f: F) -> Self
26931     where
26932         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26933     {
26934         Self {}
26935     }
26936 }
26937 impl QcomExtension519Fn {
26938     #[inline]
name() -> &'static ::std::ffi::CStr26939     pub const fn name() -> &'static ::std::ffi::CStr {
26940         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_519\0") }
26941     }
26942     pub const SPEC_VERSION: u32 = 0u32;
26943 }
26944 #[derive(Clone)]
26945 pub struct QcomExtension519Fn {}
26946 unsafe impl Send for QcomExtension519Fn {}
26947 unsafe impl Sync for QcomExtension519Fn {}
26948 impl QcomExtension519Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26949     pub fn load<F>(mut _f: F) -> Self
26950     where
26951         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26952     {
26953         Self {}
26954     }
26955 }
26956 impl QcomExtension520Fn {
26957     #[inline]
name() -> &'static ::std::ffi::CStr26958     pub const fn name() -> &'static ::std::ffi::CStr {
26959         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_520\0") }
26960     }
26961     pub const SPEC_VERSION: u32 = 0u32;
26962 }
26963 #[derive(Clone)]
26964 pub struct QcomExtension520Fn {}
26965 unsafe impl Send for QcomExtension520Fn {}
26966 unsafe impl Sync for QcomExtension520Fn {}
26967 impl QcomExtension520Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26968     pub fn load<F>(mut _f: F) -> Self
26969     where
26970         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26971     {
26972         Self {}
26973     }
26974 }
26975 impl QcomExtension521Fn {
26976     #[inline]
name() -> &'static ::std::ffi::CStr26977     pub const fn name() -> &'static ::std::ffi::CStr {
26978         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_521\0") }
26979     }
26980     pub const SPEC_VERSION: u32 = 0u32;
26981 }
26982 #[derive(Clone)]
26983 pub struct QcomExtension521Fn {}
26984 unsafe impl Send for QcomExtension521Fn {}
26985 unsafe impl Sync for QcomExtension521Fn {}
26986 impl QcomExtension521Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,26987     pub fn load<F>(mut _f: F) -> Self
26988     where
26989         F: FnMut(&::std::ffi::CStr) -> *const c_void,
26990     {
26991         Self {}
26992     }
26993 }
26994 impl QcomExtension522Fn {
26995     #[inline]
name() -> &'static ::std::ffi::CStr26996     pub const fn name() -> &'static ::std::ffi::CStr {
26997         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_522\0") }
26998     }
26999     pub const SPEC_VERSION: u32 = 0u32;
27000 }
27001 #[derive(Clone)]
27002 pub struct QcomExtension522Fn {}
27003 unsafe impl Send for QcomExtension522Fn {}
27004 unsafe impl Sync for QcomExtension522Fn {}
27005 impl QcomExtension522Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,27006     pub fn load<F>(mut _f: F) -> Self
27007     where
27008         F: FnMut(&::std::ffi::CStr) -> *const c_void,
27009     {
27010         Self {}
27011     }
27012 }
27013 impl ExtExtension523Fn {
27014     #[inline]
name() -> &'static ::std::ffi::CStr27015     pub const fn name() -> &'static ::std::ffi::CStr {
27016         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_523\0") }
27017     }
27018     pub const SPEC_VERSION: u32 = 0u32;
27019 }
27020 #[derive(Clone)]
27021 pub struct ExtExtension523Fn {}
27022 unsafe impl Send for ExtExtension523Fn {}
27023 unsafe impl Sync for ExtExtension523Fn {}
27024 impl ExtExtension523Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,27025     pub fn load<F>(mut _f: F) -> Self
27026     where
27027         F: FnMut(&::std::ffi::CStr) -> *const c_void,
27028     {
27029         Self {}
27030     }
27031 }
27032 impl ExtExtension524Fn {
27033     #[inline]
name() -> &'static ::std::ffi::CStr27034     pub const fn name() -> &'static ::std::ffi::CStr {
27035         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_524\0") }
27036     }
27037     pub const SPEC_VERSION: u32 = 0u32;
27038 }
27039 #[derive(Clone)]
27040 pub struct ExtExtension524Fn {}
27041 unsafe impl Send for ExtExtension524Fn {}
27042 unsafe impl Sync for ExtExtension524Fn {}
27043 impl ExtExtension524Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,27044     pub fn load<F>(mut _f: F) -> Self
27045     where
27046         F: FnMut(&::std::ffi::CStr) -> *const c_void,
27047     {
27048         Self {}
27049     }
27050 }
27051 impl ExtAttachmentFeedbackLoopDynamicStateFn {
27052     #[inline]
name() -> &'static ::std::ffi::CStr27053     pub const fn name() -> &'static ::std::ffi::CStr {
27054         unsafe {
27055             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
27056                 b"VK_EXT_attachment_feedback_loop_dynamic_state\0",
27057             )
27058         }
27059     }
27060     pub const SPEC_VERSION: u32 = 1u32;
27061 }
27062 #[allow(non_camel_case_types)]
27063 pub type PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT =
27064     unsafe extern "system" fn(command_buffer: CommandBuffer, aspect_mask: ImageAspectFlags);
27065 #[derive(Clone)]
27066 pub struct ExtAttachmentFeedbackLoopDynamicStateFn {
27067     pub cmd_set_attachment_feedback_loop_enable_ext: PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT,
27068 }
27069 unsafe impl Send for ExtAttachmentFeedbackLoopDynamicStateFn {}
27070 unsafe impl Sync for ExtAttachmentFeedbackLoopDynamicStateFn {}
27071 impl ExtAttachmentFeedbackLoopDynamicStateFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,27072     pub fn load<F>(mut _f: F) -> Self
27073     where
27074         F: FnMut(&::std::ffi::CStr) -> *const c_void,
27075     {
27076         Self {
27077             cmd_set_attachment_feedback_loop_enable_ext: unsafe {
27078                 unsafe extern "system" fn cmd_set_attachment_feedback_loop_enable_ext(
27079                     _command_buffer: CommandBuffer,
27080                     _aspect_mask: ImageAspectFlags,
27081                 ) {
27082                     panic!(concat!(
27083                         "Unable to load ",
27084                         stringify!(cmd_set_attachment_feedback_loop_enable_ext)
27085                     ))
27086                 }
27087                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
27088                     b"vkCmdSetAttachmentFeedbackLoopEnableEXT\0",
27089                 );
27090                 let val = _f(cname);
27091                 if val.is_null() {
27092                     cmd_set_attachment_feedback_loop_enable_ext
27093                 } else {
27094                     ::std::mem::transmute(val)
27095                 }
27096             },
27097         }
27098     }
27099 }
27100 #[doc = "Generated from 'VK_EXT_attachment_feedback_loop_dynamic_state'"]
27101 impl DynamicState {
27102     pub const ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT: Self = Self(1_000_524_000);
27103 }
27104 #[doc = "Generated from 'VK_EXT_attachment_feedback_loop_dynamic_state'"]
27105 impl StructureType {
27106     pub const PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT: Self =
27107         Self(1_000_524_000);
27108 }
27109 impl ExtExtension526Fn {
27110     #[inline]
name() -> &'static ::std::ffi::CStr27111     pub const fn name() -> &'static ::std::ffi::CStr {
27112         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_526\0") }
27113     }
27114     pub const SPEC_VERSION: u32 = 0u32;
27115 }
27116 #[derive(Clone)]
27117 pub struct ExtExtension526Fn {}
27118 unsafe impl Send for ExtExtension526Fn {}
27119 unsafe impl Sync for ExtExtension526Fn {}
27120 impl ExtExtension526Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,27121     pub fn load<F>(mut _f: F) -> Self
27122     where
27123         F: FnMut(&::std::ffi::CStr) -> *const c_void,
27124     {
27125         Self {}
27126     }
27127 }
27128 impl ExtExtension527Fn {
27129     #[inline]
name() -> &'static ::std::ffi::CStr27130     pub const fn name() -> &'static ::std::ffi::CStr {
27131         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_527\0") }
27132     }
27133     pub const SPEC_VERSION: u32 = 0u32;
27134 }
27135 #[derive(Clone)]
27136 pub struct ExtExtension527Fn {}
27137 unsafe impl Send for ExtExtension527Fn {}
27138 unsafe impl Sync for ExtExtension527Fn {}
27139 impl ExtExtension527Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,27140     pub fn load<F>(mut _f: F) -> Self
27141     where
27142         F: FnMut(&::std::ffi::CStr) -> *const c_void,
27143     {
27144         Self {}
27145     }
27146 }
27147 impl ExtExtension528Fn {
27148     #[inline]
name() -> &'static ::std::ffi::CStr27149     pub const fn name() -> &'static ::std::ffi::CStr {
27150         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_528\0") }
27151     }
27152     pub const SPEC_VERSION: u32 = 0u32;
27153 }
27154 #[derive(Clone)]
27155 pub struct ExtExtension528Fn {}
27156 unsafe impl Send for ExtExtension528Fn {}
27157 unsafe impl Sync for ExtExtension528Fn {}
27158 impl ExtExtension528Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,27159     pub fn load<F>(mut _f: F) -> Self
27160     where
27161         F: FnMut(&::std::ffi::CStr) -> *const c_void,
27162     {
27163         Self {}
27164     }
27165 }
27166 impl KhrExtension529Fn {
27167     #[inline]
name() -> &'static ::std::ffi::CStr27168     pub const fn name() -> &'static ::std::ffi::CStr {
27169         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_529\0") }
27170     }
27171     pub const SPEC_VERSION: u32 = 0u32;
27172 }
27173 #[derive(Clone)]
27174 pub struct KhrExtension529Fn {}
27175 unsafe impl Send for KhrExtension529Fn {}
27176 unsafe impl Sync for KhrExtension529Fn {}
27177 impl KhrExtension529Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,27178     pub fn load<F>(mut _f: F) -> Self
27179     where
27180         F: FnMut(&::std::ffi::CStr) -> *const c_void,
27181     {
27182         Self {}
27183     }
27184 }
27185 impl QnxExtension530Fn {
27186     #[inline]
name() -> &'static ::std::ffi::CStr27187     pub const fn name() -> &'static ::std::ffi::CStr {
27188         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QNX_extension_530\0") }
27189     }
27190     pub const SPEC_VERSION: u32 = 0u32;
27191 }
27192 #[derive(Clone)]
27193 pub struct QnxExtension530Fn {}
27194 unsafe impl Send for QnxExtension530Fn {}
27195 unsafe impl Sync for QnxExtension530Fn {}
27196 impl QnxExtension530Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,27197     pub fn load<F>(mut _f: F) -> Self
27198     where
27199         F: FnMut(&::std::ffi::CStr) -> *const c_void,
27200     {
27201         Self {}
27202     }
27203 }
27204 #[doc = "Generated from 'VK_QNX_extension_530'"]
27205 impl ExternalMemoryHandleTypeFlags {
27206     pub const TYPE_530_QNX: Self = Self(0b100_0000_0000_0000);
27207 }
27208 impl MsftExtension531Fn {
27209     #[inline]
name() -> &'static ::std::ffi::CStr27210     pub const fn name() -> &'static ::std::ffi::CStr {
27211         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_MSFT_extension_531\0") }
27212     }
27213     pub const SPEC_VERSION: u32 = 0u32;
27214 }
27215 #[derive(Clone)]
27216 pub struct MsftExtension531Fn {}
27217 unsafe impl Send for MsftExtension531Fn {}
27218 unsafe impl Sync for MsftExtension531Fn {}
27219 impl MsftExtension531Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,27220     pub fn load<F>(mut _f: F) -> Self
27221     where
27222         F: FnMut(&::std::ffi::CStr) -> *const c_void,
27223     {
27224         Self {}
27225     }
27226 }
27227 impl KhrExtension532Fn {
27228     #[inline]
name() -> &'static ::std::ffi::CStr27229     pub const fn name() -> &'static ::std::ffi::CStr {
27230         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_532\0") }
27231     }
27232     pub const SPEC_VERSION: u32 = 0u32;
27233 }
27234 #[derive(Clone)]
27235 pub struct KhrExtension532Fn {}
27236 unsafe impl Send for KhrExtension532Fn {}
27237 unsafe impl Sync for KhrExtension532Fn {}
27238 impl KhrExtension532Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,27239     pub fn load<F>(mut _f: F) -> Self
27240     where
27241         F: FnMut(&::std::ffi::CStr) -> *const c_void,
27242     {
27243         Self {}
27244     }
27245 }
27246