Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quellverzeichnis  extensions_generated.rs   Interaktion und
Portierbarkeitunbekannt

 
Spracherkennung für: .rs vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

#![allow(unused_imports)]
use crate::vk::*;
use core::ffi::*;
#[doc = "Extensions tagged AMD"]
pub mod amd {
    #[doc = "VK_AMD_rasterization_order"]
    pub mod rasterization_order {
        use super::super::*;
        pub use {
            crate::vk::AMD_RASTERIZATION_ORDER_NAME as NAME,
            crate::vk::AMD_RASTERIZATION_ORDER_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_AMD_shader_trinary_minmax"]
    pub mod shader_trinary_minmax {
        use super::super::*;
        pub use {
            crate::vk::AMD_SHADER_TRINARY_MINMAX_NAME as NAME,
            crate::vk::AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_AMD_shader_explicit_vertex_parameter"]
    pub mod shader_explicit_vertex_parameter {
        use super::super::*;
        pub use {
            crate::vk::AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_NAME as NAME,
            crate::vk::AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_AMD_gcn_shader"]
    pub mod gcn_shader {
        use super::super::*;
        pub use {
            crate::vk::AMD_GCN_SHADER_NAME as NAME,
            crate::vk::AMD_GCN_SHADER_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_AMD_draw_indirect_count"]
    pub mod draw_indirect_count {
        use super::super::*;
        pub use {
            crate::vk::AMD_DRAW_INDIRECT_COUNT_NAME as NAME,
            crate::vk::AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_AMD_draw_indirect_count device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_AMD_draw_indirect_count device-level function pointers"]
        pub struct DeviceFn {
            pub cmd_draw_indirect_count_amd: PFN_vkCmdDrawIndirectCount,
            pub cmd_draw_indexed_indirect_count_amd: PFN_vkCmdDrawIndexedIndirectCount,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    cmd_draw_indirect_count_amd: unsafe {
                        unsafe extern "system" fn cmd_draw_indirect_count_amd(
                            _command_buffer: CommandBuffer,
                            _buffer: Buffer,
                            _offset: DeviceSize,
                            _count_buffer: Buffer,
                            _count_buffer_offset: DeviceSize,
                            _max_draw_count: u32,
                            _stride: u32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_draw_indirect_count_amd)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndirectCountAMD\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_draw_indirect_count_amd
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_draw_indexed_indirect_count_amd: unsafe {
                        unsafe extern "system" fn cmd_draw_indexed_indirect_count_amd(
                            _command_buffer: CommandBuffer,
                            _buffer: Buffer,
                            _offset: DeviceSize,
                            _count_buffer: Buffer,
                            _count_buffer_offset: DeviceSize,
                            _max_draw_count: u32,
                            _stride: u32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_draw_indexed_indirect_count_amd)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdDrawIndexedIndirectCountAMD\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_draw_indexed_indirect_count_amd
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_AMD_negative_viewport_height"]
    pub mod negative_viewport_height {
        use super::super::*;
        pub use {
            crate::vk::AMD_NEGATIVE_VIEWPORT_HEIGHT_NAME as NAME,
            crate::vk::AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_AMD_gpu_shader_half_float"]
    pub mod gpu_shader_half_float {
        use super::super::*;
        pub use {
            crate::vk::AMD_GPU_SHADER_HALF_FLOAT_NAME as NAME,
            crate::vk::AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_AMD_shader_ballot"]
    pub mod shader_ballot {
        use super::super::*;
        pub use {
            crate::vk::AMD_SHADER_BALLOT_NAME as NAME,
            crate::vk::AMD_SHADER_BALLOT_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_AMD_texture_gather_bias_lod"]
    pub mod texture_gather_bias_lod {
        use super::super::*;
        pub use {
            crate::vk::AMD_TEXTURE_GATHER_BIAS_LOD_NAME as NAME,
            crate::vk::AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_AMD_shader_info"]
    pub mod shader_info {
        use super::super::*;
        pub use {
            crate::vk::AMD_SHADER_INFO_NAME as NAME,
            crate::vk::AMD_SHADER_INFO_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_AMD_shader_info device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_AMD_shader_info device-level function pointers"]
        pub struct DeviceFn {
            pub get_shader_info_amd: PFN_vkGetShaderInfoAMD,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_shader_info_amd: unsafe {
                        unsafe extern "system" fn get_shader_info_amd(
                            _device: crate::vk::Device,
                            _pipeline: Pipeline,
                            _shader_stage: ShaderStageFlags,
                            _info_type: ShaderInfoTypeAMD,
                            _p_info_size: *mut usize,
                            _p_info: *mut c_void,
                        ) -> Result {
                            panic!(concat!("Unable to load ", stringify!(get_shader_info_amd)))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetShaderInfoAMD\0");
                        let val = _f(cname);
                        if val.is_null() {
                            get_shader_info_amd
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_AMD_shader_image_load_store_lod"]
    pub mod shader_image_load_store_lod {
        use super::super::*;
        pub use {
            crate::vk::AMD_SHADER_IMAGE_LOAD_STORE_LOD_NAME as NAME,
            crate::vk::AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_AMD_gpu_shader_int16"]
    pub mod gpu_shader_int16 {
        use super::super::*;
        pub use {
            crate::vk::AMD_GPU_SHADER_INT16_NAME as NAME,
            crate::vk::AMD_GPU_SHADER_INT16_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_AMD_mixed_attachment_samples"]
    pub mod mixed_attachment_samples {
        use super::super::*;
        pub use {
            crate::vk::AMD_MIXED_ATTACHMENT_SAMPLES_NAME as NAME,
            crate::vk::AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_AMD_shader_fragment_mask"]
    pub mod shader_fragment_mask {
        use super::super::*;
        pub use {
            crate::vk::AMD_SHADER_FRAGMENT_MASK_NAME as NAME,
            crate::vk::AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_AMD_buffer_marker"]
    pub mod buffer_marker {
        use super::super::*;
        pub use {
            crate::vk::AMD_BUFFER_MARKER_NAME as NAME,
            crate::vk::AMD_BUFFER_MARKER_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_AMD_buffer_marker device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_AMD_buffer_marker device-level function pointers"]
        pub struct DeviceFn {
            pub cmd_write_buffer_marker_amd: PFN_vkCmdWriteBufferMarkerAMD,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    cmd_write_buffer_marker_amd: unsafe {
                        unsafe extern "system" fn cmd_write_buffer_marker_amd(
                            _command_buffer: CommandBuffer,
                            _pipeline_stage: PipelineStageFlags,
                            _dst_buffer: Buffer,
                            _dst_offset: DeviceSize,
                            _marker: u32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_write_buffer_marker_amd)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdWriteBufferMarkerAMD\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_write_buffer_marker_amd
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_AMD_pipeline_compiler_control"]
    pub mod pipeline_compiler_control {
        use super::super::*;
        pub use {
            crate::vk::AMD_PIPELINE_COMPILER_CONTROL_NAME as NAME,
            crate::vk::AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_AMD_shader_core_properties"]
    pub mod shader_core_properties {
        use super::super::*;
        pub use {
            crate::vk::AMD_SHADER_CORE_PROPERTIES_NAME as NAME,
            crate::vk::AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_AMD_memory_overallocation_behavior"]
    pub mod memory_overallocation_behavior {
        use super::super::*;
        pub use {
            crate::vk::AMD_MEMORY_OVERALLOCATION_BEHAVIOR_NAME as NAME,
            crate::vk::AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_AMD_display_native_hdr"]
    pub mod display_native_hdr {
        use super::super::*;
        pub use {
            crate::vk::AMD_DISPLAY_NATIVE_HDR_NAME as NAME,
            crate::vk::AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_AMD_display_native_hdr device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_AMD_display_native_hdr device-level function pointers"]
        pub struct DeviceFn {
            pub set_local_dimming_amd: PFN_vkSetLocalDimmingAMD,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    set_local_dimming_amd: unsafe {
                        unsafe extern "system" fn set_local_dimming_amd(
                            _device: crate::vk::Device,
                            _swap_chain: SwapchainKHR,
                            _local_dimming_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(set_local_dimming_amd)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkSetLocalDimmingAMD\0");
                        let val = _f(cname);
                        if val.is_null() {
                            set_local_dimming_amd
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_AMD_shader_core_properties2"]
    pub mod shader_core_properties2 {
        use super::super::*;
        pub use {
            crate::vk::AMD_SHADER_CORE_PROPERTIES2_NAME as NAME,
            crate::vk::AMD_SHADER_CORE_PROPERTIES2_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_AMD_device_coherent_memory"]
    pub mod device_coherent_memory {
        use super::super::*;
        pub use {
            crate::vk::AMD_DEVICE_COHERENT_MEMORY_NAME as NAME,
            crate::vk::AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_AMD_shader_early_and_late_fragment_tests"]
    pub mod shader_early_and_late_fragment_tests {
        use super::super::*;
        pub use {
            crate::vk::AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_NAME as NAME,
            crate::vk::AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION as SPEC_VERSION,
        };
    }
}
#[doc = "Extensions tagged AMDX"]
pub mod amdx {
    #[doc = "VK_AMDX_shader_enqueue"]
    pub mod shader_enqueue {
        use super::super::*;
        pub use {
            crate::vk::AMDX_SHADER_ENQUEUE_NAME as NAME,
            crate::vk::AMDX_SHADER_ENQUEUE_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_AMDX_shader_enqueue device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_AMDX_shader_enqueue device-level function pointers"]
        pub struct DeviceFn {
            pub create_execution_graph_pipelines_amdx: PFN_vkCreateExecutionGraphPipelinesAMDX,
            pub get_execution_graph_pipeline_scratch_size_amdx:
                PFN_vkGetExecutionGraphPipelineScratchSizeAMDX,
            pub get_execution_graph_pipeline_node_index_amdx:
                PFN_vkGetExecutionGraphPipelineNodeIndexAMDX,
            pub cmd_initialize_graph_scratch_memory_amdx: PFN_vkCmdInitializeGraphScratchMemoryAMDX,
            pub cmd_dispatch_graph_amdx: PFN_vkCmdDispatchGraphAMDX,
            pub cmd_dispatch_graph_indirect_amdx: PFN_vkCmdDispatchGraphIndirectAMDX,
            pub cmd_dispatch_graph_indirect_count_amdx: PFN_vkCmdDispatchGraphIndirectCountAMDX,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    create_execution_graph_pipelines_amdx: unsafe {
                        unsafe extern "system" fn create_execution_graph_pipelines_amdx(
                            _device: crate::vk::Device,
                            _pipeline_cache: PipelineCache,
                            _create_info_count: u32,
                            _p_create_infos: *const ExecutionGraphPipelineCreateInfoAMDX<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_pipelines: *mut Pipeline,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(create_execution_graph_pipelines_amdx)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCreateExecutionGraphPipelinesAMDX\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            create_execution_graph_pipelines_amdx
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_execution_graph_pipeline_scratch_size_amdx: unsafe {
                        unsafe extern "system" fn get_execution_graph_pipeline_scratch_size_amdx(
                            _device: crate::vk::Device,
                            _execution_graph: Pipeline,
                            _p_size_info: *mut ExecutionGraphPipelineScratchSizeAMDX<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_execution_graph_pipeline_scratch_size_amdx)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetExecutionGraphPipelineScratchSizeAMDX\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_execution_graph_pipeline_scratch_size_amdx
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_execution_graph_pipeline_node_index_amdx: unsafe {
                        unsafe extern "system" fn get_execution_graph_pipeline_node_index_amdx(
                            _device: crate::vk::Device,
                            _execution_graph: Pipeline,
                            _p_node_info: *const PipelineShaderStageNodeCreateInfoAMDX<'_>,
                            _p_node_index: *mut u32,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_execution_graph_pipeline_node_index_amdx)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetExecutionGraphPipelineNodeIndexAMDX\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_execution_graph_pipeline_node_index_amdx
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_initialize_graph_scratch_memory_amdx: unsafe {
                        unsafe extern "system" fn cmd_initialize_graph_scratch_memory_amdx(
                            _command_buffer: CommandBuffer,
                            _scratch: DeviceAddress,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_initialize_graph_scratch_memory_amdx)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdInitializeGraphScratchMemoryAMDX\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_initialize_graph_scratch_memory_amdx
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_dispatch_graph_amdx: unsafe {
                        unsafe extern "system" fn cmd_dispatch_graph_amdx(
                            _command_buffer: CommandBuffer,
                            _scratch: DeviceAddress,
                            _p_count_info: *const DispatchGraphCountInfoAMDX,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_dispatch_graph_amdx)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdDispatchGraphAMDX\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_dispatch_graph_amdx
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_dispatch_graph_indirect_amdx: unsafe {
                        unsafe extern "system" fn cmd_dispatch_graph_indirect_amdx(
                            _command_buffer: CommandBuffer,
                            _scratch: DeviceAddress,
                            _p_count_info: *const DispatchGraphCountInfoAMDX,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_dispatch_graph_indirect_amdx)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdDispatchGraphIndirectAMDX\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_dispatch_graph_indirect_amdx
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_dispatch_graph_indirect_count_amdx: unsafe {
                        unsafe extern "system" fn cmd_dispatch_graph_indirect_count_amdx(
                            _command_buffer: CommandBuffer,
                            _scratch: DeviceAddress,
                            _count_info: DeviceAddress,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_dispatch_graph_indirect_count_amdx)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdDispatchGraphIndirectCountAMDX\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_dispatch_graph_indirect_count_amdx
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
}
#[doc = "Extensions tagged ANDROID"]
pub mod android {
    #[doc = "VK_ANDROID_native_buffer"]
    pub mod native_buffer {
        use super::super::*;
        pub use {
            crate::vk::ANDROID_NATIVE_BUFFER_NAME as NAME,
            crate::vk::ANDROID_NATIVE_BUFFER_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_ANDROID_native_buffer device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_ANDROID_native_buffer device-level function pointers"]
        pub struct DeviceFn {
            pub get_swapchain_gralloc_usage_android: PFN_vkGetSwapchainGrallocUsageANDROID,
            pub acquire_image_android: PFN_vkAcquireImageANDROID,
            pub queue_signal_release_image_android: PFN_vkQueueSignalReleaseImageANDROID,
            pub get_swapchain_gralloc_usage2_android: PFN_vkGetSwapchainGrallocUsage2ANDROID,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_swapchain_gralloc_usage_android: unsafe {
                        unsafe extern "system" fn get_swapchain_gralloc_usage_android(
                            _device: crate::vk::Device,
                            _format: Format,
                            _image_usage: ImageUsageFlags,
                            _gralloc_usage: *mut c_int,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_swapchain_gralloc_usage_android)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetSwapchainGrallocUsageANDROID\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_swapchain_gralloc_usage_android
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    acquire_image_android: unsafe {
                        unsafe extern "system" fn acquire_image_android(
                            _device: crate::vk::Device,
                            _image: Image,
                            _native_fence_fd: c_int,
                            _semaphore: Semaphore,
                            _fence: Fence,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(acquire_image_android)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkAcquireImageANDROID\0");
                        let val = _f(cname);
                        if val.is_null() {
                            acquire_image_android
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    queue_signal_release_image_android: unsafe {
                        unsafe extern "system" fn queue_signal_release_image_android(
                            _queue: Queue,
                            _wait_semaphore_count: u32,
                            _p_wait_semaphores: *const Semaphore,
                            _image: Image,
                            _p_native_fence_fd: *mut c_int,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(queue_signal_release_image_android)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkQueueSignalReleaseImageANDROID\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            queue_signal_release_image_android
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_swapchain_gralloc_usage2_android: unsafe {
                        unsafe extern "system" fn get_swapchain_gralloc_usage2_android(
                            _device: crate::vk::Device,
                            _format: Format,
                            _image_usage: ImageUsageFlags,
                            _swapchain_image_usage: SwapchainImageUsageFlagsANDROID,
                            _gralloc_consumer_usage: *mut u64,
                            _gralloc_producer_usage: *mut u64,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_swapchain_gralloc_usage2_android)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetSwapchainGrallocUsage2ANDROID\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_swapchain_gralloc_usage2_android
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_ANDROID_external_memory_android_hardware_buffer"]
    pub mod external_memory_android_hardware_buffer {
        use super::super::*;
        pub use {
            crate::vk::ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_NAME as NAME,
            crate::vk::ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_ANDROID_external_memory_android_hardware_buffer device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_ANDROID_external_memory_android_hardware_buffer device-level function pointers"]
        pub struct DeviceFn {
            pub get_android_hardware_buffer_properties_android:
                PFN_vkGetAndroidHardwareBufferPropertiesANDROID,
            pub get_memory_android_hardware_buffer_android:
                PFN_vkGetMemoryAndroidHardwareBufferANDROID,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_android_hardware_buffer_properties_android: unsafe {
                        unsafe extern "system" fn get_android_hardware_buffer_properties_android(
                            _device: crate::vk::Device,
                            _buffer: *const AHardwareBuffer,
                            _p_properties: *mut AndroidHardwareBufferPropertiesANDROID<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_android_hardware_buffer_properties_android)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetAndroidHardwareBufferPropertiesANDROID\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_android_hardware_buffer_properties_android
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_memory_android_hardware_buffer_android: unsafe {
                        unsafe extern "system" fn get_memory_android_hardware_buffer_android(
                            _device: crate::vk::Device,
                            _p_info: *const MemoryGetAndroidHardwareBufferInfoANDROID<'_>,
                            _p_buffer: *mut *mut AHardwareBuffer,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_memory_android_hardware_buffer_android)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetMemoryAndroidHardwareBufferANDROID\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_memory_android_hardware_buffer_android
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_ANDROID_external_format_resolve"]
    pub mod external_format_resolve {
        use super::super::*;
        pub use {
            crate::vk::ANDROID_EXTERNAL_FORMAT_RESOLVE_NAME as NAME,
            crate::vk::ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION as SPEC_VERSION,
        };
    }
}
#[doc = "Extensions tagged ARM"]
pub mod arm {
    #[doc = "VK_ARM_rasterization_order_attachment_access"]
    pub mod rasterization_order_attachment_access {
        use super::super::*;
        pub use {
            crate::vk::ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_NAME as NAME,
            crate::vk::ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_ARM_shader_core_properties"]
    pub mod shader_core_properties {
        use super::super::*;
        pub use {
            crate::vk::ARM_SHADER_CORE_PROPERTIES_NAME as NAME,
            crate::vk::ARM_SHADER_CORE_PROPERTIES_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_ARM_scheduling_controls"]
    pub mod scheduling_controls {
        use super::super::*;
        pub use {
            crate::vk::ARM_SCHEDULING_CONTROLS_NAME as NAME,
            crate::vk::ARM_SCHEDULING_CONTROLS_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_ARM_render_pass_striped"]
    pub mod render_pass_striped {
        use super::super::*;
        pub use {
            crate::vk::ARM_RENDER_PASS_STRIPED_NAME as NAME,
            crate::vk::ARM_RENDER_PASS_STRIPED_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_ARM_shader_core_builtins"]
    pub mod shader_core_builtins {
        use super::super::*;
        pub use {
            crate::vk::ARM_SHADER_CORE_BUILTINS_NAME as NAME,
            crate::vk::ARM_SHADER_CORE_BUILTINS_SPEC_VERSION as SPEC_VERSION,
        };
    }
}
#[doc = "Extensions tagged EXT"]
pub mod ext {
    #[doc = "VK_EXT_debug_report"]
    pub mod debug_report {
        use super::super::*;
        pub use {
            crate::vk::EXT_DEBUG_REPORT_NAME as NAME,
            crate::vk::EXT_DEBUG_REPORT_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_debug_report instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_debug_report instance-level function pointers"]
        pub struct InstanceFn {
            pub create_debug_report_callback_ext: PFN_vkCreateDebugReportCallbackEXT,
            pub destroy_debug_report_callback_ext: PFN_vkDestroyDebugReportCallbackEXT,
            pub debug_report_message_ext: PFN_vkDebugReportMessageEXT,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    create_debug_report_callback_ext: unsafe {
                        unsafe extern "system" fn create_debug_report_callback_ext(
                            _instance: crate::vk::Instance,
                            _p_create_info: *const DebugReportCallbackCreateInfoEXT<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_callback: *mut DebugReportCallbackEXT,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(create_debug_report_callback_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCreateDebugReportCallbackEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            create_debug_report_callback_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    destroy_debug_report_callback_ext: unsafe {
                        unsafe extern "system" fn destroy_debug_report_callback_ext(
                            _instance: crate::vk::Instance,
                            _callback: DebugReportCallbackEXT,
                            _p_allocator: *const AllocationCallbacks<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(destroy_debug_report_callback_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkDestroyDebugReportCallbackEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            destroy_debug_report_callback_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    debug_report_message_ext: unsafe {
                        unsafe extern "system" fn debug_report_message_ext(
                            _instance: crate::vk::Instance,
                            _flags: DebugReportFlagsEXT,
                            _object_type: DebugReportObjectTypeEXT,
                            _object: u64,
                            _location: usize,
                            _message_code: i32,
                            _p_layer_prefix: *const c_char,
                            _p_message: *const c_char,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(debug_report_message_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkDebugReportMessageEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            debug_report_message_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_depth_range_unrestricted"]
    pub mod depth_range_unrestricted {
        use super::super::*;
        pub use {
            crate::vk::EXT_DEPTH_RANGE_UNRESTRICTED_NAME as NAME,
            crate::vk::EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_debug_marker"]
    pub mod debug_marker {
        use super::super::*;
        pub use {
            crate::vk::EXT_DEBUG_MARKER_NAME as NAME,
            crate::vk::EXT_DEBUG_MARKER_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_debug_marker device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_debug_marker device-level function pointers"]
        pub struct DeviceFn {
            pub debug_marker_set_object_tag_ext: PFN_vkDebugMarkerSetObjectTagEXT,
            pub debug_marker_set_object_name_ext: PFN_vkDebugMarkerSetObjectNameEXT,
            pub cmd_debug_marker_begin_ext: PFN_vkCmdDebugMarkerBeginEXT,
            pub cmd_debug_marker_end_ext: PFN_vkCmdDebugMarkerEndEXT,
            pub cmd_debug_marker_insert_ext: PFN_vkCmdDebugMarkerInsertEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    debug_marker_set_object_tag_ext: unsafe {
                        unsafe extern "system" fn debug_marker_set_object_tag_ext(
                            _device: crate::vk::Device,
                            _p_tag_info: *const DebugMarkerObjectTagInfoEXT<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(debug_marker_set_object_tag_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkDebugMarkerSetObjectTagEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            debug_marker_set_object_tag_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    debug_marker_set_object_name_ext: unsafe {
                        unsafe extern "system" fn debug_marker_set_object_name_ext(
                            _device: crate::vk::Device,
                            _p_name_info: *const DebugMarkerObjectNameInfoEXT<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(debug_marker_set_object_name_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkDebugMarkerSetObjectNameEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            debug_marker_set_object_name_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_debug_marker_begin_ext: unsafe {
                        unsafe extern "system" fn cmd_debug_marker_begin_ext(
                            _command_buffer: CommandBuffer,
                            _p_marker_info: *const DebugMarkerMarkerInfoEXT<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_debug_marker_begin_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerBeginEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_debug_marker_begin_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_debug_marker_end_ext: unsafe {
                        unsafe extern "system" fn cmd_debug_marker_end_ext(
                            _command_buffer: CommandBuffer,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_debug_marker_end_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerEndEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_debug_marker_end_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_debug_marker_insert_ext: unsafe {
                        unsafe extern "system" fn cmd_debug_marker_insert_ext(
                            _command_buffer: CommandBuffer,
                            _p_marker_info: *const DebugMarkerMarkerInfoEXT<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_debug_marker_insert_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerInsertEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_debug_marker_insert_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_transform_feedback"]
    pub mod transform_feedback {
        use super::super::*;
        pub use {
            crate::vk::EXT_TRANSFORM_FEEDBACK_NAME as NAME,
            crate::vk::EXT_TRANSFORM_FEEDBACK_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_transform_feedback device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_transform_feedback device-level function pointers"]
        pub struct DeviceFn {
            pub cmd_bind_transform_feedback_buffers_ext: PFN_vkCmdBindTransformFeedbackBuffersEXT,
            pub cmd_begin_transform_feedback_ext: PFN_vkCmdBeginTransformFeedbackEXT,
            pub cmd_end_transform_feedback_ext: PFN_vkCmdEndTransformFeedbackEXT,
            pub cmd_begin_query_indexed_ext: PFN_vkCmdBeginQueryIndexedEXT,
            pub cmd_end_query_indexed_ext: PFN_vkCmdEndQueryIndexedEXT,
            pub cmd_draw_indirect_byte_count_ext: PFN_vkCmdDrawIndirectByteCountEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    cmd_bind_transform_feedback_buffers_ext: unsafe {
                        unsafe extern "system" fn cmd_bind_transform_feedback_buffers_ext(
                            _command_buffer: CommandBuffer,
                            _first_binding: u32,
                            _binding_count: u32,
                            _p_buffers: *const Buffer,
                            _p_offsets: *const DeviceSize,
                            _p_sizes: *const DeviceSize,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_bind_transform_feedback_buffers_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdBindTransformFeedbackBuffersEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_bind_transform_feedback_buffers_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_begin_transform_feedback_ext: unsafe {
                        unsafe extern "system" fn cmd_begin_transform_feedback_ext(
                            _command_buffer: CommandBuffer,
                            _first_counter_buffer: u32,
                            _counter_buffer_count: u32,
                            _p_counter_buffers: *const Buffer,
                            _p_counter_buffer_offsets: *const DeviceSize,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_begin_transform_feedback_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdBeginTransformFeedbackEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_begin_transform_feedback_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_end_transform_feedback_ext: unsafe {
                        unsafe extern "system" fn cmd_end_transform_feedback_ext(
                            _command_buffer: CommandBuffer,
                            _first_counter_buffer: u32,
                            _counter_buffer_count: u32,
                            _p_counter_buffers: *const Buffer,
                            _p_counter_buffer_offsets: *const DeviceSize,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_end_transform_feedback_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdEndTransformFeedbackEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_end_transform_feedback_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_begin_query_indexed_ext: unsafe {
                        unsafe extern "system" fn cmd_begin_query_indexed_ext(
                            _command_buffer: CommandBuffer,
                            _query_pool: QueryPool,
                            _query: u32,
                            _flags: QueryControlFlags,
                            _index: u32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_begin_query_indexed_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginQueryIndexedEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_begin_query_indexed_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_end_query_indexed_ext: unsafe {
                        unsafe extern "system" fn cmd_end_query_indexed_ext(
                            _command_buffer: CommandBuffer,
                            _query_pool: QueryPool,
                            _query: u32,
                            _index: u32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_end_query_indexed_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdEndQueryIndexedEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_end_query_indexed_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_draw_indirect_byte_count_ext: unsafe {
                        unsafe extern "system" fn cmd_draw_indirect_byte_count_ext(
                            _command_buffer: CommandBuffer,
                            _instance_count: u32,
                            _first_instance: u32,
                            _counter_buffer: Buffer,
                            _counter_buffer_offset: DeviceSize,
                            _counter_offset: u32,
                            _vertex_stride: u32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_draw_indirect_byte_count_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndirectByteCountEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_draw_indirect_byte_count_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_validation_flags"]
    pub mod validation_flags {
        use super::super::*;
        pub use {
            crate::vk::EXT_VALIDATION_FLAGS_NAME as NAME,
            crate::vk::EXT_VALIDATION_FLAGS_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_shader_subgroup_ballot"]
    pub mod shader_subgroup_ballot {
        use super::super::*;
        pub use {
            crate::vk::EXT_SHADER_SUBGROUP_BALLOT_NAME as NAME,
            crate::vk::EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_shader_subgroup_vote"]
    pub mod shader_subgroup_vote {
        use super::super::*;
        pub use {
            crate::vk::EXT_SHADER_SUBGROUP_VOTE_NAME as NAME,
            crate::vk::EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_texture_compression_astc_hdr"]
    pub mod texture_compression_astc_hdr {
        use super::super::*;
        pub use {
            crate::vk::EXT_TEXTURE_COMPRESSION_ASTC_HDR_NAME as NAME,
            crate::vk::EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_astc_decode_mode"]
    pub mod astc_decode_mode {
        use super::super::*;
        pub use {
            crate::vk::EXT_ASTC_DECODE_MODE_NAME as NAME,
            crate::vk::EXT_ASTC_DECODE_MODE_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_pipeline_robustness"]
    pub mod pipeline_robustness {
        use super::super::*;
        pub use {
            crate::vk::EXT_PIPELINE_ROBUSTNESS_NAME as NAME,
            crate::vk::EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_conditional_rendering"]
    pub mod conditional_rendering {
        use super::super::*;
        pub use {
            crate::vk::EXT_CONDITIONAL_RENDERING_NAME as NAME,
            crate::vk::EXT_CONDITIONAL_RENDERING_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_conditional_rendering device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_conditional_rendering device-level function pointers"]
        pub struct DeviceFn {
            pub cmd_begin_conditional_rendering_ext: PFN_vkCmdBeginConditionalRenderingEXT,
            pub cmd_end_conditional_rendering_ext: PFN_vkCmdEndConditionalRenderingEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    cmd_begin_conditional_rendering_ext: unsafe {
                        unsafe extern "system" fn cmd_begin_conditional_rendering_ext(
                            _command_buffer: CommandBuffer,
                            _p_conditional_rendering_begin: *const ConditionalRenderingBeginInfoEXT<
                                '_,
                            >,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_begin_conditional_rendering_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdBeginConditionalRenderingEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_begin_conditional_rendering_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_end_conditional_rendering_ext: unsafe {
                        unsafe extern "system" fn cmd_end_conditional_rendering_ext(
                            _command_buffer: CommandBuffer,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_end_conditional_rendering_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdEndConditionalRenderingEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_end_conditional_rendering_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_direct_mode_display"]
    pub mod direct_mode_display {
        use super::super::*;
        pub use {
            crate::vk::EXT_DIRECT_MODE_DISPLAY_NAME as NAME,
            crate::vk::EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_direct_mode_display instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_direct_mode_display instance-level function pointers"]
        pub struct InstanceFn {
            pub release_display_ext: PFN_vkReleaseDisplayEXT,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    release_display_ext: unsafe {
                        unsafe extern "system" fn release_display_ext(
                            _physical_device: PhysicalDevice,
                            _display: DisplayKHR,
                        ) -> Result {
                            panic!(concat!("Unable to load ", stringify!(release_display_ext)))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkReleaseDisplayEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            release_display_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_acquire_xlib_display"]
    pub mod acquire_xlib_display {
        use super::super::*;
        pub use {
            crate::vk::EXT_ACQUIRE_XLIB_DISPLAY_NAME as NAME,
            crate::vk::EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_acquire_xlib_display instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_acquire_xlib_display instance-level function pointers"]
        pub struct InstanceFn {
            pub acquire_xlib_display_ext: PFN_vkAcquireXlibDisplayEXT,
            pub get_rand_r_output_display_ext: PFN_vkGetRandROutputDisplayEXT,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    acquire_xlib_display_ext: unsafe {
                        unsafe extern "system" fn acquire_xlib_display_ext(
                            _physical_device: PhysicalDevice,
                            _dpy: *mut Display,
                            _display: DisplayKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(acquire_xlib_display_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkAcquireXlibDisplayEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            acquire_xlib_display_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_rand_r_output_display_ext: unsafe {
                        unsafe extern "system" fn get_rand_r_output_display_ext(
                            _physical_device: PhysicalDevice,
                            _dpy: *mut Display,
                            _rr_output: RROutput,
                            _p_display: *mut DisplayKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_rand_r_output_display_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkGetRandROutputDisplayEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            get_rand_r_output_display_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_display_surface_counter"]
    pub mod display_surface_counter {
        use super::super::*;
        pub use {
            crate::vk::EXT_DISPLAY_SURFACE_COUNTER_NAME as NAME,
            crate::vk::EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_display_surface_counter instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_display_surface_counter instance-level function pointers"]
        pub struct InstanceFn {
            pub get_physical_device_surface_capabilities2_ext:
                PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_physical_device_surface_capabilities2_ext: unsafe {
                        unsafe extern "system" fn get_physical_device_surface_capabilities2_ext(
                            _physical_device: PhysicalDevice,
                            _surface: SurfaceKHR,
                            _p_surface_capabilities: *mut SurfaceCapabilities2EXT<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_surface_capabilities2_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceSurfaceCapabilities2EXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_surface_capabilities2_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_display_control"]
    pub mod display_control {
        use super::super::*;
        pub use {
            crate::vk::EXT_DISPLAY_CONTROL_NAME as NAME,
            crate::vk::EXT_DISPLAY_CONTROL_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_display_control device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_display_control device-level function pointers"]
        pub struct DeviceFn {
            pub display_power_control_ext: PFN_vkDisplayPowerControlEXT,
            pub register_device_event_ext: PFN_vkRegisterDeviceEventEXT,
            pub register_display_event_ext: PFN_vkRegisterDisplayEventEXT,
            pub get_swapchain_counter_ext: PFN_vkGetSwapchainCounterEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    display_power_control_ext: unsafe {
                        unsafe extern "system" fn display_power_control_ext(
                            _device: crate::vk::Device,
                            _display: DisplayKHR,
                            _p_display_power_info: *const DisplayPowerInfoEXT<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(display_power_control_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkDisplayPowerControlEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            display_power_control_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    register_device_event_ext: unsafe {
                        unsafe extern "system" fn register_device_event_ext(
                            _device: crate::vk::Device,
                            _p_device_event_info: *const DeviceEventInfoEXT<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_fence: *mut Fence,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(register_device_event_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkRegisterDeviceEventEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            register_device_event_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    register_display_event_ext: unsafe {
                        unsafe extern "system" fn register_display_event_ext(
                            _device: crate::vk::Device,
                            _display: DisplayKHR,
                            _p_display_event_info: *const DisplayEventInfoEXT<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_fence: *mut Fence,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(register_display_event_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkRegisterDisplayEventEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            register_display_event_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_swapchain_counter_ext: unsafe {
                        unsafe extern "system" fn get_swapchain_counter_ext(
                            _device: crate::vk::Device,
                            _swapchain: SwapchainKHR,
                            _counter: SurfaceCounterFlagsEXT,
                            _p_counter_value: *mut u64,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_swapchain_counter_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkGetSwapchainCounterEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            get_swapchain_counter_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_discard_rectangles"]
    pub mod discard_rectangles {
        use super::super::*;
        pub use {
            crate::vk::EXT_DISCARD_RECTANGLES_NAME as NAME,
            crate::vk::EXT_DISCARD_RECTANGLES_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_discard_rectangles device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_discard_rectangles device-level function pointers"]
        pub struct DeviceFn {
            pub cmd_set_discard_rectangle_ext: PFN_vkCmdSetDiscardRectangleEXT,
            pub cmd_set_discard_rectangle_enable_ext: PFN_vkCmdSetDiscardRectangleEnableEXT,
            pub cmd_set_discard_rectangle_mode_ext: PFN_vkCmdSetDiscardRectangleModeEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    cmd_set_discard_rectangle_ext: unsafe {
                        unsafe extern "system" fn cmd_set_discard_rectangle_ext(
                            _command_buffer: CommandBuffer,
                            _first_discard_rectangle: u32,
                            _discard_rectangle_count: u32,
                            _p_discard_rectangles: *const Rect2D,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_discard_rectangle_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDiscardRectangleEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_discard_rectangle_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_discard_rectangle_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_discard_rectangle_enable_ext(
                            _command_buffer: CommandBuffer,
                            _discard_rectangle_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_discard_rectangle_enable_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetDiscardRectangleEnableEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_discard_rectangle_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_discard_rectangle_mode_ext: unsafe {
                        unsafe extern "system" fn cmd_set_discard_rectangle_mode_ext(
                            _command_buffer: CommandBuffer,
                            _discard_rectangle_mode: DiscardRectangleModeEXT,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_discard_rectangle_mode_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetDiscardRectangleModeEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_discard_rectangle_mode_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_conservative_rasterization"]
    pub mod conservative_rasterization {
        use super::super::*;
        pub use {
            crate::vk::EXT_CONSERVATIVE_RASTERIZATION_NAME as NAME,
            crate::vk::EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_depth_clip_enable"]
    pub mod depth_clip_enable {
        use super::super::*;
        pub use {
            crate::vk::EXT_DEPTH_CLIP_ENABLE_NAME as NAME,
            crate::vk::EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_swapchain_colorspace"]
    pub mod swapchain_colorspace {
        use super::super::*;
        pub use {
            crate::vk::EXT_SWAPCHAIN_COLORSPACE_NAME as NAME,
            crate::vk::EXT_SWAPCHAIN_COLORSPACE_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_hdr_metadata"]
    pub mod hdr_metadata {
        use super::super::*;
        pub use {
            crate::vk::EXT_HDR_METADATA_NAME as NAME,
            crate::vk::EXT_HDR_METADATA_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_hdr_metadata device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_hdr_metadata device-level function pointers"]
        pub struct DeviceFn {
            pub set_hdr_metadata_ext: PFN_vkSetHdrMetadataEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    set_hdr_metadata_ext: unsafe {
                        unsafe extern "system" fn set_hdr_metadata_ext(
                            _device: crate::vk::Device,
                            _swapchain_count: u32,
                            _p_swapchains: *const SwapchainKHR,
                            _p_metadata: *const HdrMetadataEXT<'_>,
                        ) {
                            panic!(concat!("Unable to load ", stringify!(set_hdr_metadata_ext)))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkSetHdrMetadataEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            set_hdr_metadata_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_external_memory_dma_buf"]
    pub mod external_memory_dma_buf {
        use super::super::*;
        pub use {
            crate::vk::EXT_EXTERNAL_MEMORY_DMA_BUF_NAME as NAME,
            crate::vk::EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_queue_family_foreign"]
    pub mod queue_family_foreign {
        use super::super::*;
        pub use {
            crate::vk::EXT_QUEUE_FAMILY_FOREIGN_NAME as NAME,
            crate::vk::EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_debug_utils"]
    pub mod debug_utils {
        use super::super::*;
        pub use {
            crate::vk::EXT_DEBUG_UTILS_NAME as NAME,
            crate::vk::EXT_DEBUG_UTILS_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_debug_utils instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_debug_utils instance-level function pointers"]
        pub struct InstanceFn {
            pub create_debug_utils_messenger_ext: PFN_vkCreateDebugUtilsMessengerEXT,
            pub destroy_debug_utils_messenger_ext: PFN_vkDestroyDebugUtilsMessengerEXT,
            pub submit_debug_utils_message_ext: PFN_vkSubmitDebugUtilsMessageEXT,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    create_debug_utils_messenger_ext: unsafe {
                        unsafe extern "system" fn create_debug_utils_messenger_ext(
                            _instance: crate::vk::Instance,
                            _p_create_info: *const DebugUtilsMessengerCreateInfoEXT<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_messenger: *mut DebugUtilsMessengerEXT,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(create_debug_utils_messenger_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCreateDebugUtilsMessengerEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            create_debug_utils_messenger_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    destroy_debug_utils_messenger_ext: unsafe {
                        unsafe extern "system" fn destroy_debug_utils_messenger_ext(
                            _instance: crate::vk::Instance,
                            _messenger: DebugUtilsMessengerEXT,
                            _p_allocator: *const AllocationCallbacks<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(destroy_debug_utils_messenger_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkDestroyDebugUtilsMessengerEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            destroy_debug_utils_messenger_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    submit_debug_utils_message_ext: unsafe {
                        unsafe extern "system" fn submit_debug_utils_message_ext(
                            _instance: crate::vk::Instance,
                            _message_severity: DebugUtilsMessageSeverityFlagsEXT,
                            _message_types: DebugUtilsMessageTypeFlagsEXT,
                            _p_callback_data: *const DebugUtilsMessengerCallbackDataEXT<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(submit_debug_utils_message_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkSubmitDebugUtilsMessageEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            submit_debug_utils_message_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
        #[doc = "VK_EXT_debug_utils device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_debug_utils device-level function pointers"]
        pub struct DeviceFn {
            pub set_debug_utils_object_name_ext: PFN_vkSetDebugUtilsObjectNameEXT,
            pub set_debug_utils_object_tag_ext: PFN_vkSetDebugUtilsObjectTagEXT,
            pub queue_begin_debug_utils_label_ext: PFN_vkQueueBeginDebugUtilsLabelEXT,
            pub queue_end_debug_utils_label_ext: PFN_vkQueueEndDebugUtilsLabelEXT,
            pub queue_insert_debug_utils_label_ext: PFN_vkQueueInsertDebugUtilsLabelEXT,
            pub cmd_begin_debug_utils_label_ext: PFN_vkCmdBeginDebugUtilsLabelEXT,
            pub cmd_end_debug_utils_label_ext: PFN_vkCmdEndDebugUtilsLabelEXT,
            pub cmd_insert_debug_utils_label_ext: PFN_vkCmdInsertDebugUtilsLabelEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    set_debug_utils_object_name_ext: unsafe {
                        unsafe extern "system" fn set_debug_utils_object_name_ext(
                            _device: crate::vk::Device,
                            _p_name_info: *const DebugUtilsObjectNameInfoEXT<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(set_debug_utils_object_name_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkSetDebugUtilsObjectNameEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            set_debug_utils_object_name_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    set_debug_utils_object_tag_ext: unsafe {
                        unsafe extern "system" fn set_debug_utils_object_tag_ext(
                            _device: crate::vk::Device,
                            _p_tag_info: *const DebugUtilsObjectTagInfoEXT<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(set_debug_utils_object_tag_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkSetDebugUtilsObjectTagEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            set_debug_utils_object_tag_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    queue_begin_debug_utils_label_ext: unsafe {
                        unsafe extern "system" fn queue_begin_debug_utils_label_ext(
                            _queue: Queue,
                            _p_label_info: *const DebugUtilsLabelEXT<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(queue_begin_debug_utils_label_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkQueueBeginDebugUtilsLabelEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            queue_begin_debug_utils_label_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    queue_end_debug_utils_label_ext: unsafe {
                        unsafe extern "system" fn queue_end_debug_utils_label_ext(_queue: Queue) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(queue_end_debug_utils_label_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkQueueEndDebugUtilsLabelEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            queue_end_debug_utils_label_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    queue_insert_debug_utils_label_ext: unsafe {
                        unsafe extern "system" fn queue_insert_debug_utils_label_ext(
                            _queue: Queue,
                            _p_label_info: *const DebugUtilsLabelEXT<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(queue_insert_debug_utils_label_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkQueueInsertDebugUtilsLabelEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            queue_insert_debug_utils_label_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_begin_debug_utils_label_ext: unsafe {
                        unsafe extern "system" fn cmd_begin_debug_utils_label_ext(
                            _command_buffer: CommandBuffer,
                            _p_label_info: *const DebugUtilsLabelEXT<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_begin_debug_utils_label_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginDebugUtilsLabelEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_begin_debug_utils_label_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_end_debug_utils_label_ext: unsafe {
                        unsafe extern "system" fn cmd_end_debug_utils_label_ext(
                            _command_buffer: CommandBuffer,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_end_debug_utils_label_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdEndDebugUtilsLabelEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_end_debug_utils_label_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_insert_debug_utils_label_ext: unsafe {
                        unsafe extern "system" fn cmd_insert_debug_utils_label_ext(
                            _command_buffer: CommandBuffer,
                            _p_label_info: *const DebugUtilsLabelEXT<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_insert_debug_utils_label_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdInsertDebugUtilsLabelEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_insert_debug_utils_label_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_sampler_filter_minmax"]
    pub mod sampler_filter_minmax {
        use super::super::*;
        pub use {
            crate::vk::EXT_SAMPLER_FILTER_MINMAX_NAME as NAME,
            crate::vk::EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_inline_uniform_block"]
    pub mod inline_uniform_block {
        use super::super::*;
        pub use {
            crate::vk::EXT_INLINE_UNIFORM_BLOCK_NAME as NAME,
            crate::vk::EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_shader_stencil_export"]
    pub mod shader_stencil_export {
        use super::super::*;
        pub use {
            crate::vk::EXT_SHADER_STENCIL_EXPORT_NAME as NAME,
            crate::vk::EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_sample_locations"]
    pub mod sample_locations {
        use super::super::*;
        pub use {
            crate::vk::EXT_SAMPLE_LOCATIONS_NAME as NAME,
            crate::vk::EXT_SAMPLE_LOCATIONS_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_sample_locations instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_sample_locations instance-level function pointers"]
        pub struct InstanceFn {
            pub get_physical_device_multisample_properties_ext:
                PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_physical_device_multisample_properties_ext: unsafe {
                        unsafe extern "system" fn get_physical_device_multisample_properties_ext(
                            _physical_device: PhysicalDevice,
                            _samples: SampleCountFlags,
                            _p_multisample_properties: *mut MultisamplePropertiesEXT<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_multisample_properties_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceMultisamplePropertiesEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_multisample_properties_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
        #[doc = "VK_EXT_sample_locations device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_sample_locations device-level function pointers"]
        pub struct DeviceFn {
            pub cmd_set_sample_locations_ext: PFN_vkCmdSetSampleLocationsEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    cmd_set_sample_locations_ext: unsafe {
                        unsafe extern "system" fn cmd_set_sample_locations_ext(
                            _command_buffer: CommandBuffer,
                            _p_sample_locations_info: *const SampleLocationsInfoEXT<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_sample_locations_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetSampleLocationsEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_sample_locations_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_blend_operation_advanced"]
    pub mod blend_operation_advanced {
        use super::super::*;
        pub use {
            crate::vk::EXT_BLEND_OPERATION_ADVANCED_NAME as NAME,
            crate::vk::EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_post_depth_coverage"]
    pub mod post_depth_coverage {
        use super::super::*;
        pub use {
            crate::vk::EXT_POST_DEPTH_COVERAGE_NAME as NAME,
            crate::vk::EXT_POST_DEPTH_COVERAGE_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_image_drm_format_modifier"]
    pub mod image_drm_format_modifier {
        use super::super::*;
        pub use {
            crate::vk::EXT_IMAGE_DRM_FORMAT_MODIFIER_NAME as NAME,
            crate::vk::EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_image_drm_format_modifier device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_image_drm_format_modifier device-level function pointers"]
        pub struct DeviceFn {
            pub get_image_drm_format_modifier_properties_ext:
                PFN_vkGetImageDrmFormatModifierPropertiesEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_image_drm_format_modifier_properties_ext: unsafe {
                        unsafe extern "system" fn get_image_drm_format_modifier_properties_ext(
                            _device: crate::vk::Device,
                            _image: Image,
                            _p_properties: *mut ImageDrmFormatModifierPropertiesEXT<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_image_drm_format_modifier_properties_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetImageDrmFormatModifierPropertiesEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_image_drm_format_modifier_properties_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_validation_cache"]
    pub mod validation_cache {
        use super::super::*;
        pub use {
            crate::vk::EXT_VALIDATION_CACHE_NAME as NAME,
            crate::vk::EXT_VALIDATION_CACHE_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_validation_cache device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_validation_cache device-level function pointers"]
        pub struct DeviceFn {
            pub create_validation_cache_ext: PFN_vkCreateValidationCacheEXT,
            pub destroy_validation_cache_ext: PFN_vkDestroyValidationCacheEXT,
            pub merge_validation_caches_ext: PFN_vkMergeValidationCachesEXT,
            pub get_validation_cache_data_ext: PFN_vkGetValidationCacheDataEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    create_validation_cache_ext: unsafe {
                        unsafe extern "system" fn create_validation_cache_ext(
                            _device: crate::vk::Device,
                            _p_create_info: *const ValidationCacheCreateInfoEXT<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_validation_cache: *mut ValidationCacheEXT,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(create_validation_cache_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCreateValidationCacheEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            create_validation_cache_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    destroy_validation_cache_ext: unsafe {
                        unsafe extern "system" fn destroy_validation_cache_ext(
                            _device: crate::vk::Device,
                            _validation_cache: ValidationCacheEXT,
                            _p_allocator: *const AllocationCallbacks<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(destroy_validation_cache_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkDestroyValidationCacheEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            destroy_validation_cache_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    merge_validation_caches_ext: unsafe {
                        unsafe extern "system" fn merge_validation_caches_ext(
                            _device: crate::vk::Device,
                            _dst_cache: ValidationCacheEXT,
                            _src_cache_count: u32,
                            _p_src_caches: *const ValidationCacheEXT,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(merge_validation_caches_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkMergeValidationCachesEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            merge_validation_caches_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_validation_cache_data_ext: unsafe {
                        unsafe extern "system" fn get_validation_cache_data_ext(
                            _device: crate::vk::Device,
                            _validation_cache: ValidationCacheEXT,
                            _p_data_size: *mut usize,
                            _p_data: *mut c_void,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_validation_cache_data_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkGetValidationCacheDataEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            get_validation_cache_data_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_descriptor_indexing"]
    pub mod descriptor_indexing {
        use super::super::*;
        pub use {
            crate::vk::EXT_DESCRIPTOR_INDEXING_NAME as NAME,
            crate::vk::EXT_DESCRIPTOR_INDEXING_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_shader_viewport_index_layer"]
    pub mod shader_viewport_index_layer {
        use super::super::*;
        pub use {
            crate::vk::EXT_SHADER_VIEWPORT_INDEX_LAYER_NAME as NAME,
            crate::vk::EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_filter_cubic"]
    pub mod filter_cubic {
        use super::super::*;
        pub use {
            crate::vk::EXT_FILTER_CUBIC_NAME as NAME,
            crate::vk::EXT_FILTER_CUBIC_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_global_priority"]
    pub mod global_priority {
        use super::super::*;
        pub use {
            crate::vk::EXT_GLOBAL_PRIORITY_NAME as NAME,
            crate::vk::EXT_GLOBAL_PRIORITY_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_external_memory_host"]
    pub mod external_memory_host {
        use super::super::*;
        pub use {
            crate::vk::EXT_EXTERNAL_MEMORY_HOST_NAME as NAME,
            crate::vk::EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_external_memory_host device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_external_memory_host device-level function pointers"]
        pub struct DeviceFn {
            pub get_memory_host_pointer_properties_ext: PFN_vkGetMemoryHostPointerPropertiesEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_memory_host_pointer_properties_ext: unsafe {
                        unsafe extern "system" fn get_memory_host_pointer_properties_ext(
                            _device: crate::vk::Device,
                            _handle_type: ExternalMemoryHandleTypeFlags,
                            _p_host_pointer: *const c_void,
                            _p_memory_host_pointer_properties: *mut MemoryHostPointerPropertiesEXT<
                                '_,
                            >,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_memory_host_pointer_properties_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetMemoryHostPointerPropertiesEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_memory_host_pointer_properties_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_calibrated_timestamps"]
    pub mod calibrated_timestamps {
        use super::super::*;
        pub use {
            crate::vk::EXT_CALIBRATED_TIMESTAMPS_NAME as NAME,
            crate::vk::EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_calibrated_timestamps instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_calibrated_timestamps instance-level function pointers"]
        pub struct InstanceFn {
            pub get_physical_device_calibrateable_time_domains_ext:
                PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_physical_device_calibrateable_time_domains_ext: unsafe {
                        unsafe extern "system" fn get_physical_device_calibrateable_time_domains_ext(
                            _physical_device: PhysicalDevice,
                            _p_time_domain_count: *mut u32,
                            _p_time_domains: *mut TimeDomainKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_calibrateable_time_domains_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceCalibrateableTimeDomainsEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_calibrateable_time_domains_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
        #[doc = "VK_EXT_calibrated_timestamps device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_calibrated_timestamps device-level function pointers"]
        pub struct DeviceFn {
            pub get_calibrated_timestamps_ext: PFN_vkGetCalibratedTimestampsKHR,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_calibrated_timestamps_ext: unsafe {
                        unsafe extern "system" fn get_calibrated_timestamps_ext(
                            _device: crate::vk::Device,
                            _timestamp_count: u32,
                            _p_timestamp_infos: *const CalibratedTimestampInfoKHR<'_>,
                            _p_timestamps: *mut u64,
                            _p_max_deviation: *mut u64,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_calibrated_timestamps_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkGetCalibratedTimestampsEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            get_calibrated_timestamps_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_vertex_attribute_divisor"]
    pub mod vertex_attribute_divisor {
        use super::super::*;
        pub use {
            crate::vk::EXT_VERTEX_ATTRIBUTE_DIVISOR_NAME as NAME,
            crate::vk::EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_pipeline_creation_feedback"]
    pub mod pipeline_creation_feedback {
        use super::super::*;
        pub use {
            crate::vk::EXT_PIPELINE_CREATION_FEEDBACK_NAME as NAME,
            crate::vk::EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_pci_bus_info"]
    pub mod pci_bus_info {
        use super::super::*;
        pub use {
            crate::vk::EXT_PCI_BUS_INFO_NAME as NAME,
            crate::vk::EXT_PCI_BUS_INFO_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_metal_surface"]
    pub mod metal_surface {
        use super::super::*;
        pub use {
            crate::vk::EXT_METAL_SURFACE_NAME as NAME,
            crate::vk::EXT_METAL_SURFACE_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_metal_surface instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_metal_surface instance-level function pointers"]
        pub struct InstanceFn {
            pub create_metal_surface_ext: PFN_vkCreateMetalSurfaceEXT,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    create_metal_surface_ext: unsafe {
                        unsafe extern "system" fn create_metal_surface_ext(
                            _instance: crate::vk::Instance,
                            _p_create_info: *const MetalSurfaceCreateInfoEXT<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_surface: *mut SurfaceKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(create_metal_surface_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCreateMetalSurfaceEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            create_metal_surface_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_fragment_density_map"]
    pub mod fragment_density_map {
        use super::super::*;
        pub use {
            crate::vk::EXT_FRAGMENT_DENSITY_MAP_NAME as NAME,
            crate::vk::EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_scalar_block_layout"]
    pub mod scalar_block_layout {
        use super::super::*;
        pub use {
            crate::vk::EXT_SCALAR_BLOCK_LAYOUT_NAME as NAME,
            crate::vk::EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_subgroup_size_control"]
    pub mod subgroup_size_control {
        use super::super::*;
        pub use {
            crate::vk::EXT_SUBGROUP_SIZE_CONTROL_NAME as NAME,
            crate::vk::EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_shader_image_atomic_int64"]
    pub mod shader_image_atomic_int64 {
        use super::super::*;
        pub use {
            crate::vk::EXT_SHADER_IMAGE_ATOMIC_INT64_NAME as NAME,
            crate::vk::EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_memory_budget"]
    pub mod memory_budget {
        use super::super::*;
        pub use {
            crate::vk::EXT_MEMORY_BUDGET_NAME as NAME,
            crate::vk::EXT_MEMORY_BUDGET_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_memory_priority"]
    pub mod memory_priority {
        use super::super::*;
        pub use {
            crate::vk::EXT_MEMORY_PRIORITY_NAME as NAME,
            crate::vk::EXT_MEMORY_PRIORITY_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_buffer_device_address"]
    pub mod buffer_device_address {
        use super::super::*;
        pub use {
            crate::vk::EXT_BUFFER_DEVICE_ADDRESS_NAME as NAME,
            crate::vk::EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_buffer_device_address device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_buffer_device_address device-level function pointers"]
        pub struct DeviceFn {
            pub get_buffer_device_address_ext: PFN_vkGetBufferDeviceAddress,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_buffer_device_address_ext: unsafe {
                        unsafe extern "system" fn get_buffer_device_address_ext(
                            _device: crate::vk::Device,
                            _p_info: *const BufferDeviceAddressInfo<'_>,
                        ) -> DeviceAddress {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_buffer_device_address_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkGetBufferDeviceAddressEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            get_buffer_device_address_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_tooling_info"]
    pub mod tooling_info {
        use super::super::*;
        pub use {
            crate::vk::EXT_TOOLING_INFO_NAME as NAME,
            crate::vk::EXT_TOOLING_INFO_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_tooling_info instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_tooling_info instance-level function pointers"]
        pub struct InstanceFn {
            pub get_physical_device_tool_properties_ext: PFN_vkGetPhysicalDeviceToolProperties,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_physical_device_tool_properties_ext: unsafe {
                        unsafe extern "system" fn get_physical_device_tool_properties_ext(
                            _physical_device: PhysicalDevice,
                            _p_tool_count: *mut u32,
                            _p_tool_properties: *mut PhysicalDeviceToolProperties<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_tool_properties_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceToolPropertiesEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_tool_properties_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_separate_stencil_usage"]
    pub mod separate_stencil_usage {
        use super::super::*;
        pub use {
            crate::vk::EXT_SEPARATE_STENCIL_USAGE_NAME as NAME,
            crate::vk::EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_validation_features"]
    pub mod validation_features {
        use super::super::*;
        pub use {
            crate::vk::EXT_VALIDATION_FEATURES_NAME as NAME,
            crate::vk::EXT_VALIDATION_FEATURES_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_fragment_shader_interlock"]
    pub mod fragment_shader_interlock {
        use super::super::*;
        pub use {
            crate::vk::EXT_FRAGMENT_SHADER_INTERLOCK_NAME as NAME,
            crate::vk::EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_ycbcr_image_arrays"]
    pub mod ycbcr_image_arrays {
        use super::super::*;
        pub use {
            crate::vk::EXT_YCBCR_IMAGE_ARRAYS_NAME as NAME,
            crate::vk::EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_provoking_vertex"]
    pub mod provoking_vertex {
        use super::super::*;
        pub use {
            crate::vk::EXT_PROVOKING_VERTEX_NAME as NAME,
            crate::vk::EXT_PROVOKING_VERTEX_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_full_screen_exclusive"]
    pub mod full_screen_exclusive {
        use super::super::*;
        pub use {
            crate::vk::EXT_FULL_SCREEN_EXCLUSIVE_NAME as NAME,
            crate::vk::EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_full_screen_exclusive instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_full_screen_exclusive instance-level function pointers"]
        pub struct InstanceFn {
            pub get_physical_device_surface_present_modes2_ext:
                PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_physical_device_surface_present_modes2_ext: unsafe {
                        unsafe extern "system" fn get_physical_device_surface_present_modes2_ext(
                            _physical_device: PhysicalDevice,
                            _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR<'_>,
                            _p_present_mode_count: *mut u32,
                            _p_present_modes: *mut PresentModeKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_surface_present_modes2_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceSurfacePresentModes2EXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_surface_present_modes2_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
        #[doc = "VK_EXT_full_screen_exclusive device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_full_screen_exclusive device-level function pointers"]
        pub struct DeviceFn {
            pub acquire_full_screen_exclusive_mode_ext: PFN_vkAcquireFullScreenExclusiveModeEXT,
            pub release_full_screen_exclusive_mode_ext: PFN_vkReleaseFullScreenExclusiveModeEXT,
            pub get_device_group_surface_present_modes2_ext:
                PFN_vkGetDeviceGroupSurfacePresentModes2EXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    acquire_full_screen_exclusive_mode_ext: unsafe {
                        unsafe extern "system" fn acquire_full_screen_exclusive_mode_ext(
                            _device: crate::vk::Device,
                            _swapchain: SwapchainKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(acquire_full_screen_exclusive_mode_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkAcquireFullScreenExclusiveModeEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            acquire_full_screen_exclusive_mode_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    release_full_screen_exclusive_mode_ext: unsafe {
                        unsafe extern "system" fn release_full_screen_exclusive_mode_ext(
                            _device: crate::vk::Device,
                            _swapchain: SwapchainKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(release_full_screen_exclusive_mode_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkReleaseFullScreenExclusiveModeEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            release_full_screen_exclusive_mode_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_device_group_surface_present_modes2_ext: unsafe {
                        unsafe extern "system" fn get_device_group_surface_present_modes2_ext(
                            _device: crate::vk::Device,
                            _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR<'_>,
                            _p_modes: *mut DeviceGroupPresentModeFlagsKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_device_group_surface_present_modes2_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetDeviceGroupSurfacePresentModes2EXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_device_group_surface_present_modes2_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_headless_surface"]
    pub mod headless_surface {
        use super::super::*;
        pub use {
            crate::vk::EXT_HEADLESS_SURFACE_NAME as NAME,
            crate::vk::EXT_HEADLESS_SURFACE_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_headless_surface instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_headless_surface instance-level function pointers"]
        pub struct InstanceFn {
            pub create_headless_surface_ext: PFN_vkCreateHeadlessSurfaceEXT,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    create_headless_surface_ext: unsafe {
                        unsafe extern "system" fn create_headless_surface_ext(
                            _instance: crate::vk::Instance,
                            _p_create_info: *const HeadlessSurfaceCreateInfoEXT<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_surface: *mut SurfaceKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(create_headless_surface_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCreateHeadlessSurfaceEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            create_headless_surface_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_line_rasterization"]
    pub mod line_rasterization {
        use super::super::*;
        pub use {
            crate::vk::EXT_LINE_RASTERIZATION_NAME as NAME,
            crate::vk::EXT_LINE_RASTERIZATION_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_line_rasterization device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_line_rasterization device-level function pointers"]
        pub struct DeviceFn {
            pub cmd_set_line_stipple_ext: PFN_vkCmdSetLineStippleKHR,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    cmd_set_line_stipple_ext: unsafe {
                        unsafe extern "system" fn cmd_set_line_stipple_ext(
                            _command_buffer: CommandBuffer,
                            _line_stipple_factor: u32,
                            _line_stipple_pattern: u16,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_line_stipple_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLineStippleEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_line_stipple_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_shader_atomic_float"]
    pub mod shader_atomic_float {
        use super::super::*;
        pub use {
            crate::vk::EXT_SHADER_ATOMIC_FLOAT_NAME as NAME,
            crate::vk::EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_host_query_reset"]
    pub mod host_query_reset {
        use super::super::*;
        pub use {
            crate::vk::EXT_HOST_QUERY_RESET_NAME as NAME,
            crate::vk::EXT_HOST_QUERY_RESET_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_host_query_reset device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_host_query_reset device-level function pointers"]
        pub struct DeviceFn {
            pub reset_query_pool_ext: PFN_vkResetQueryPool,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    reset_query_pool_ext: unsafe {
                        unsafe extern "system" fn reset_query_pool_ext(
                            _device: crate::vk::Device,
                            _query_pool: QueryPool,
                            _first_query: u32,
                            _query_count: u32,
                        ) {
                            panic!(concat!("Unable to load ", stringify!(reset_query_pool_ext)))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkResetQueryPoolEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            reset_query_pool_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_index_type_uint8"]
    pub mod index_type_uint8 {
        use super::super::*;
        pub use {
            crate::vk::EXT_INDEX_TYPE_UINT8_NAME as NAME,
            crate::vk::EXT_INDEX_TYPE_UINT8_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_extended_dynamic_state"]
    pub mod extended_dynamic_state {
        use super::super::*;
        pub use {
            crate::vk::EXT_EXTENDED_DYNAMIC_STATE_NAME as NAME,
            crate::vk::EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_extended_dynamic_state device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_extended_dynamic_state device-level function pointers"]
        pub struct DeviceFn {
            pub cmd_set_cull_mode_ext: PFN_vkCmdSetCullMode,
            pub cmd_set_front_face_ext: PFN_vkCmdSetFrontFace,
            pub cmd_set_primitive_topology_ext: PFN_vkCmdSetPrimitiveTopology,
            pub cmd_set_viewport_with_count_ext: PFN_vkCmdSetViewportWithCount,
            pub cmd_set_scissor_with_count_ext: PFN_vkCmdSetScissorWithCount,
            pub cmd_bind_vertex_buffers2_ext: PFN_vkCmdBindVertexBuffers2,
            pub cmd_set_depth_test_enable_ext: PFN_vkCmdSetDepthTestEnable,
            pub cmd_set_depth_write_enable_ext: PFN_vkCmdSetDepthWriteEnable,
            pub cmd_set_depth_compare_op_ext: PFN_vkCmdSetDepthCompareOp,
            pub cmd_set_depth_bounds_test_enable_ext: PFN_vkCmdSetDepthBoundsTestEnable,
            pub cmd_set_stencil_test_enable_ext: PFN_vkCmdSetStencilTestEnable,
            pub cmd_set_stencil_op_ext: PFN_vkCmdSetStencilOp,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    cmd_set_cull_mode_ext: unsafe {
                        unsafe extern "system" fn cmd_set_cull_mode_ext(
                            _command_buffer: CommandBuffer,
                            _cull_mode: CullModeFlags,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_cull_mode_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCullModeEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_cull_mode_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_front_face_ext: unsafe {
                        unsafe extern "system" fn cmd_set_front_face_ext(
                            _command_buffer: CommandBuffer,
                            _front_face: FrontFace,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_front_face_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetFrontFaceEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_front_face_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_primitive_topology_ext: unsafe {
                        unsafe extern "system" fn cmd_set_primitive_topology_ext(
                            _command_buffer: CommandBuffer,
                            _primitive_topology: PrimitiveTopology,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_primitive_topology_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPrimitiveTopologyEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_primitive_topology_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_viewport_with_count_ext: unsafe {
                        unsafe extern "system" fn cmd_set_viewport_with_count_ext(
                            _command_buffer: CommandBuffer,
                            _viewport_count: u32,
                            _p_viewports: *const Viewport,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_viewport_with_count_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetViewportWithCountEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_viewport_with_count_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_scissor_with_count_ext: unsafe {
                        unsafe extern "system" fn cmd_set_scissor_with_count_ext(
                            _command_buffer: CommandBuffer,
                            _scissor_count: u32,
                            _p_scissors: *const Rect2D,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_scissor_with_count_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetScissorWithCountEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_scissor_with_count_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_bind_vertex_buffers2_ext: unsafe {
                        unsafe extern "system" fn cmd_bind_vertex_buffers2_ext(
                            _command_buffer: CommandBuffer,
                            _first_binding: u32,
                            _binding_count: u32,
                            _p_buffers: *const Buffer,
                            _p_offsets: *const DeviceSize,
                            _p_sizes: *const DeviceSize,
                            _p_strides: *const DeviceSize,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_bind_vertex_buffers2_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdBindVertexBuffers2EXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_bind_vertex_buffers2_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_depth_test_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_depth_test_enable_ext(
                            _command_buffer: CommandBuffer,
                            _depth_test_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_depth_test_enable_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthTestEnableEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_depth_test_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_depth_write_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_depth_write_enable_ext(
                            _command_buffer: CommandBuffer,
                            _depth_write_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_depth_write_enable_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthWriteEnableEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_depth_write_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_depth_compare_op_ext: unsafe {
                        unsafe extern "system" fn cmd_set_depth_compare_op_ext(
                            _command_buffer: CommandBuffer,
                            _depth_compare_op: CompareOp,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_depth_compare_op_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthCompareOpEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_depth_compare_op_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_depth_bounds_test_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_depth_bounds_test_enable_ext(
                            _command_buffer: CommandBuffer,
                            _depth_bounds_test_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_depth_bounds_test_enable_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetDepthBoundsTestEnableEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_depth_bounds_test_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_stencil_test_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_stencil_test_enable_ext(
                            _command_buffer: CommandBuffer,
                            _stencil_test_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_stencil_test_enable_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilTestEnableEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_stencil_test_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_stencil_op_ext: unsafe {
                        unsafe extern "system" fn cmd_set_stencil_op_ext(
                            _command_buffer: CommandBuffer,
                            _face_mask: StencilFaceFlags,
                            _fail_op: StencilOp,
                            _pass_op: StencilOp,
                            _depth_fail_op: StencilOp,
                            _compare_op: CompareOp,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_stencil_op_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilOpEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_stencil_op_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_host_image_copy"]
    pub mod host_image_copy {
        use super::super::*;
        pub use {
            crate::vk::EXT_HOST_IMAGE_COPY_NAME as NAME,
            crate::vk::EXT_HOST_IMAGE_COPY_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_host_image_copy device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_host_image_copy device-level function pointers"]
        pub struct DeviceFn {
            pub copy_memory_to_image_ext: PFN_vkCopyMemoryToImageEXT,
            pub copy_image_to_memory_ext: PFN_vkCopyImageToMemoryEXT,
            pub copy_image_to_image_ext: PFN_vkCopyImageToImageEXT,
            pub transition_image_layout_ext: PFN_vkTransitionImageLayoutEXT,
            pub get_image_subresource_layout2_ext: PFN_vkGetImageSubresourceLayout2KHR,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    copy_memory_to_image_ext: unsafe {
                        unsafe extern "system" fn copy_memory_to_image_ext(
                            _device: crate::vk::Device,
                            _p_copy_memory_to_image_info: *const CopyMemoryToImageInfoEXT<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(copy_memory_to_image_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCopyMemoryToImageEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            copy_memory_to_image_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    copy_image_to_memory_ext: unsafe {
                        unsafe extern "system" fn copy_image_to_memory_ext(
                            _device: crate::vk::Device,
                            _p_copy_image_to_memory_info: *const CopyImageToMemoryInfoEXT<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(copy_image_to_memory_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCopyImageToMemoryEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            copy_image_to_memory_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    copy_image_to_image_ext: unsafe {
                        unsafe extern "system" fn copy_image_to_image_ext(
                            _device: crate::vk::Device,
                            _p_copy_image_to_image_info: *const CopyImageToImageInfoEXT<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(copy_image_to_image_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkCopyImageToImageEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            copy_image_to_image_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    transition_image_layout_ext: unsafe {
                        unsafe extern "system" fn transition_image_layout_ext(
                            _device: crate::vk::Device,
                            _transition_count: u32,
                            _p_transitions: *const HostImageLayoutTransitionInfoEXT<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(transition_image_layout_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkTransitionImageLayoutEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            transition_image_layout_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_image_subresource_layout2_ext: unsafe {
                        unsafe extern "system" fn get_image_subresource_layout2_ext(
                            _device: crate::vk::Device,
                            _image: Image,
                            _p_subresource: *const ImageSubresource2KHR<'_>,
                            _p_layout: *mut SubresourceLayout2KHR<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_image_subresource_layout2_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetImageSubresourceLayout2EXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_image_subresource_layout2_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_map_memory_placed"]
    pub mod map_memory_placed {
        use super::super::*;
        pub use {
            crate::vk::EXT_MAP_MEMORY_PLACED_NAME as NAME,
            crate::vk::EXT_MAP_MEMORY_PLACED_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_shader_atomic_float2"]
    pub mod shader_atomic_float2 {
        use super::super::*;
        pub use {
            crate::vk::EXT_SHADER_ATOMIC_FLOAT2_NAME as NAME,
            crate::vk::EXT_SHADER_ATOMIC_FLOAT2_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_surface_maintenance1"]
    pub mod surface_maintenance1 {
        use super::super::*;
        pub use {
            crate::vk::EXT_SURFACE_MAINTENANCE1_NAME as NAME,
            crate::vk::EXT_SURFACE_MAINTENANCE1_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_swapchain_maintenance1"]
    pub mod swapchain_maintenance1 {
        use super::super::*;
        pub use {
            crate::vk::EXT_SWAPCHAIN_MAINTENANCE1_NAME as NAME,
            crate::vk::EXT_SWAPCHAIN_MAINTENANCE1_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_swapchain_maintenance1 device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_swapchain_maintenance1 device-level function pointers"]
        pub struct DeviceFn {
            pub release_swapchain_images_ext: PFN_vkReleaseSwapchainImagesEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    release_swapchain_images_ext: unsafe {
                        unsafe extern "system" fn release_swapchain_images_ext(
                            _device: crate::vk::Device,
                            _p_release_info: *const ReleaseSwapchainImagesInfoEXT<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(release_swapchain_images_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkReleaseSwapchainImagesEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            release_swapchain_images_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_shader_demote_to_helper_invocation"]
    pub mod shader_demote_to_helper_invocation {
        use super::super::*;
        pub use {
            crate::vk::EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_NAME as NAME,
            crate::vk::EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_texel_buffer_alignment"]
    pub mod texel_buffer_alignment {
        use super::super::*;
        pub use {
            crate::vk::EXT_TEXEL_BUFFER_ALIGNMENT_NAME as NAME,
            crate::vk::EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_depth_bias_control"]
    pub mod depth_bias_control {
        use super::super::*;
        pub use {
            crate::vk::EXT_DEPTH_BIAS_CONTROL_NAME as NAME,
            crate::vk::EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_depth_bias_control device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_depth_bias_control device-level function pointers"]
        pub struct DeviceFn {
            pub cmd_set_depth_bias2_ext: PFN_vkCmdSetDepthBias2EXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    cmd_set_depth_bias2_ext: unsafe {
                        unsafe extern "system" fn cmd_set_depth_bias2_ext(
                            _command_buffer: CommandBuffer,
                            _p_depth_bias_info: *const DepthBiasInfoEXT<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_depth_bias2_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthBias2EXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_depth_bias2_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_device_memory_report"]
    pub mod device_memory_report {
        use super::super::*;
        pub use {
            crate::vk::EXT_DEVICE_MEMORY_REPORT_NAME as NAME,
            crate::vk::EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_acquire_drm_display"]
    pub mod acquire_drm_display {
        use super::super::*;
        pub use {
            crate::vk::EXT_ACQUIRE_DRM_DISPLAY_NAME as NAME,
            crate::vk::EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_acquire_drm_display instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_acquire_drm_display instance-level function pointers"]
        pub struct InstanceFn {
            pub acquire_drm_display_ext: PFN_vkAcquireDrmDisplayEXT,
            pub get_drm_display_ext: PFN_vkGetDrmDisplayEXT,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    acquire_drm_display_ext: unsafe {
                        unsafe extern "system" fn acquire_drm_display_ext(
                            _physical_device: PhysicalDevice,
                            _drm_fd: i32,
                            _display: DisplayKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(acquire_drm_display_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkAcquireDrmDisplayEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            acquire_drm_display_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_drm_display_ext: unsafe {
                        unsafe extern "system" fn get_drm_display_ext(
                            _physical_device: PhysicalDevice,
                            _drm_fd: i32,
                            _connector_id: u32,
                            _display: *mut DisplayKHR,
                        ) -> Result {
                            panic!(concat!("Unable to load ", stringify!(get_drm_display_ext)))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetDrmDisplayEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            get_drm_display_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_robustness2"]
    pub mod robustness2 {
        use super::super::*;
        pub use {
            crate::vk::EXT_ROBUSTNESS2_NAME as NAME,
            crate::vk::EXT_ROBUSTNESS2_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_custom_border_color"]
    pub mod custom_border_color {
        use super::super::*;
        pub use {
            crate::vk::EXT_CUSTOM_BORDER_COLOR_NAME as NAME,
            crate::vk::EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_private_data"]
    pub mod private_data {
        use super::super::*;
        pub use {
            crate::vk::EXT_PRIVATE_DATA_NAME as NAME,
            crate::vk::EXT_PRIVATE_DATA_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_private_data device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_private_data device-level function pointers"]
        pub struct DeviceFn {
            pub create_private_data_slot_ext: PFN_vkCreatePrivateDataSlot,
            pub destroy_private_data_slot_ext: PFN_vkDestroyPrivateDataSlot,
            pub set_private_data_ext: PFN_vkSetPrivateData,
            pub get_private_data_ext: PFN_vkGetPrivateData,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    create_private_data_slot_ext: unsafe {
                        unsafe extern "system" fn create_private_data_slot_ext(
                            _device: crate::vk::Device,
                            _p_create_info: *const PrivateDataSlotCreateInfo<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_private_data_slot: *mut PrivateDataSlot,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(create_private_data_slot_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCreatePrivateDataSlotEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            create_private_data_slot_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    destroy_private_data_slot_ext: unsafe {
                        unsafe extern "system" fn destroy_private_data_slot_ext(
                            _device: crate::vk::Device,
                            _private_data_slot: PrivateDataSlot,
                            _p_allocator: *const AllocationCallbacks<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(destroy_private_data_slot_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkDestroyPrivateDataSlotEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            destroy_private_data_slot_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    set_private_data_ext: unsafe {
                        unsafe extern "system" fn set_private_data_ext(
                            _device: crate::vk::Device,
                            _object_type: ObjectType,
                            _object_handle: u64,
                            _private_data_slot: PrivateDataSlot,
                            _data: u64,
                        ) -> Result {
                            panic!(concat!("Unable to load ", stringify!(set_private_data_ext)))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkSetPrivateDataEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            set_private_data_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_private_data_ext: unsafe {
                        unsafe extern "system" fn get_private_data_ext(
                            _device: crate::vk::Device,
                            _object_type: ObjectType,
                            _object_handle: u64,
                            _private_data_slot: PrivateDataSlot,
                            _p_data: *mut u64,
                        ) {
                            panic!(concat!("Unable to load ", stringify!(get_private_data_ext)))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetPrivateDataEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            get_private_data_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_pipeline_creation_cache_control"]
    pub mod pipeline_creation_cache_control {
        use super::super::*;
        pub use {
            crate::vk::EXT_PIPELINE_CREATION_CACHE_CONTROL_NAME as NAME,
            crate::vk::EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_metal_objects"]
    pub mod metal_objects {
        use super::super::*;
        pub use {
            crate::vk::EXT_METAL_OBJECTS_NAME as NAME,
            crate::vk::EXT_METAL_OBJECTS_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_metal_objects device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_metal_objects device-level function pointers"]
        pub struct DeviceFn {
            pub export_metal_objects_ext: PFN_vkExportMetalObjectsEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    export_metal_objects_ext: unsafe {
                        unsafe extern "system" fn export_metal_objects_ext(
                            _device: crate::vk::Device,
                            _p_metal_objects_info: *mut ExportMetalObjectsInfoEXT<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(export_metal_objects_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkExportMetalObjectsEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            export_metal_objects_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_descriptor_buffer"]
    pub mod descriptor_buffer {
        use super::super::*;
        pub use {
            crate::vk::EXT_DESCRIPTOR_BUFFER_NAME as NAME,
            crate::vk::EXT_DESCRIPTOR_BUFFER_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_descriptor_buffer device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_descriptor_buffer device-level function pointers"]
        pub struct DeviceFn {
            pub get_descriptor_set_layout_size_ext: PFN_vkGetDescriptorSetLayoutSizeEXT,
            pub get_descriptor_set_layout_binding_offset_ext:
                PFN_vkGetDescriptorSetLayoutBindingOffsetEXT,
            pub get_descriptor_ext: PFN_vkGetDescriptorEXT,
            pub cmd_bind_descriptor_buffers_ext: PFN_vkCmdBindDescriptorBuffersEXT,
            pub cmd_set_descriptor_buffer_offsets_ext: PFN_vkCmdSetDescriptorBufferOffsetsEXT,
            pub cmd_bind_descriptor_buffer_embedded_samplers_ext:
                PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT,
            pub get_buffer_opaque_capture_descriptor_data_ext:
                PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT,
            pub get_image_opaque_capture_descriptor_data_ext:
                PFN_vkGetImageOpaqueCaptureDescriptorDataEXT,
            pub get_image_view_opaque_capture_descriptor_data_ext:
                PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT,
            pub get_sampler_opaque_capture_descriptor_data_ext:
                PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT,
            pub get_acceleration_structure_opaque_capture_descriptor_data_ext:
                PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_descriptor_set_layout_size_ext: unsafe {
                        unsafe extern "system" fn get_descriptor_set_layout_size_ext(
                            _device: crate::vk::Device,
                            _layout: DescriptorSetLayout,
                            _p_layout_size_in_bytes: *mut DeviceSize,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_descriptor_set_layout_size_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetDescriptorSetLayoutSizeEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_descriptor_set_layout_size_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_descriptor_set_layout_binding_offset_ext: unsafe {
                        unsafe extern "system" fn get_descriptor_set_layout_binding_offset_ext(
                            _device: crate::vk::Device,
                            _layout: DescriptorSetLayout,
                            _binding: u32,
                            _p_offset: *mut DeviceSize,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_descriptor_set_layout_binding_offset_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetDescriptorSetLayoutBindingOffsetEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_descriptor_set_layout_binding_offset_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_descriptor_ext: unsafe {
                        unsafe extern "system" fn get_descriptor_ext(
                            _device: crate::vk::Device,
                            _p_descriptor_info: *const DescriptorGetInfoEXT<'_>,
                            _data_size: usize,
                            _p_descriptor: *mut c_void,
                        ) {
                            panic!(concat!("Unable to load ", stringify!(get_descriptor_ext)))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetDescriptorEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            get_descriptor_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_bind_descriptor_buffers_ext: unsafe {
                        unsafe extern "system" fn cmd_bind_descriptor_buffers_ext(
                            _command_buffer: CommandBuffer,
                            _buffer_count: u32,
                            _p_binding_infos: *const DescriptorBufferBindingInfoEXT<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_bind_descriptor_buffers_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdBindDescriptorBuffersEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_bind_descriptor_buffers_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_descriptor_buffer_offsets_ext: unsafe {
                        unsafe extern "system" fn cmd_set_descriptor_buffer_offsets_ext(
                            _command_buffer: CommandBuffer,
                            _pipeline_bind_point: PipelineBindPoint,
                            _layout: PipelineLayout,
                            _first_set: u32,
                            _set_count: u32,
                            _p_buffer_indices: *const u32,
                            _p_offsets: *const DeviceSize,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_descriptor_buffer_offsets_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetDescriptorBufferOffsetsEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_descriptor_buffer_offsets_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_bind_descriptor_buffer_embedded_samplers_ext: unsafe {
                        unsafe extern "system" fn cmd_bind_descriptor_buffer_embedded_samplers_ext(
                            _command_buffer: CommandBuffer,
                            _pipeline_bind_point: PipelineBindPoint,
                            _layout: PipelineLayout,
                            _set: u32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_bind_descriptor_buffer_embedded_samplers_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdBindDescriptorBufferEmbeddedSamplersEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_bind_descriptor_buffer_embedded_samplers_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_buffer_opaque_capture_descriptor_data_ext: unsafe {
                        unsafe extern "system" fn get_buffer_opaque_capture_descriptor_data_ext(
                            _device: crate::vk::Device,
                            _p_info: *const BufferCaptureDescriptorDataInfoEXT<'_>,
                            _p_data: *mut c_void,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_buffer_opaque_capture_descriptor_data_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetBufferOpaqueCaptureDescriptorDataEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_buffer_opaque_capture_descriptor_data_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_image_opaque_capture_descriptor_data_ext: unsafe {
                        unsafe extern "system" fn get_image_opaque_capture_descriptor_data_ext(
                            _device: crate::vk::Device,
                            _p_info: *const ImageCaptureDescriptorDataInfoEXT<'_>,
                            _p_data: *mut c_void,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_image_opaque_capture_descriptor_data_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetImageOpaqueCaptureDescriptorDataEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_image_opaque_capture_descriptor_data_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_image_view_opaque_capture_descriptor_data_ext: unsafe {
                        unsafe extern "system" fn get_image_view_opaque_capture_descriptor_data_ext(
                            _device: crate::vk::Device,
                            _p_info: *const ImageViewCaptureDescriptorDataInfoEXT<'_>,
                            _p_data: *mut c_void,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_image_view_opaque_capture_descriptor_data_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetImageViewOpaqueCaptureDescriptorDataEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_image_view_opaque_capture_descriptor_data_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_sampler_opaque_capture_descriptor_data_ext: unsafe {
                        unsafe extern "system" fn get_sampler_opaque_capture_descriptor_data_ext(
                            _device: crate::vk::Device,
                            _p_info: *const SamplerCaptureDescriptorDataInfoEXT<'_>,
                            _p_data: *mut c_void,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_sampler_opaque_capture_descriptor_data_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetSamplerOpaqueCaptureDescriptorDataEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_sampler_opaque_capture_descriptor_data_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_acceleration_structure_opaque_capture_descriptor_data_ext: unsafe {
                        unsafe extern "system" fn get_acceleration_structure_opaque_capture_descriptor_data_ext(
                            _device: crate::vk::Device,
                            _p_info: *const AccelerationStructureCaptureDescriptorDataInfoEXT<'_>,
                            _p_data: *mut c_void,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(
                                    get_acceleration_structure_opaque_capture_descriptor_data_ext
                                )
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_acceleration_structure_opaque_capture_descriptor_data_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_graphics_pipeline_library"]
    pub mod graphics_pipeline_library {
        use super::super::*;
        pub use {
            crate::vk::EXT_GRAPHICS_PIPELINE_LIBRARY_NAME as NAME,
            crate::vk::EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_mesh_shader"]
    pub mod mesh_shader {
        use super::super::*;
        pub use {
            crate::vk::EXT_MESH_SHADER_NAME as NAME,
            crate::vk::EXT_MESH_SHADER_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_mesh_shader device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_mesh_shader device-level function pointers"]
        pub struct DeviceFn {
            pub cmd_draw_mesh_tasks_ext: PFN_vkCmdDrawMeshTasksEXT,
            pub cmd_draw_mesh_tasks_indirect_ext: PFN_vkCmdDrawMeshTasksIndirectEXT,
            pub cmd_draw_mesh_tasks_indirect_count_ext: PFN_vkCmdDrawMeshTasksIndirectCountEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    cmd_draw_mesh_tasks_ext: unsafe {
                        unsafe extern "system" fn cmd_draw_mesh_tasks_ext(
                            _command_buffer: CommandBuffer,
                            _group_count_x: u32,
                            _group_count_y: u32,
                            _group_count_z: u32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_draw_mesh_tasks_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMeshTasksEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_draw_mesh_tasks_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_draw_mesh_tasks_indirect_ext: unsafe {
                        unsafe extern "system" fn cmd_draw_mesh_tasks_indirect_ext(
                            _command_buffer: CommandBuffer,
                            _buffer: Buffer,
                            _offset: DeviceSize,
                            _draw_count: u32,
                            _stride: u32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_draw_mesh_tasks_indirect_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMeshTasksIndirectEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_draw_mesh_tasks_indirect_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_draw_mesh_tasks_indirect_count_ext: unsafe {
                        unsafe extern "system" fn cmd_draw_mesh_tasks_indirect_count_ext(
                            _command_buffer: CommandBuffer,
                            _buffer: Buffer,
                            _offset: DeviceSize,
                            _count_buffer: Buffer,
                            _count_buffer_offset: DeviceSize,
                            _max_draw_count: u32,
                            _stride: u32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_draw_mesh_tasks_indirect_count_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdDrawMeshTasksIndirectCountEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_draw_mesh_tasks_indirect_count_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_ycbcr_2plane_444_formats"]
    pub mod ycbcr_2plane_444_formats {
        use super::super::*;
        pub use {
            crate::vk::EXT_YCBCR_2PLANE_444_FORMATS_NAME as NAME,
            crate::vk::EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_fragment_density_map2"]
    pub mod fragment_density_map2 {
        use super::super::*;
        pub use {
            crate::vk::EXT_FRAGMENT_DENSITY_MAP2_NAME as NAME,
            crate::vk::EXT_FRAGMENT_DENSITY_MAP2_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_image_robustness"]
    pub mod image_robustness {
        use super::super::*;
        pub use {
            crate::vk::EXT_IMAGE_ROBUSTNESS_NAME as NAME,
            crate::vk::EXT_IMAGE_ROBUSTNESS_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_image_compression_control"]
    pub mod image_compression_control {
        use super::super::*;
        pub use {
            crate::vk::EXT_IMAGE_COMPRESSION_CONTROL_NAME as NAME,
            crate::vk::EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_image_compression_control device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_image_compression_control device-level function pointers"]
        pub struct DeviceFn {
            pub get_image_subresource_layout2_ext: PFN_vkGetImageSubresourceLayout2KHR,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_image_subresource_layout2_ext: unsafe {
                        unsafe extern "system" fn get_image_subresource_layout2_ext(
                            _device: crate::vk::Device,
                            _image: Image,
                            _p_subresource: *const ImageSubresource2KHR<'_>,
                            _p_layout: *mut SubresourceLayout2KHR<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_image_subresource_layout2_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetImageSubresourceLayout2EXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_image_subresource_layout2_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_attachment_feedback_loop_layout"]
    pub mod attachment_feedback_loop_layout {
        use super::super::*;
        pub use {
            crate::vk::EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_NAME as NAME,
            crate::vk::EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_4444_formats"]
    pub mod _4444_formats {
        use super::super::*;
        pub use {
            crate::vk::EXT_4444_FORMATS_NAME as NAME,
            crate::vk::EXT_4444_FORMATS_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_device_fault"]
    pub mod device_fault {
        use super::super::*;
        pub use {
            crate::vk::EXT_DEVICE_FAULT_NAME as NAME,
            crate::vk::EXT_DEVICE_FAULT_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_device_fault device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_device_fault device-level function pointers"]
        pub struct DeviceFn {
            pub get_device_fault_info_ext: PFN_vkGetDeviceFaultInfoEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_device_fault_info_ext: unsafe {
                        unsafe extern "system" fn get_device_fault_info_ext(
                            _device: crate::vk::Device,
                            _p_fault_counts: *mut DeviceFaultCountsEXT<'_>,
                            _p_fault_info: *mut DeviceFaultInfoEXT<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_device_fault_info_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkGetDeviceFaultInfoEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            get_device_fault_info_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_rgba10x6_formats"]
    pub mod rgba10x6_formats {
        use super::super::*;
        pub use {
            crate::vk::EXT_RGBA10X6_FORMATS_NAME as NAME,
            crate::vk::EXT_RGBA10X6_FORMATS_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_directfb_surface"]
    pub mod directfb_surface {
        use super::super::*;
        pub use {
            crate::vk::EXT_DIRECTFB_SURFACE_NAME as NAME,
            crate::vk::EXT_DIRECTFB_SURFACE_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_directfb_surface instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_directfb_surface instance-level function pointers"]
        pub struct InstanceFn {
            pub create_direct_fb_surface_ext: PFN_vkCreateDirectFBSurfaceEXT,
            pub get_physical_device_direct_fb_presentation_support_ext:
                PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    create_direct_fb_surface_ext: unsafe {
                        unsafe extern "system" fn create_direct_fb_surface_ext(
                            _instance: crate::vk::Instance,
                            _p_create_info: *const DirectFBSurfaceCreateInfoEXT<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_surface: *mut SurfaceKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(create_direct_fb_surface_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCreateDirectFBSurfaceEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            create_direct_fb_surface_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_physical_device_direct_fb_presentation_support_ext: unsafe {
                        unsafe extern "system" fn get_physical_device_direct_fb_presentation_support_ext(
                            _physical_device: PhysicalDevice,
                            _queue_family_index: u32,
                            _dfb: *mut IDirectFB,
                        ) -> Bool32 {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_direct_fb_presentation_support_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceDirectFBPresentationSupportEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_direct_fb_presentation_support_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_vertex_input_dynamic_state"]
    pub mod vertex_input_dynamic_state {
        use super::super::*;
        pub use {
            crate::vk::EXT_VERTEX_INPUT_DYNAMIC_STATE_NAME as NAME,
            crate::vk::EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_vertex_input_dynamic_state device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_vertex_input_dynamic_state device-level function pointers"]
        pub struct DeviceFn {
            pub cmd_set_vertex_input_ext: PFN_vkCmdSetVertexInputEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    cmd_set_vertex_input_ext: unsafe {
                        unsafe extern "system" fn cmd_set_vertex_input_ext(
                            _command_buffer: CommandBuffer,
                            _vertex_binding_description_count: u32,
                            _p_vertex_binding_descriptions : * const VertexInputBindingDescription2EXT < '_ >,
                            _vertex_attribute_description_count: u32,
                            _p_vertex_attribute_descriptions : * const VertexInputAttributeDescription2EXT < '_ >,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_vertex_input_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetVertexInputEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_vertex_input_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_physical_device_drm"]
    pub mod physical_device_drm {
        use super::super::*;
        pub use {
            crate::vk::EXT_PHYSICAL_DEVICE_DRM_NAME as NAME,
            crate::vk::EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_device_address_binding_report"]
    pub mod device_address_binding_report {
        use super::super::*;
        pub use {
            crate::vk::EXT_DEVICE_ADDRESS_BINDING_REPORT_NAME as NAME,
            crate::vk::EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_depth_clip_control"]
    pub mod depth_clip_control {
        use super::super::*;
        pub use {
            crate::vk::EXT_DEPTH_CLIP_CONTROL_NAME as NAME,
            crate::vk::EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_primitive_topology_list_restart"]
    pub mod primitive_topology_list_restart {
        use super::super::*;
        pub use {
            crate::vk::EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_NAME as NAME,
            crate::vk::EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_pipeline_properties"]
    pub mod pipeline_properties {
        use super::super::*;
        pub use {
            crate::vk::EXT_PIPELINE_PROPERTIES_NAME as NAME,
            crate::vk::EXT_PIPELINE_PROPERTIES_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_pipeline_properties device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[allow(non_camel_case_types)]
        #[doc = "Implemented for all types that can be passed as argument to `pipeline_properties` in [`PFN_vkGetPipelinePropertiesEXT`]"]
        pub unsafe trait GetPipelinePropertiesEXTParamPipelineProperties {}
        unsafe impl GetPipelinePropertiesEXTParamPipelineProperties
            for PipelinePropertiesIdentifierEXT<'_>
        {
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_pipeline_properties device-level function pointers"]
        pub struct DeviceFn {
            pub get_pipeline_properties_ext: PFN_vkGetPipelinePropertiesEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_pipeline_properties_ext: unsafe {
                        unsafe extern "system" fn get_pipeline_properties_ext(
                            _device: crate::vk::Device,
                            _p_pipeline_info: *const PipelineInfoEXT<'_>,
                            _p_pipeline_properties: *mut BaseOutStructure<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_pipeline_properties_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkGetPipelinePropertiesEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            get_pipeline_properties_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_frame_boundary"]
    pub mod frame_boundary {
        use super::super::*;
        pub use {
            crate::vk::EXT_FRAME_BOUNDARY_NAME as NAME,
            crate::vk::EXT_FRAME_BOUNDARY_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_multisampled_render_to_single_sampled"]
    pub mod multisampled_render_to_single_sampled {
        use super::super::*;
        pub use {
            crate::vk::EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_NAME as NAME,
            crate::vk::EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_extended_dynamic_state2"]
    pub mod extended_dynamic_state2 {
        use super::super::*;
        pub use {
            crate::vk::EXT_EXTENDED_DYNAMIC_STATE2_NAME as NAME,
            crate::vk::EXT_EXTENDED_DYNAMIC_STATE2_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_extended_dynamic_state2 device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_extended_dynamic_state2 device-level function pointers"]
        pub struct DeviceFn {
            pub cmd_set_patch_control_points_ext: PFN_vkCmdSetPatchControlPointsEXT,
            pub cmd_set_rasterizer_discard_enable_ext: PFN_vkCmdSetRasterizerDiscardEnable,
            pub cmd_set_depth_bias_enable_ext: PFN_vkCmdSetDepthBiasEnable,
            pub cmd_set_logic_op_ext: PFN_vkCmdSetLogicOpEXT,
            pub cmd_set_primitive_restart_enable_ext: PFN_vkCmdSetPrimitiveRestartEnable,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    cmd_set_patch_control_points_ext: unsafe {
                        unsafe extern "system" fn cmd_set_patch_control_points_ext(
                            _command_buffer: CommandBuffer,
                            _patch_control_points: u32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_patch_control_points_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPatchControlPointsEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_patch_control_points_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_rasterizer_discard_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_rasterizer_discard_enable_ext(
                            _command_buffer: CommandBuffer,
                            _rasterizer_discard_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_rasterizer_discard_enable_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetRasterizerDiscardEnableEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_rasterizer_discard_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_depth_bias_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_depth_bias_enable_ext(
                            _command_buffer: CommandBuffer,
                            _depth_bias_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_depth_bias_enable_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthBiasEnableEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_depth_bias_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_logic_op_ext: unsafe {
                        unsafe extern "system" fn cmd_set_logic_op_ext(
                            _command_buffer: CommandBuffer,
                            _logic_op: LogicOp,
                        ) {
                            panic!(concat!("Unable to load ", stringify!(cmd_set_logic_op_ext)))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLogicOpEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_logic_op_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_primitive_restart_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_primitive_restart_enable_ext(
                            _command_buffer: CommandBuffer,
                            _primitive_restart_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_primitive_restart_enable_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetPrimitiveRestartEnableEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_primitive_restart_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_color_write_enable"]
    pub mod color_write_enable {
        use super::super::*;
        pub use {
            crate::vk::EXT_COLOR_WRITE_ENABLE_NAME as NAME,
            crate::vk::EXT_COLOR_WRITE_ENABLE_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_color_write_enable device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_color_write_enable device-level function pointers"]
        pub struct DeviceFn {
            pub cmd_set_color_write_enable_ext: PFN_vkCmdSetColorWriteEnableEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    cmd_set_color_write_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_color_write_enable_ext(
                            _command_buffer: CommandBuffer,
                            _attachment_count: u32,
                            _p_color_write_enables: *const Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_color_write_enable_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorWriteEnableEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_color_write_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_primitives_generated_query"]
    pub mod primitives_generated_query {
        use super::super::*;
        pub use {
            crate::vk::EXT_PRIMITIVES_GENERATED_QUERY_NAME as NAME,
            crate::vk::EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_global_priority_query"]
    pub mod global_priority_query {
        use super::super::*;
        pub use {
            crate::vk::EXT_GLOBAL_PRIORITY_QUERY_NAME as NAME,
            crate::vk::EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_image_view_min_lod"]
    pub mod image_view_min_lod {
        use super::super::*;
        pub use {
            crate::vk::EXT_IMAGE_VIEW_MIN_LOD_NAME as NAME,
            crate::vk::EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_multi_draw"]
    pub mod multi_draw {
        use super::super::*;
        pub use {
            crate::vk::EXT_MULTI_DRAW_NAME as NAME,
            crate::vk::EXT_MULTI_DRAW_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_multi_draw device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_multi_draw device-level function pointers"]
        pub struct DeviceFn {
            pub cmd_draw_multi_ext: PFN_vkCmdDrawMultiEXT,
            pub cmd_draw_multi_indexed_ext: PFN_vkCmdDrawMultiIndexedEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    cmd_draw_multi_ext: unsafe {
                        unsafe extern "system" fn cmd_draw_multi_ext(
                            _command_buffer: CommandBuffer,
                            _draw_count: u32,
                            _p_vertex_info: *const MultiDrawInfoEXT,
                            _instance_count: u32,
                            _first_instance: u32,
                            _stride: u32,
                        ) {
                            panic!(concat!("Unable to load ", stringify!(cmd_draw_multi_ext)))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMultiEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_draw_multi_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_draw_multi_indexed_ext: unsafe {
                        unsafe extern "system" fn cmd_draw_multi_indexed_ext(
                            _command_buffer: CommandBuffer,
                            _draw_count: u32,
                            _p_index_info: *const MultiDrawIndexedInfoEXT,
                            _instance_count: u32,
                            _first_instance: u32,
                            _stride: u32,
                            _p_vertex_offset: *const i32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_draw_multi_indexed_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMultiIndexedEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_draw_multi_indexed_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_image_2d_view_of_3d"]
    pub mod image_2d_view_of_3d {
        use super::super::*;
        pub use {
            crate::vk::EXT_IMAGE_2D_VIEW_OF_3D_NAME as NAME,
            crate::vk::EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_shader_tile_image"]
    pub mod shader_tile_image {
        use super::super::*;
        pub use {
            crate::vk::EXT_SHADER_TILE_IMAGE_NAME as NAME,
            crate::vk::EXT_SHADER_TILE_IMAGE_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_opacity_micromap"]
    pub mod opacity_micromap {
        use super::super::*;
        pub use {
            crate::vk::EXT_OPACITY_MICROMAP_NAME as NAME,
            crate::vk::EXT_OPACITY_MICROMAP_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_opacity_micromap device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_opacity_micromap device-level function pointers"]
        pub struct DeviceFn {
            pub create_micromap_ext: PFN_vkCreateMicromapEXT,
            pub destroy_micromap_ext: PFN_vkDestroyMicromapEXT,
            pub cmd_build_micromaps_ext: PFN_vkCmdBuildMicromapsEXT,
            pub build_micromaps_ext: PFN_vkBuildMicromapsEXT,
            pub copy_micromap_ext: PFN_vkCopyMicromapEXT,
            pub copy_micromap_to_memory_ext: PFN_vkCopyMicromapToMemoryEXT,
            pub copy_memory_to_micromap_ext: PFN_vkCopyMemoryToMicromapEXT,
            pub write_micromaps_properties_ext: PFN_vkWriteMicromapsPropertiesEXT,
            pub cmd_copy_micromap_ext: PFN_vkCmdCopyMicromapEXT,
            pub cmd_copy_micromap_to_memory_ext: PFN_vkCmdCopyMicromapToMemoryEXT,
            pub cmd_copy_memory_to_micromap_ext: PFN_vkCmdCopyMemoryToMicromapEXT,
            pub cmd_write_micromaps_properties_ext: PFN_vkCmdWriteMicromapsPropertiesEXT,
            pub get_device_micromap_compatibility_ext: PFN_vkGetDeviceMicromapCompatibilityEXT,
            pub get_micromap_build_sizes_ext: PFN_vkGetMicromapBuildSizesEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    create_micromap_ext: unsafe {
                        unsafe extern "system" fn create_micromap_ext(
                            _device: crate::vk::Device,
                            _p_create_info: *const MicromapCreateInfoEXT<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_micromap: *mut MicromapEXT,
                        ) -> Result {
                            panic!(concat!("Unable to load ", stringify!(create_micromap_ext)))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateMicromapEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            create_micromap_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    destroy_micromap_ext: unsafe {
                        unsafe extern "system" fn destroy_micromap_ext(
                            _device: crate::vk::Device,
                            _micromap: MicromapEXT,
                            _p_allocator: *const AllocationCallbacks<'_>,
                        ) {
                            panic!(concat!("Unable to load ", stringify!(destroy_micromap_ext)))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyMicromapEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            destroy_micromap_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_build_micromaps_ext: unsafe {
                        unsafe extern "system" fn cmd_build_micromaps_ext(
                            _command_buffer: CommandBuffer,
                            _info_count: u32,
                            _p_infos: *const MicromapBuildInfoEXT<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_build_micromaps_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdBuildMicromapsEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_build_micromaps_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    build_micromaps_ext: unsafe {
                        unsafe extern "system" fn build_micromaps_ext(
                            _device: crate::vk::Device,
                            _deferred_operation: DeferredOperationKHR,
                            _info_count: u32,
                            _p_infos: *const MicromapBuildInfoEXT<'_>,
                        ) -> Result {
                            panic!(concat!("Unable to load ", stringify!(build_micromaps_ext)))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkBuildMicromapsEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            build_micromaps_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    copy_micromap_ext: unsafe {
                        unsafe extern "system" fn copy_micromap_ext(
                            _device: crate::vk::Device,
                            _deferred_operation: DeferredOperationKHR,
                            _p_info: *const CopyMicromapInfoEXT<'_>,
                        ) -> Result {
                            panic!(concat!("Unable to load ", stringify!(copy_micromap_ext)))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkCopyMicromapEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            copy_micromap_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    copy_micromap_to_memory_ext: unsafe {
                        unsafe extern "system" fn copy_micromap_to_memory_ext(
                            _device: crate::vk::Device,
                            _deferred_operation: DeferredOperationKHR,
                            _p_info: *const CopyMicromapToMemoryInfoEXT<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(copy_micromap_to_memory_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCopyMicromapToMemoryEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            copy_micromap_to_memory_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    copy_memory_to_micromap_ext: unsafe {
                        unsafe extern "system" fn copy_memory_to_micromap_ext(
                            _device: crate::vk::Device,
                            _deferred_operation: DeferredOperationKHR,
                            _p_info: *const CopyMemoryToMicromapInfoEXT<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(copy_memory_to_micromap_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCopyMemoryToMicromapEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            copy_memory_to_micromap_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    write_micromaps_properties_ext: unsafe {
                        unsafe extern "system" fn write_micromaps_properties_ext(
                            _device: crate::vk::Device,
                            _micromap_count: u32,
                            _p_micromaps: *const MicromapEXT,
                            _query_type: QueryType,
                            _data_size: usize,
                            _p_data: *mut c_void,
                            _stride: usize,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(write_micromaps_properties_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkWriteMicromapsPropertiesEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            write_micromaps_properties_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_copy_micromap_ext: unsafe {
                        unsafe extern "system" fn cmd_copy_micromap_ext(
                            _command_buffer: CommandBuffer,
                            _p_info: *const CopyMicromapInfoEXT<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_copy_micromap_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyMicromapEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_copy_micromap_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_copy_micromap_to_memory_ext: unsafe {
                        unsafe extern "system" fn cmd_copy_micromap_to_memory_ext(
                            _command_buffer: CommandBuffer,
                            _p_info: *const CopyMicromapToMemoryInfoEXT<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_copy_micromap_to_memory_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyMicromapToMemoryEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_copy_micromap_to_memory_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_copy_memory_to_micromap_ext: unsafe {
                        unsafe extern "system" fn cmd_copy_memory_to_micromap_ext(
                            _command_buffer: CommandBuffer,
                            _p_info: *const CopyMemoryToMicromapInfoEXT<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_copy_memory_to_micromap_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyMemoryToMicromapEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_copy_memory_to_micromap_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_write_micromaps_properties_ext: unsafe {
                        unsafe extern "system" fn cmd_write_micromaps_properties_ext(
                            _command_buffer: CommandBuffer,
                            _micromap_count: u32,
                            _p_micromaps: *const MicromapEXT,
                            _query_type: QueryType,
                            _query_pool: QueryPool,
                            _first_query: u32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_write_micromaps_properties_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdWriteMicromapsPropertiesEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_write_micromaps_properties_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_device_micromap_compatibility_ext: unsafe {
                        unsafe extern "system" fn get_device_micromap_compatibility_ext(
                            _device: crate::vk::Device,
                            _p_version_info: *const MicromapVersionInfoEXT<'_>,
                            _p_compatibility: *mut AccelerationStructureCompatibilityKHR,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_device_micromap_compatibility_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetDeviceMicromapCompatibilityEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_device_micromap_compatibility_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_micromap_build_sizes_ext: unsafe {
                        unsafe extern "system" fn get_micromap_build_sizes_ext(
                            _device: crate::vk::Device,
                            _build_type: AccelerationStructureBuildTypeKHR,
                            _p_build_info: *const MicromapBuildInfoEXT<'_>,
                            _p_size_info: *mut MicromapBuildSizesInfoEXT<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_micromap_build_sizes_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkGetMicromapBuildSizesEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            get_micromap_build_sizes_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_load_store_op_none"]
    pub mod load_store_op_none {
        use super::super::*;
        pub use {
            crate::vk::EXT_LOAD_STORE_OP_NONE_NAME as NAME,
            crate::vk::EXT_LOAD_STORE_OP_NONE_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_border_color_swizzle"]
    pub mod border_color_swizzle {
        use super::super::*;
        pub use {
            crate::vk::EXT_BORDER_COLOR_SWIZZLE_NAME as NAME,
            crate::vk::EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_pageable_device_local_memory"]
    pub mod pageable_device_local_memory {
        use super::super::*;
        pub use {
            crate::vk::EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_NAME as NAME,
            crate::vk::EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_pageable_device_local_memory device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_pageable_device_local_memory device-level function pointers"]
        pub struct DeviceFn {
            pub set_device_memory_priority_ext: PFN_vkSetDeviceMemoryPriorityEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    set_device_memory_priority_ext: unsafe {
                        unsafe extern "system" fn set_device_memory_priority_ext(
                            _device: crate::vk::Device,
                            _memory: DeviceMemory,
                            _priority: f32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(set_device_memory_priority_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkSetDeviceMemoryPriorityEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            set_device_memory_priority_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_image_sliced_view_of_3d"]
    pub mod image_sliced_view_of_3d {
        use super::super::*;
        pub use {
            crate::vk::EXT_IMAGE_SLICED_VIEW_OF_3D_NAME as NAME,
            crate::vk::EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_depth_clamp_zero_one"]
    pub mod depth_clamp_zero_one {
        use super::super::*;
        pub use {
            crate::vk::EXT_DEPTH_CLAMP_ZERO_ONE_NAME as NAME,
            crate::vk::EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_non_seamless_cube_map"]
    pub mod non_seamless_cube_map {
        use super::super::*;
        pub use {
            crate::vk::EXT_NON_SEAMLESS_CUBE_MAP_NAME as NAME,
            crate::vk::EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_image_compression_control_swapchain"]
    pub mod image_compression_control_swapchain {
        use super::super::*;
        pub use {
            crate::vk::EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_NAME as NAME,
            crate::vk::EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_nested_command_buffer"]
    pub mod nested_command_buffer {
        use super::super::*;
        pub use {
            crate::vk::EXT_NESTED_COMMAND_BUFFER_NAME as NAME,
            crate::vk::EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_external_memory_acquire_unmodified"]
    pub mod external_memory_acquire_unmodified {
        use super::super::*;
        pub use {
            crate::vk::EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_NAME as NAME,
            crate::vk::EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_extended_dynamic_state3"]
    pub mod extended_dynamic_state3 {
        use super::super::*;
        pub use {
            crate::vk::EXT_EXTENDED_DYNAMIC_STATE3_NAME as NAME,
            crate::vk::EXT_EXTENDED_DYNAMIC_STATE3_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_extended_dynamic_state3 device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_extended_dynamic_state3 device-level function pointers"]
        pub struct DeviceFn {
            pub cmd_set_depth_clamp_enable_ext: PFN_vkCmdSetDepthClampEnableEXT,
            pub cmd_set_polygon_mode_ext: PFN_vkCmdSetPolygonModeEXT,
            pub cmd_set_rasterization_samples_ext: PFN_vkCmdSetRasterizationSamplesEXT,
            pub cmd_set_sample_mask_ext: PFN_vkCmdSetSampleMaskEXT,
            pub cmd_set_alpha_to_coverage_enable_ext: PFN_vkCmdSetAlphaToCoverageEnableEXT,
            pub cmd_set_alpha_to_one_enable_ext: PFN_vkCmdSetAlphaToOneEnableEXT,
            pub cmd_set_logic_op_enable_ext: PFN_vkCmdSetLogicOpEnableEXT,
            pub cmd_set_color_blend_enable_ext: PFN_vkCmdSetColorBlendEnableEXT,
            pub cmd_set_color_blend_equation_ext: PFN_vkCmdSetColorBlendEquationEXT,
            pub cmd_set_color_write_mask_ext: PFN_vkCmdSetColorWriteMaskEXT,
            pub cmd_set_tessellation_domain_origin_ext: PFN_vkCmdSetTessellationDomainOriginEXT,
            pub cmd_set_rasterization_stream_ext: PFN_vkCmdSetRasterizationStreamEXT,
            pub cmd_set_conservative_rasterization_mode_ext:
                PFN_vkCmdSetConservativeRasterizationModeEXT,
            pub cmd_set_extra_primitive_overestimation_size_ext:
                PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT,
            pub cmd_set_depth_clip_enable_ext: PFN_vkCmdSetDepthClipEnableEXT,
            pub cmd_set_sample_locations_enable_ext: PFN_vkCmdSetSampleLocationsEnableEXT,
            pub cmd_set_color_blend_advanced_ext: PFN_vkCmdSetColorBlendAdvancedEXT,
            pub cmd_set_provoking_vertex_mode_ext: PFN_vkCmdSetProvokingVertexModeEXT,
            pub cmd_set_line_rasterization_mode_ext: PFN_vkCmdSetLineRasterizationModeEXT,
            pub cmd_set_line_stipple_enable_ext: PFN_vkCmdSetLineStippleEnableEXT,
            pub cmd_set_depth_clip_negative_one_to_one_ext:
                PFN_vkCmdSetDepthClipNegativeOneToOneEXT,
            pub cmd_set_viewport_w_scaling_enable_nv: PFN_vkCmdSetViewportWScalingEnableNV,
            pub cmd_set_viewport_swizzle_nv: PFN_vkCmdSetViewportSwizzleNV,
            pub cmd_set_coverage_to_color_enable_nv: PFN_vkCmdSetCoverageToColorEnableNV,
            pub cmd_set_coverage_to_color_location_nv: PFN_vkCmdSetCoverageToColorLocationNV,
            pub cmd_set_coverage_modulation_mode_nv: PFN_vkCmdSetCoverageModulationModeNV,
            pub cmd_set_coverage_modulation_table_enable_nv:
                PFN_vkCmdSetCoverageModulationTableEnableNV,
            pub cmd_set_coverage_modulation_table_nv: PFN_vkCmdSetCoverageModulationTableNV,
            pub cmd_set_shading_rate_image_enable_nv: PFN_vkCmdSetShadingRateImageEnableNV,
            pub cmd_set_representative_fragment_test_enable_nv:
                PFN_vkCmdSetRepresentativeFragmentTestEnableNV,
            pub cmd_set_coverage_reduction_mode_nv: PFN_vkCmdSetCoverageReductionModeNV,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    cmd_set_depth_clamp_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_depth_clamp_enable_ext(
                            _command_buffer: CommandBuffer,
                            _depth_clamp_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_depth_clamp_enable_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthClampEnableEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_depth_clamp_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_polygon_mode_ext: unsafe {
                        unsafe extern "system" fn cmd_set_polygon_mode_ext(
                            _command_buffer: CommandBuffer,
                            _polygon_mode: PolygonMode,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_polygon_mode_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPolygonModeEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_polygon_mode_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_rasterization_samples_ext: unsafe {
                        unsafe extern "system" fn cmd_set_rasterization_samples_ext(
                            _command_buffer: CommandBuffer,
                            _rasterization_samples: SampleCountFlags,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_rasterization_samples_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetRasterizationSamplesEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_rasterization_samples_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_sample_mask_ext: unsafe {
                        unsafe extern "system" fn cmd_set_sample_mask_ext(
                            _command_buffer: CommandBuffer,
                            _samples: SampleCountFlags,
                            _p_sample_mask: *const SampleMask,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_sample_mask_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetSampleMaskEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_sample_mask_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_alpha_to_coverage_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_alpha_to_coverage_enable_ext(
                            _command_buffer: CommandBuffer,
                            _alpha_to_coverage_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_alpha_to_coverage_enable_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetAlphaToCoverageEnableEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_alpha_to_coverage_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_alpha_to_one_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_alpha_to_one_enable_ext(
                            _command_buffer: CommandBuffer,
                            _alpha_to_one_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_alpha_to_one_enable_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetAlphaToOneEnableEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_alpha_to_one_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_logic_op_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_logic_op_enable_ext(
                            _command_buffer: CommandBuffer,
                            _logic_op_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_logic_op_enable_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLogicOpEnableEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_logic_op_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_color_blend_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_color_blend_enable_ext(
                            _command_buffer: CommandBuffer,
                            _first_attachment: u32,
                            _attachment_count: u32,
                            _p_color_blend_enables: *const Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_color_blend_enable_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorBlendEnableEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_color_blend_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_color_blend_equation_ext: unsafe {
                        unsafe extern "system" fn cmd_set_color_blend_equation_ext(
                            _command_buffer: CommandBuffer,
                            _first_attachment: u32,
                            _attachment_count: u32,
                            _p_color_blend_equations: *const ColorBlendEquationEXT,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_color_blend_equation_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorBlendEquationEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_color_blend_equation_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_color_write_mask_ext: unsafe {
                        unsafe extern "system" fn cmd_set_color_write_mask_ext(
                            _command_buffer: CommandBuffer,
                            _first_attachment: u32,
                            _attachment_count: u32,
                            _p_color_write_masks: *const ColorComponentFlags,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_color_write_mask_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorWriteMaskEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_color_write_mask_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_tessellation_domain_origin_ext: unsafe {
                        unsafe extern "system" fn cmd_set_tessellation_domain_origin_ext(
                            _command_buffer: CommandBuffer,
                            _domain_origin: TessellationDomainOrigin,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_tessellation_domain_origin_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetTessellationDomainOriginEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_tessellation_domain_origin_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_rasterization_stream_ext: unsafe {
                        unsafe extern "system" fn cmd_set_rasterization_stream_ext(
                            _command_buffer: CommandBuffer,
                            _rasterization_stream: u32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_rasterization_stream_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetRasterizationStreamEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_rasterization_stream_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_conservative_rasterization_mode_ext: unsafe {
                        unsafe extern "system" fn cmd_set_conservative_rasterization_mode_ext(
                            _command_buffer: CommandBuffer,
                            _conservative_rasterization_mode: ConservativeRasterizationModeEXT,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_conservative_rasterization_mode_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetConservativeRasterizationModeEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_conservative_rasterization_mode_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_extra_primitive_overestimation_size_ext: unsafe {
                        unsafe extern "system" fn cmd_set_extra_primitive_overestimation_size_ext(
                            _command_buffer: CommandBuffer,
                            _extra_primitive_overestimation_size: f32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_extra_primitive_overestimation_size_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetExtraPrimitiveOverestimationSizeEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_extra_primitive_overestimation_size_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_depth_clip_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_depth_clip_enable_ext(
                            _command_buffer: CommandBuffer,
                            _depth_clip_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_depth_clip_enable_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthClipEnableEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_depth_clip_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_sample_locations_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_sample_locations_enable_ext(
                            _command_buffer: CommandBuffer,
                            _sample_locations_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_sample_locations_enable_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetSampleLocationsEnableEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_sample_locations_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_color_blend_advanced_ext: unsafe {
                        unsafe extern "system" fn cmd_set_color_blend_advanced_ext(
                            _command_buffer: CommandBuffer,
                            _first_attachment: u32,
                            _attachment_count: u32,
                            _p_color_blend_advanced: *const ColorBlendAdvancedEXT,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_color_blend_advanced_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorBlendAdvancedEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_color_blend_advanced_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_provoking_vertex_mode_ext: unsafe {
                        unsafe extern "system" fn cmd_set_provoking_vertex_mode_ext(
                            _command_buffer: CommandBuffer,
                            _provoking_vertex_mode: ProvokingVertexModeEXT,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_provoking_vertex_mode_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetProvokingVertexModeEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_provoking_vertex_mode_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_line_rasterization_mode_ext: unsafe {
                        unsafe extern "system" fn cmd_set_line_rasterization_mode_ext(
                            _command_buffer: CommandBuffer,
                            _line_rasterization_mode: LineRasterizationModeEXT,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_line_rasterization_mode_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetLineRasterizationModeEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_line_rasterization_mode_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_line_stipple_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_line_stipple_enable_ext(
                            _command_buffer: CommandBuffer,
                            _stippled_line_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_line_stipple_enable_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLineStippleEnableEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_line_stipple_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_depth_clip_negative_one_to_one_ext: unsafe {
                        unsafe extern "system" fn cmd_set_depth_clip_negative_one_to_one_ext(
                            _command_buffer: CommandBuffer,
                            _negative_one_to_one: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_depth_clip_negative_one_to_one_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetDepthClipNegativeOneToOneEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_depth_clip_negative_one_to_one_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_viewport_w_scaling_enable_nv: unsafe {
                        unsafe extern "system" fn cmd_set_viewport_w_scaling_enable_nv(
                            _command_buffer: CommandBuffer,
                            _viewport_w_scaling_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_viewport_w_scaling_enable_nv)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetViewportWScalingEnableNV\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_viewport_w_scaling_enable_nv
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_viewport_swizzle_nv: unsafe {
                        unsafe extern "system" fn cmd_set_viewport_swizzle_nv(
                            _command_buffer: CommandBuffer,
                            _first_viewport: u32,
                            _viewport_count: u32,
                            _p_viewport_swizzles: *const ViewportSwizzleNV,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_viewport_swizzle_nv)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetViewportSwizzleNV\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_viewport_swizzle_nv
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_coverage_to_color_enable_nv: unsafe {
                        unsafe extern "system" fn cmd_set_coverage_to_color_enable_nv(
                            _command_buffer: CommandBuffer,
                            _coverage_to_color_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_coverage_to_color_enable_nv)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetCoverageToColorEnableNV\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_coverage_to_color_enable_nv
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_coverage_to_color_location_nv: unsafe {
                        unsafe extern "system" fn cmd_set_coverage_to_color_location_nv(
                            _command_buffer: CommandBuffer,
                            _coverage_to_color_location: u32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_coverage_to_color_location_nv)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetCoverageToColorLocationNV\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_coverage_to_color_location_nv
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_coverage_modulation_mode_nv: unsafe {
                        unsafe extern "system" fn cmd_set_coverage_modulation_mode_nv(
                            _command_buffer: CommandBuffer,
                            _coverage_modulation_mode: CoverageModulationModeNV,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_coverage_modulation_mode_nv)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetCoverageModulationModeNV\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_coverage_modulation_mode_nv
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_coverage_modulation_table_enable_nv: unsafe {
                        unsafe extern "system" fn cmd_set_coverage_modulation_table_enable_nv(
                            _command_buffer: CommandBuffer,
                            _coverage_modulation_table_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_coverage_modulation_table_enable_nv)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetCoverageModulationTableEnableNV\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_coverage_modulation_table_enable_nv
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_coverage_modulation_table_nv: unsafe {
                        unsafe extern "system" fn cmd_set_coverage_modulation_table_nv(
                            _command_buffer: CommandBuffer,
                            _coverage_modulation_table_count: u32,
                            _p_coverage_modulation_table: *const f32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_coverage_modulation_table_nv)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetCoverageModulationTableNV\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_coverage_modulation_table_nv
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_shading_rate_image_enable_nv: unsafe {
                        unsafe extern "system" fn cmd_set_shading_rate_image_enable_nv(
                            _command_buffer: CommandBuffer,
                            _shading_rate_image_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_shading_rate_image_enable_nv)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetShadingRateImageEnableNV\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_shading_rate_image_enable_nv
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_representative_fragment_test_enable_nv: unsafe {
                        unsafe extern "system" fn cmd_set_representative_fragment_test_enable_nv(
                            _command_buffer: CommandBuffer,
                            _representative_fragment_test_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_representative_fragment_test_enable_nv)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetRepresentativeFragmentTestEnableNV\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_representative_fragment_test_enable_nv
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_coverage_reduction_mode_nv: unsafe {
                        unsafe extern "system" fn cmd_set_coverage_reduction_mode_nv(
                            _command_buffer: CommandBuffer,
                            _coverage_reduction_mode: CoverageReductionModeNV,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_coverage_reduction_mode_nv)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetCoverageReductionModeNV\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_coverage_reduction_mode_nv
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_subpass_merge_feedback"]
    pub mod subpass_merge_feedback {
        use super::super::*;
        pub use {
            crate::vk::EXT_SUBPASS_MERGE_FEEDBACK_NAME as NAME,
            crate::vk::EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_shader_module_identifier"]
    pub mod shader_module_identifier {
        use super::super::*;
        pub use {
            crate::vk::EXT_SHADER_MODULE_IDENTIFIER_NAME as NAME,
            crate::vk::EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_shader_module_identifier device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_shader_module_identifier device-level function pointers"]
        pub struct DeviceFn {
            pub get_shader_module_identifier_ext: PFN_vkGetShaderModuleIdentifierEXT,
            pub get_shader_module_create_info_identifier_ext:
                PFN_vkGetShaderModuleCreateInfoIdentifierEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_shader_module_identifier_ext: unsafe {
                        unsafe extern "system" fn get_shader_module_identifier_ext(
                            _device: crate::vk::Device,
                            _shader_module: ShaderModule,
                            _p_identifier: *mut ShaderModuleIdentifierEXT<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_shader_module_identifier_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetShaderModuleIdentifierEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_shader_module_identifier_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_shader_module_create_info_identifier_ext: unsafe {
                        unsafe extern "system" fn get_shader_module_create_info_identifier_ext(
                            _device: crate::vk::Device,
                            _p_create_info: *const ShaderModuleCreateInfo<'_>,
                            _p_identifier: *mut ShaderModuleIdentifierEXT<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_shader_module_create_info_identifier_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetShaderModuleCreateInfoIdentifierEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_shader_module_create_info_identifier_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_rasterization_order_attachment_access"]
    pub mod rasterization_order_attachment_access {
        use super::super::*;
        pub use {
            crate::vk::EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_NAME as NAME,
            crate::vk::EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_legacy_dithering"]
    pub mod legacy_dithering {
        use super::super::*;
        pub use {
            crate::vk::EXT_LEGACY_DITHERING_NAME as NAME,
            crate::vk::EXT_LEGACY_DITHERING_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_pipeline_protected_access"]
    pub mod pipeline_protected_access {
        use super::super::*;
        pub use {
            crate::vk::EXT_PIPELINE_PROTECTED_ACCESS_NAME as NAME,
            crate::vk::EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_shader_object"]
    pub mod shader_object {
        use super::super::*;
        pub use {
            crate::vk::EXT_SHADER_OBJECT_NAME as NAME,
            crate::vk::EXT_SHADER_OBJECT_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_shader_object device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_shader_object device-level function pointers"]
        pub struct DeviceFn {
            pub create_shaders_ext: PFN_vkCreateShadersEXT,
            pub destroy_shader_ext: PFN_vkDestroyShaderEXT,
            pub get_shader_binary_data_ext: PFN_vkGetShaderBinaryDataEXT,
            pub cmd_bind_shaders_ext: PFN_vkCmdBindShadersEXT,
            pub cmd_set_cull_mode_ext: PFN_vkCmdSetCullMode,
            pub cmd_set_front_face_ext: PFN_vkCmdSetFrontFace,
            pub cmd_set_primitive_topology_ext: PFN_vkCmdSetPrimitiveTopology,
            pub cmd_set_viewport_with_count_ext: PFN_vkCmdSetViewportWithCount,
            pub cmd_set_scissor_with_count_ext: PFN_vkCmdSetScissorWithCount,
            pub cmd_bind_vertex_buffers2_ext: PFN_vkCmdBindVertexBuffers2,
            pub cmd_set_depth_test_enable_ext: PFN_vkCmdSetDepthTestEnable,
            pub cmd_set_depth_write_enable_ext: PFN_vkCmdSetDepthWriteEnable,
            pub cmd_set_depth_compare_op_ext: PFN_vkCmdSetDepthCompareOp,
            pub cmd_set_depth_bounds_test_enable_ext: PFN_vkCmdSetDepthBoundsTestEnable,
            pub cmd_set_stencil_test_enable_ext: PFN_vkCmdSetStencilTestEnable,
            pub cmd_set_stencil_op_ext: PFN_vkCmdSetStencilOp,
            pub cmd_set_vertex_input_ext: PFN_vkCmdSetVertexInputEXT,
            pub cmd_set_patch_control_points_ext: PFN_vkCmdSetPatchControlPointsEXT,
            pub cmd_set_rasterizer_discard_enable_ext: PFN_vkCmdSetRasterizerDiscardEnable,
            pub cmd_set_depth_bias_enable_ext: PFN_vkCmdSetDepthBiasEnable,
            pub cmd_set_logic_op_ext: PFN_vkCmdSetLogicOpEXT,
            pub cmd_set_primitive_restart_enable_ext: PFN_vkCmdSetPrimitiveRestartEnable,
            pub cmd_set_tessellation_domain_origin_ext: PFN_vkCmdSetTessellationDomainOriginEXT,
            pub cmd_set_depth_clamp_enable_ext: PFN_vkCmdSetDepthClampEnableEXT,
            pub cmd_set_polygon_mode_ext: PFN_vkCmdSetPolygonModeEXT,
            pub cmd_set_rasterization_samples_ext: PFN_vkCmdSetRasterizationSamplesEXT,
            pub cmd_set_sample_mask_ext: PFN_vkCmdSetSampleMaskEXT,
            pub cmd_set_alpha_to_coverage_enable_ext: PFN_vkCmdSetAlphaToCoverageEnableEXT,
            pub cmd_set_alpha_to_one_enable_ext: PFN_vkCmdSetAlphaToOneEnableEXT,
            pub cmd_set_logic_op_enable_ext: PFN_vkCmdSetLogicOpEnableEXT,
            pub cmd_set_color_blend_enable_ext: PFN_vkCmdSetColorBlendEnableEXT,
            pub cmd_set_color_blend_equation_ext: PFN_vkCmdSetColorBlendEquationEXT,
            pub cmd_set_color_write_mask_ext: PFN_vkCmdSetColorWriteMaskEXT,
            pub cmd_set_rasterization_stream_ext: PFN_vkCmdSetRasterizationStreamEXT,
            pub cmd_set_conservative_rasterization_mode_ext:
                PFN_vkCmdSetConservativeRasterizationModeEXT,
            pub cmd_set_extra_primitive_overestimation_size_ext:
                PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT,
            pub cmd_set_depth_clip_enable_ext: PFN_vkCmdSetDepthClipEnableEXT,
            pub cmd_set_sample_locations_enable_ext: PFN_vkCmdSetSampleLocationsEnableEXT,
            pub cmd_set_color_blend_advanced_ext: PFN_vkCmdSetColorBlendAdvancedEXT,
            pub cmd_set_provoking_vertex_mode_ext: PFN_vkCmdSetProvokingVertexModeEXT,
            pub cmd_set_line_rasterization_mode_ext: PFN_vkCmdSetLineRasterizationModeEXT,
            pub cmd_set_line_stipple_enable_ext: PFN_vkCmdSetLineStippleEnableEXT,
            pub cmd_set_depth_clip_negative_one_to_one_ext:
                PFN_vkCmdSetDepthClipNegativeOneToOneEXT,
            pub cmd_set_viewport_w_scaling_enable_nv: PFN_vkCmdSetViewportWScalingEnableNV,
            pub cmd_set_viewport_swizzle_nv: PFN_vkCmdSetViewportSwizzleNV,
            pub cmd_set_coverage_to_color_enable_nv: PFN_vkCmdSetCoverageToColorEnableNV,
            pub cmd_set_coverage_to_color_location_nv: PFN_vkCmdSetCoverageToColorLocationNV,
            pub cmd_set_coverage_modulation_mode_nv: PFN_vkCmdSetCoverageModulationModeNV,
            pub cmd_set_coverage_modulation_table_enable_nv:
                PFN_vkCmdSetCoverageModulationTableEnableNV,
            pub cmd_set_coverage_modulation_table_nv: PFN_vkCmdSetCoverageModulationTableNV,
            pub cmd_set_shading_rate_image_enable_nv: PFN_vkCmdSetShadingRateImageEnableNV,
            pub cmd_set_representative_fragment_test_enable_nv:
                PFN_vkCmdSetRepresentativeFragmentTestEnableNV,
            pub cmd_set_coverage_reduction_mode_nv: PFN_vkCmdSetCoverageReductionModeNV,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    create_shaders_ext: unsafe {
                        unsafe extern "system" fn create_shaders_ext(
                            _device: crate::vk::Device,
                            _create_info_count: u32,
                            _p_create_infos: *const ShaderCreateInfoEXT<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_shaders: *mut ShaderEXT,
                        ) -> Result {
                            panic!(concat!("Unable to load ", stringify!(create_shaders_ext)))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateShadersEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            create_shaders_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    destroy_shader_ext: unsafe {
                        unsafe extern "system" fn destroy_shader_ext(
                            _device: crate::vk::Device,
                            _shader: ShaderEXT,
                            _p_allocator: *const AllocationCallbacks<'_>,
                        ) {
                            panic!(concat!("Unable to load ", stringify!(destroy_shader_ext)))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyShaderEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            destroy_shader_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_shader_binary_data_ext: unsafe {
                        unsafe extern "system" fn get_shader_binary_data_ext(
                            _device: crate::vk::Device,
                            _shader: ShaderEXT,
                            _p_data_size: *mut usize,
                            _p_data: *mut c_void,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_shader_binary_data_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkGetShaderBinaryDataEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            get_shader_binary_data_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_bind_shaders_ext: unsafe {
                        unsafe extern "system" fn cmd_bind_shaders_ext(
                            _command_buffer: CommandBuffer,
                            _stage_count: u32,
                            _p_stages: *const ShaderStageFlags,
                            _p_shaders: *const ShaderEXT,
                        ) {
                            panic!(concat!("Unable to load ", stringify!(cmd_bind_shaders_ext)))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBindShadersEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_bind_shaders_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_cull_mode_ext: unsafe {
                        unsafe extern "system" fn cmd_set_cull_mode_ext(
                            _command_buffer: CommandBuffer,
                            _cull_mode: CullModeFlags,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_cull_mode_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCullModeEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_cull_mode_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_front_face_ext: unsafe {
                        unsafe extern "system" fn cmd_set_front_face_ext(
                            _command_buffer: CommandBuffer,
                            _front_face: FrontFace,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_front_face_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetFrontFaceEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_front_face_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_primitive_topology_ext: unsafe {
                        unsafe extern "system" fn cmd_set_primitive_topology_ext(
                            _command_buffer: CommandBuffer,
                            _primitive_topology: PrimitiveTopology,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_primitive_topology_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPrimitiveTopologyEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_primitive_topology_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_viewport_with_count_ext: unsafe {
                        unsafe extern "system" fn cmd_set_viewport_with_count_ext(
                            _command_buffer: CommandBuffer,
                            _viewport_count: u32,
                            _p_viewports: *const Viewport,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_viewport_with_count_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetViewportWithCountEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_viewport_with_count_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_scissor_with_count_ext: unsafe {
                        unsafe extern "system" fn cmd_set_scissor_with_count_ext(
                            _command_buffer: CommandBuffer,
                            _scissor_count: u32,
                            _p_scissors: *const Rect2D,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_scissor_with_count_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetScissorWithCountEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_scissor_with_count_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_bind_vertex_buffers2_ext: unsafe {
                        unsafe extern "system" fn cmd_bind_vertex_buffers2_ext(
                            _command_buffer: CommandBuffer,
                            _first_binding: u32,
                            _binding_count: u32,
                            _p_buffers: *const Buffer,
                            _p_offsets: *const DeviceSize,
                            _p_sizes: *const DeviceSize,
                            _p_strides: *const DeviceSize,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_bind_vertex_buffers2_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdBindVertexBuffers2EXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_bind_vertex_buffers2_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_depth_test_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_depth_test_enable_ext(
                            _command_buffer: CommandBuffer,
                            _depth_test_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_depth_test_enable_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthTestEnableEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_depth_test_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_depth_write_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_depth_write_enable_ext(
                            _command_buffer: CommandBuffer,
                            _depth_write_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_depth_write_enable_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthWriteEnableEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_depth_write_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_depth_compare_op_ext: unsafe {
                        unsafe extern "system" fn cmd_set_depth_compare_op_ext(
                            _command_buffer: CommandBuffer,
                            _depth_compare_op: CompareOp,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_depth_compare_op_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthCompareOpEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_depth_compare_op_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_depth_bounds_test_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_depth_bounds_test_enable_ext(
                            _command_buffer: CommandBuffer,
                            _depth_bounds_test_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_depth_bounds_test_enable_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetDepthBoundsTestEnableEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_depth_bounds_test_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_stencil_test_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_stencil_test_enable_ext(
                            _command_buffer: CommandBuffer,
                            _stencil_test_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_stencil_test_enable_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilTestEnableEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_stencil_test_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_stencil_op_ext: unsafe {
                        unsafe extern "system" fn cmd_set_stencil_op_ext(
                            _command_buffer: CommandBuffer,
                            _face_mask: StencilFaceFlags,
                            _fail_op: StencilOp,
                            _pass_op: StencilOp,
                            _depth_fail_op: StencilOp,
                            _compare_op: CompareOp,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_stencil_op_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilOpEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_stencil_op_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_vertex_input_ext: unsafe {
                        unsafe extern "system" fn cmd_set_vertex_input_ext(
                            _command_buffer: CommandBuffer,
                            _vertex_binding_description_count: u32,
                            _p_vertex_binding_descriptions : * const VertexInputBindingDescription2EXT < '_ >,
                            _vertex_attribute_description_count: u32,
                            _p_vertex_attribute_descriptions : * const VertexInputAttributeDescription2EXT < '_ >,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_vertex_input_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetVertexInputEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_vertex_input_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_patch_control_points_ext: unsafe {
                        unsafe extern "system" fn cmd_set_patch_control_points_ext(
                            _command_buffer: CommandBuffer,
                            _patch_control_points: u32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_patch_control_points_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPatchControlPointsEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_patch_control_points_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_rasterizer_discard_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_rasterizer_discard_enable_ext(
                            _command_buffer: CommandBuffer,
                            _rasterizer_discard_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_rasterizer_discard_enable_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetRasterizerDiscardEnableEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_rasterizer_discard_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_depth_bias_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_depth_bias_enable_ext(
                            _command_buffer: CommandBuffer,
                            _depth_bias_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_depth_bias_enable_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthBiasEnableEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_depth_bias_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_logic_op_ext: unsafe {
                        unsafe extern "system" fn cmd_set_logic_op_ext(
                            _command_buffer: CommandBuffer,
                            _logic_op: LogicOp,
                        ) {
                            panic!(concat!("Unable to load ", stringify!(cmd_set_logic_op_ext)))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLogicOpEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_logic_op_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_primitive_restart_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_primitive_restart_enable_ext(
                            _command_buffer: CommandBuffer,
                            _primitive_restart_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_primitive_restart_enable_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetPrimitiveRestartEnableEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_primitive_restart_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_tessellation_domain_origin_ext: unsafe {
                        unsafe extern "system" fn cmd_set_tessellation_domain_origin_ext(
                            _command_buffer: CommandBuffer,
                            _domain_origin: TessellationDomainOrigin,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_tessellation_domain_origin_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetTessellationDomainOriginEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_tessellation_domain_origin_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_depth_clamp_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_depth_clamp_enable_ext(
                            _command_buffer: CommandBuffer,
                            _depth_clamp_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_depth_clamp_enable_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthClampEnableEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_depth_clamp_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_polygon_mode_ext: unsafe {
                        unsafe extern "system" fn cmd_set_polygon_mode_ext(
                            _command_buffer: CommandBuffer,
                            _polygon_mode: PolygonMode,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_polygon_mode_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPolygonModeEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_polygon_mode_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_rasterization_samples_ext: unsafe {
                        unsafe extern "system" fn cmd_set_rasterization_samples_ext(
                            _command_buffer: CommandBuffer,
                            _rasterization_samples: SampleCountFlags,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_rasterization_samples_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetRasterizationSamplesEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_rasterization_samples_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_sample_mask_ext: unsafe {
                        unsafe extern "system" fn cmd_set_sample_mask_ext(
                            _command_buffer: CommandBuffer,
                            _samples: SampleCountFlags,
                            _p_sample_mask: *const SampleMask,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_sample_mask_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetSampleMaskEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_sample_mask_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_alpha_to_coverage_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_alpha_to_coverage_enable_ext(
                            _command_buffer: CommandBuffer,
                            _alpha_to_coverage_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_alpha_to_coverage_enable_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetAlphaToCoverageEnableEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_alpha_to_coverage_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_alpha_to_one_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_alpha_to_one_enable_ext(
                            _command_buffer: CommandBuffer,
                            _alpha_to_one_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_alpha_to_one_enable_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetAlphaToOneEnableEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_alpha_to_one_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_logic_op_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_logic_op_enable_ext(
                            _command_buffer: CommandBuffer,
                            _logic_op_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_logic_op_enable_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLogicOpEnableEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_logic_op_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_color_blend_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_color_blend_enable_ext(
                            _command_buffer: CommandBuffer,
                            _first_attachment: u32,
                            _attachment_count: u32,
                            _p_color_blend_enables: *const Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_color_blend_enable_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorBlendEnableEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_color_blend_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_color_blend_equation_ext: unsafe {
                        unsafe extern "system" fn cmd_set_color_blend_equation_ext(
                            _command_buffer: CommandBuffer,
                            _first_attachment: u32,
                            _attachment_count: u32,
                            _p_color_blend_equations: *const ColorBlendEquationEXT,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_color_blend_equation_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorBlendEquationEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_color_blend_equation_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_color_write_mask_ext: unsafe {
                        unsafe extern "system" fn cmd_set_color_write_mask_ext(
                            _command_buffer: CommandBuffer,
                            _first_attachment: u32,
                            _attachment_count: u32,
                            _p_color_write_masks: *const ColorComponentFlags,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_color_write_mask_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorWriteMaskEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_color_write_mask_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_rasterization_stream_ext: unsafe {
                        unsafe extern "system" fn cmd_set_rasterization_stream_ext(
                            _command_buffer: CommandBuffer,
                            _rasterization_stream: u32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_rasterization_stream_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetRasterizationStreamEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_rasterization_stream_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_conservative_rasterization_mode_ext: unsafe {
                        unsafe extern "system" fn cmd_set_conservative_rasterization_mode_ext(
                            _command_buffer: CommandBuffer,
                            _conservative_rasterization_mode: ConservativeRasterizationModeEXT,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_conservative_rasterization_mode_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetConservativeRasterizationModeEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_conservative_rasterization_mode_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_extra_primitive_overestimation_size_ext: unsafe {
                        unsafe extern "system" fn cmd_set_extra_primitive_overestimation_size_ext(
                            _command_buffer: CommandBuffer,
                            _extra_primitive_overestimation_size: f32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_extra_primitive_overestimation_size_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetExtraPrimitiveOverestimationSizeEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_extra_primitive_overestimation_size_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_depth_clip_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_depth_clip_enable_ext(
                            _command_buffer: CommandBuffer,
                            _depth_clip_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_depth_clip_enable_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthClipEnableEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_depth_clip_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_sample_locations_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_sample_locations_enable_ext(
                            _command_buffer: CommandBuffer,
                            _sample_locations_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_sample_locations_enable_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetSampleLocationsEnableEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_sample_locations_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_color_blend_advanced_ext: unsafe {
                        unsafe extern "system" fn cmd_set_color_blend_advanced_ext(
                            _command_buffer: CommandBuffer,
                            _first_attachment: u32,
                            _attachment_count: u32,
                            _p_color_blend_advanced: *const ColorBlendAdvancedEXT,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_color_blend_advanced_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorBlendAdvancedEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_color_blend_advanced_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_provoking_vertex_mode_ext: unsafe {
                        unsafe extern "system" fn cmd_set_provoking_vertex_mode_ext(
                            _command_buffer: CommandBuffer,
                            _provoking_vertex_mode: ProvokingVertexModeEXT,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_provoking_vertex_mode_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetProvokingVertexModeEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_provoking_vertex_mode_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_line_rasterization_mode_ext: unsafe {
                        unsafe extern "system" fn cmd_set_line_rasterization_mode_ext(
                            _command_buffer: CommandBuffer,
                            _line_rasterization_mode: LineRasterizationModeEXT,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_line_rasterization_mode_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetLineRasterizationModeEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_line_rasterization_mode_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_line_stipple_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_line_stipple_enable_ext(
                            _command_buffer: CommandBuffer,
                            _stippled_line_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_line_stipple_enable_ext)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLineStippleEnableEXT\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_line_stipple_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_depth_clip_negative_one_to_one_ext: unsafe {
                        unsafe extern "system" fn cmd_set_depth_clip_negative_one_to_one_ext(
                            _command_buffer: CommandBuffer,
                            _negative_one_to_one: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_depth_clip_negative_one_to_one_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetDepthClipNegativeOneToOneEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_depth_clip_negative_one_to_one_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_viewport_w_scaling_enable_nv: unsafe {
                        unsafe extern "system" fn cmd_set_viewport_w_scaling_enable_nv(
                            _command_buffer: CommandBuffer,
                            _viewport_w_scaling_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_viewport_w_scaling_enable_nv)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetViewportWScalingEnableNV\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_viewport_w_scaling_enable_nv
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_viewport_swizzle_nv: unsafe {
                        unsafe extern "system" fn cmd_set_viewport_swizzle_nv(
                            _command_buffer: CommandBuffer,
                            _first_viewport: u32,
                            _viewport_count: u32,
                            _p_viewport_swizzles: *const ViewportSwizzleNV,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_viewport_swizzle_nv)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSetViewportSwizzleNV\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_viewport_swizzle_nv
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_coverage_to_color_enable_nv: unsafe {
                        unsafe extern "system" fn cmd_set_coverage_to_color_enable_nv(
                            _command_buffer: CommandBuffer,
                            _coverage_to_color_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_coverage_to_color_enable_nv)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetCoverageToColorEnableNV\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_coverage_to_color_enable_nv
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_coverage_to_color_location_nv: unsafe {
                        unsafe extern "system" fn cmd_set_coverage_to_color_location_nv(
                            _command_buffer: CommandBuffer,
                            _coverage_to_color_location: u32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_coverage_to_color_location_nv)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetCoverageToColorLocationNV\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_coverage_to_color_location_nv
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_coverage_modulation_mode_nv: unsafe {
                        unsafe extern "system" fn cmd_set_coverage_modulation_mode_nv(
                            _command_buffer: CommandBuffer,
                            _coverage_modulation_mode: CoverageModulationModeNV,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_coverage_modulation_mode_nv)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetCoverageModulationModeNV\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_coverage_modulation_mode_nv
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_coverage_modulation_table_enable_nv: unsafe {
                        unsafe extern "system" fn cmd_set_coverage_modulation_table_enable_nv(
                            _command_buffer: CommandBuffer,
                            _coverage_modulation_table_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_coverage_modulation_table_enable_nv)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetCoverageModulationTableEnableNV\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_coverage_modulation_table_enable_nv
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_coverage_modulation_table_nv: unsafe {
                        unsafe extern "system" fn cmd_set_coverage_modulation_table_nv(
                            _command_buffer: CommandBuffer,
                            _coverage_modulation_table_count: u32,
                            _p_coverage_modulation_table: *const f32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_coverage_modulation_table_nv)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetCoverageModulationTableNV\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_coverage_modulation_table_nv
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_shading_rate_image_enable_nv: unsafe {
                        unsafe extern "system" fn cmd_set_shading_rate_image_enable_nv(
                            _command_buffer: CommandBuffer,
                            _shading_rate_image_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_shading_rate_image_enable_nv)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetShadingRateImageEnableNV\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_shading_rate_image_enable_nv
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_representative_fragment_test_enable_nv: unsafe {
                        unsafe extern "system" fn cmd_set_representative_fragment_test_enable_nv(
                            _command_buffer: CommandBuffer,
                            _representative_fragment_test_enable: Bool32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_representative_fragment_test_enable_nv)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetRepresentativeFragmentTestEnableNV\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_representative_fragment_test_enable_nv
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_coverage_reduction_mode_nv: unsafe {
                        unsafe extern "system" fn cmd_set_coverage_reduction_mode_nv(
                            _command_buffer: CommandBuffer,
                            _coverage_reduction_mode: CoverageReductionModeNV,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_coverage_reduction_mode_nv)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetCoverageReductionModeNV\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_coverage_reduction_mode_nv
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_EXT_mutable_descriptor_type"]
    pub mod mutable_descriptor_type {
        use super::super::*;
        pub use {
            crate::vk::EXT_MUTABLE_DESCRIPTOR_TYPE_NAME as NAME,
            crate::vk::EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_layer_settings"]
    pub mod layer_settings {
        use super::super::*;
        pub use {
            crate::vk::EXT_LAYER_SETTINGS_NAME as NAME,
            crate::vk::EXT_LAYER_SETTINGS_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_pipeline_library_group_handles"]
    pub mod pipeline_library_group_handles {
        use super::super::*;
        pub use {
            crate::vk::EXT_PIPELINE_LIBRARY_GROUP_HANDLES_NAME as NAME,
            crate::vk::EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_dynamic_rendering_unused_attachments"]
    pub mod dynamic_rendering_unused_attachments {
        use super::super::*;
        pub use {
            crate::vk::EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_NAME as NAME,
            crate::vk::EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_EXT_attachment_feedback_loop_dynamic_state"]
    pub mod attachment_feedback_loop_dynamic_state {
        use super::super::*;
        pub use {
            crate::vk::EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_NAME as NAME,
            crate::vk::EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_EXT_attachment_feedback_loop_dynamic_state device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_EXT_attachment_feedback_loop_dynamic_state device-level function pointers"]
        pub struct DeviceFn {
            pub cmd_set_attachment_feedback_loop_enable_ext:
                PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    cmd_set_attachment_feedback_loop_enable_ext: unsafe {
                        unsafe extern "system" fn cmd_set_attachment_feedback_loop_enable_ext(
                            _command_buffer: CommandBuffer,
                            _aspect_mask: ImageAspectFlags,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_attachment_feedback_loop_enable_ext)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetAttachmentFeedbackLoopEnableEXT\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_attachment_feedback_loop_enable_ext
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
}
#[doc = "Extensions tagged FUCHSIA"]
pub mod fuchsia {
    #[doc = "VK_FUCHSIA_imagepipe_surface"]
    pub mod imagepipe_surface {
        use super::super::*;
        pub use {
            crate::vk::FUCHSIA_IMAGEPIPE_SURFACE_NAME as NAME,
            crate::vk::FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_FUCHSIA_imagepipe_surface instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_FUCHSIA_imagepipe_surface instance-level function pointers"]
        pub struct InstanceFn {
            pub create_image_pipe_surface_fuchsia: PFN_vkCreateImagePipeSurfaceFUCHSIA,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    create_image_pipe_surface_fuchsia: unsafe {
                        unsafe extern "system" fn create_image_pipe_surface_fuchsia(
                            _instance: crate::vk::Instance,
                            _p_create_info: *const ImagePipeSurfaceCreateInfoFUCHSIA<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_surface: *mut SurfaceKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(create_image_pipe_surface_fuchsia)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCreateImagePipeSurfaceFUCHSIA\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            create_image_pipe_surface_fuchsia
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_FUCHSIA_external_memory"]
    pub mod external_memory {
        use super::super::*;
        pub use {
            crate::vk::FUCHSIA_EXTERNAL_MEMORY_NAME as NAME,
            crate::vk::FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_FUCHSIA_external_memory device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_FUCHSIA_external_memory device-level function pointers"]
        pub struct DeviceFn {
            pub get_memory_zircon_handle_fuchsia: PFN_vkGetMemoryZirconHandleFUCHSIA,
            pub get_memory_zircon_handle_properties_fuchsia:
                PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_memory_zircon_handle_fuchsia: unsafe {
                        unsafe extern "system" fn get_memory_zircon_handle_fuchsia(
                            _device: crate::vk::Device,
                            _p_get_zircon_handle_info: *const MemoryGetZirconHandleInfoFUCHSIA<'_>,
                            _p_zircon_handle: *mut zx_handle_t,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_memory_zircon_handle_fuchsia)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetMemoryZirconHandleFUCHSIA\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_memory_zircon_handle_fuchsia
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_memory_zircon_handle_properties_fuchsia: unsafe {
                        unsafe extern "system" fn get_memory_zircon_handle_properties_fuchsia(
                            _device: crate::vk::Device,
                            _handle_type: ExternalMemoryHandleTypeFlags,
                            _zircon_handle: zx_handle_t,
                            _p_memory_zircon_handle_properties : * mut MemoryZirconHandlePropertiesFUCHSIA < '_ >,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_memory_zircon_handle_properties_fuchsia)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetMemoryZirconHandlePropertiesFUCHSIA\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_memory_zircon_handle_properties_fuchsia
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_FUCHSIA_external_semaphore"]
    pub mod external_semaphore {
        use super::super::*;
        pub use {
            crate::vk::FUCHSIA_EXTERNAL_SEMAPHORE_NAME as NAME,
            crate::vk::FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_FUCHSIA_external_semaphore device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_FUCHSIA_external_semaphore device-level function pointers"]
        pub struct DeviceFn {
            pub import_semaphore_zircon_handle_fuchsia: PFN_vkImportSemaphoreZirconHandleFUCHSIA,
            pub get_semaphore_zircon_handle_fuchsia: PFN_vkGetSemaphoreZirconHandleFUCHSIA,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    import_semaphore_zircon_handle_fuchsia: unsafe {
                        unsafe extern "system" fn import_semaphore_zircon_handle_fuchsia(
                            _device: crate::vk::Device,
                            _p_import_semaphore_zircon_handle_info : * const ImportSemaphoreZirconHandleInfoFUCHSIA < '_ >,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(import_semaphore_zircon_handle_fuchsia)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkImportSemaphoreZirconHandleFUCHSIA\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            import_semaphore_zircon_handle_fuchsia
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_semaphore_zircon_handle_fuchsia: unsafe {
                        unsafe extern "system" fn get_semaphore_zircon_handle_fuchsia(
                            _device: crate::vk::Device,
                            _p_get_zircon_handle_info: *const SemaphoreGetZirconHandleInfoFUCHSIA<
                                '_,
                            >,
                            _p_zircon_handle: *mut zx_handle_t,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_semaphore_zircon_handle_fuchsia)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetSemaphoreZirconHandleFUCHSIA\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_semaphore_zircon_handle_fuchsia
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_FUCHSIA_buffer_collection"]
    pub mod buffer_collection {
        use super::super::*;
        pub use {
            crate::vk::FUCHSIA_BUFFER_COLLECTION_NAME as NAME,
            crate::vk::FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_FUCHSIA_buffer_collection device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_FUCHSIA_buffer_collection device-level function pointers"]
        pub struct DeviceFn {
            pub create_buffer_collection_fuchsia: PFN_vkCreateBufferCollectionFUCHSIA,
            pub set_buffer_collection_image_constraints_fuchsia:
                PFN_vkSetBufferCollectionImageConstraintsFUCHSIA,
            pub set_buffer_collection_buffer_constraints_fuchsia:
                PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA,
            pub destroy_buffer_collection_fuchsia: PFN_vkDestroyBufferCollectionFUCHSIA,
            pub get_buffer_collection_properties_fuchsia:
                PFN_vkGetBufferCollectionPropertiesFUCHSIA,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    create_buffer_collection_fuchsia: unsafe {
                        unsafe extern "system" fn create_buffer_collection_fuchsia(
                            _device: crate::vk::Device,
                            _p_create_info: *const BufferCollectionCreateInfoFUCHSIA<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_collection: *mut BufferCollectionFUCHSIA,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(create_buffer_collection_fuchsia)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCreateBufferCollectionFUCHSIA\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            create_buffer_collection_fuchsia
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    set_buffer_collection_image_constraints_fuchsia: unsafe {
                        unsafe extern "system" fn set_buffer_collection_image_constraints_fuchsia(
                            _device: crate::vk::Device,
                            _collection: BufferCollectionFUCHSIA,
                            _p_image_constraints_info: *const ImageConstraintsInfoFUCHSIA<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(set_buffer_collection_image_constraints_fuchsia)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkSetBufferCollectionImageConstraintsFUCHSIA\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            set_buffer_collection_image_constraints_fuchsia
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    set_buffer_collection_buffer_constraints_fuchsia: unsafe {
                        unsafe extern "system" fn set_buffer_collection_buffer_constraints_fuchsia(
                            _device: crate::vk::Device,
                            _collection: BufferCollectionFUCHSIA,
                            _p_buffer_constraints_info: *const BufferConstraintsInfoFUCHSIA<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(set_buffer_collection_buffer_constraints_fuchsia)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkSetBufferCollectionBufferConstraintsFUCHSIA\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            set_buffer_collection_buffer_constraints_fuchsia
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    destroy_buffer_collection_fuchsia: unsafe {
                        unsafe extern "system" fn destroy_buffer_collection_fuchsia(
                            _device: crate::vk::Device,
                            _collection: BufferCollectionFUCHSIA,
                            _p_allocator: *const AllocationCallbacks<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(destroy_buffer_collection_fuchsia)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkDestroyBufferCollectionFUCHSIA\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            destroy_buffer_collection_fuchsia
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_buffer_collection_properties_fuchsia: unsafe {
                        unsafe extern "system" fn get_buffer_collection_properties_fuchsia(
                            _device: crate::vk::Device,
                            _collection: BufferCollectionFUCHSIA,
                            _p_properties: *mut BufferCollectionPropertiesFUCHSIA<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_buffer_collection_properties_fuchsia)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetBufferCollectionPropertiesFUCHSIA\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_buffer_collection_properties_fuchsia
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
}
#[doc = "Extensions tagged GGP"]
pub mod ggp {
    #[doc = "VK_GGP_stream_descriptor_surface"]
    pub mod stream_descriptor_surface {
        use super::super::*;
        pub use {
            crate::vk::GGP_STREAM_DESCRIPTOR_SURFACE_NAME as NAME,
            crate::vk::GGP_STREAM_DESCRIPTOR_SURFACE_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_GGP_stream_descriptor_surface instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_GGP_stream_descriptor_surface instance-level function pointers"]
        pub struct InstanceFn {
            pub create_stream_descriptor_surface_ggp: PFN_vkCreateStreamDescriptorSurfaceGGP,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    create_stream_descriptor_surface_ggp: unsafe {
                        unsafe extern "system" fn create_stream_descriptor_surface_ggp(
                            _instance: crate::vk::Instance,
                            _p_create_info: *const StreamDescriptorSurfaceCreateInfoGGP<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_surface: *mut SurfaceKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(create_stream_descriptor_surface_ggp)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCreateStreamDescriptorSurfaceGGP\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            create_stream_descriptor_surface_ggp
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_GGP_frame_token"]
    pub mod frame_token {
        use super::super::*;
        pub use {
            crate::vk::GGP_FRAME_TOKEN_NAME as NAME,
            crate::vk::GGP_FRAME_TOKEN_SPEC_VERSION as SPEC_VERSION,
        };
    }
}
#[doc = "Extensions tagged GOOGLE"]
pub mod google {
    #[doc = "VK_GOOGLE_display_timing"]
    pub mod display_timing {
        use super::super::*;
        pub use {
            crate::vk::GOOGLE_DISPLAY_TIMING_NAME as NAME,
            crate::vk::GOOGLE_DISPLAY_TIMING_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_GOOGLE_display_timing device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_GOOGLE_display_timing device-level function pointers"]
        pub struct DeviceFn {
            pub get_refresh_cycle_duration_google: PFN_vkGetRefreshCycleDurationGOOGLE,
            pub get_past_presentation_timing_google: PFN_vkGetPastPresentationTimingGOOGLE,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_refresh_cycle_duration_google: unsafe {
                        unsafe extern "system" fn get_refresh_cycle_duration_google(
                            _device: crate::vk::Device,
                            _swapchain: SwapchainKHR,
                            _p_display_timing_properties: *mut RefreshCycleDurationGOOGLE,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_refresh_cycle_duration_google)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetRefreshCycleDurationGOOGLE\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_refresh_cycle_duration_google
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_past_presentation_timing_google: unsafe {
                        unsafe extern "system" fn get_past_presentation_timing_google(
                            _device: crate::vk::Device,
                            _swapchain: SwapchainKHR,
                            _p_presentation_timing_count: *mut u32,
                            _p_presentation_timings: *mut PastPresentationTimingGOOGLE,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_past_presentation_timing_google)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPastPresentationTimingGOOGLE\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_past_presentation_timing_google
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_GOOGLE_hlsl_functionality1"]
    pub mod hlsl_functionality1 {
        use super::super::*;
        pub use {
            crate::vk::GOOGLE_HLSL_FUNCTIONALITY1_NAME as NAME,
            crate::vk::GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_GOOGLE_decorate_string"]
    pub mod decorate_string {
        use super::super::*;
        pub use {
            crate::vk::GOOGLE_DECORATE_STRING_NAME as NAME,
            crate::vk::GOOGLE_DECORATE_STRING_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_GOOGLE_user_type"]
    pub mod user_type {
        use super::super::*;
        pub use {
            crate::vk::GOOGLE_USER_TYPE_NAME as NAME,
            crate::vk::GOOGLE_USER_TYPE_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_GOOGLE_surfaceless_query"]
    pub mod surfaceless_query {
        use super::super::*;
        pub use {
            crate::vk::GOOGLE_SURFACELESS_QUERY_NAME as NAME,
            crate::vk::GOOGLE_SURFACELESS_QUERY_SPEC_VERSION as SPEC_VERSION,
        };
    }
}
#[doc = "Extensions tagged HUAWEI"]
pub mod huawei {
    #[doc = "VK_HUAWEI_subpass_shading"]
    pub mod subpass_shading {
        use super::super::*;
        pub use {
            crate::vk::HUAWEI_SUBPASS_SHADING_NAME as NAME,
            crate::vk::HUAWEI_SUBPASS_SHADING_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_HUAWEI_subpass_shading device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_HUAWEI_subpass_shading device-level function pointers"]
        pub struct DeviceFn {
            pub get_device_subpass_shading_max_workgroup_size_huawei:
                PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI,
            pub cmd_subpass_shading_huawei: PFN_vkCmdSubpassShadingHUAWEI,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_device_subpass_shading_max_workgroup_size_huawei: unsafe {
                        unsafe extern "system" fn get_device_subpass_shading_max_workgroup_size_huawei(
                            _device: crate::vk::Device,
                            _renderpass: RenderPass,
                            _p_max_workgroup_size: *mut Extent2D,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_device_subpass_shading_max_workgroup_size_huawei)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_device_subpass_shading_max_workgroup_size_huawei
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_subpass_shading_huawei: unsafe {
                        unsafe extern "system" fn cmd_subpass_shading_huawei(
                            _command_buffer: CommandBuffer,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_subpass_shading_huawei)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdSubpassShadingHUAWEI\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_subpass_shading_huawei
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_HUAWEI_invocation_mask"]
    pub mod invocation_mask {
        use super::super::*;
        pub use {
            crate::vk::HUAWEI_INVOCATION_MASK_NAME as NAME,
            crate::vk::HUAWEI_INVOCATION_MASK_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_HUAWEI_invocation_mask device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_HUAWEI_invocation_mask device-level function pointers"]
        pub struct DeviceFn {
            pub cmd_bind_invocation_mask_huawei: PFN_vkCmdBindInvocationMaskHUAWEI,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    cmd_bind_invocation_mask_huawei: unsafe {
                        unsafe extern "system" fn cmd_bind_invocation_mask_huawei(
                            _command_buffer: CommandBuffer,
                            _image_view: ImageView,
                            _image_layout: ImageLayout,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_bind_invocation_mask_huawei)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdBindInvocationMaskHUAWEI\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_bind_invocation_mask_huawei
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_HUAWEI_cluster_culling_shader"]
    pub mod cluster_culling_shader {
        use super::super::*;
        pub use {
            crate::vk::HUAWEI_CLUSTER_CULLING_SHADER_NAME as NAME,
            crate::vk::HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_HUAWEI_cluster_culling_shader device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_HUAWEI_cluster_culling_shader device-level function pointers"]
        pub struct DeviceFn {
            pub cmd_draw_cluster_huawei: PFN_vkCmdDrawClusterHUAWEI,
            pub cmd_draw_cluster_indirect_huawei: PFN_vkCmdDrawClusterIndirectHUAWEI,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    cmd_draw_cluster_huawei: unsafe {
                        unsafe extern "system" fn cmd_draw_cluster_huawei(
                            _command_buffer: CommandBuffer,
                            _group_count_x: u32,
                            _group_count_y: u32,
                            _group_count_z: u32,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_draw_cluster_huawei)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawClusterHUAWEI\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_draw_cluster_huawei
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_draw_cluster_indirect_huawei: unsafe {
                        unsafe extern "system" fn cmd_draw_cluster_indirect_huawei(
                            _command_buffer: CommandBuffer,
                            _buffer: Buffer,
                            _offset: DeviceSize,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_draw_cluster_indirect_huawei)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdDrawClusterIndirectHUAWEI\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_draw_cluster_indirect_huawei
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
}
#[doc = "Extensions tagged IMG"]
pub mod img {
    #[doc = "VK_IMG_filter_cubic"]
    pub mod filter_cubic {
        use super::super::*;
        pub use {
            crate::vk::IMG_FILTER_CUBIC_NAME as NAME,
            crate::vk::IMG_FILTER_CUBIC_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_IMG_format_pvrtc"]
    pub mod format_pvrtc {
        use super::super::*;
        pub use {
            crate::vk::IMG_FORMAT_PVRTC_NAME as NAME,
            crate::vk::IMG_FORMAT_PVRTC_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_IMG_relaxed_line_rasterization"]
    pub mod relaxed_line_rasterization {
        use super::super::*;
        pub use {
            crate::vk::IMG_RELAXED_LINE_RASTERIZATION_NAME as NAME,
            crate::vk::IMG_RELAXED_LINE_RASTERIZATION_SPEC_VERSION as SPEC_VERSION,
        };
    }
}
#[doc = "Extensions tagged INTEL"]
pub mod intel {
    #[doc = "VK_INTEL_shader_integer_functions2"]
    pub mod shader_integer_functions2 {
        use super::super::*;
        pub use {
            crate::vk::INTEL_SHADER_INTEGER_FUNCTIONS2_NAME as NAME,
            crate::vk::INTEL_SHADER_INTEGER_FUNCTIONS2_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_INTEL_performance_query"]
    pub mod performance_query {
        use super::super::*;
        pub use {
            crate::vk::INTEL_PERFORMANCE_QUERY_NAME as NAME,
            crate::vk::INTEL_PERFORMANCE_QUERY_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_INTEL_performance_query device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_INTEL_performance_query device-level function pointers"]
        pub struct DeviceFn {
            pub initialize_performance_api_intel: PFN_vkInitializePerformanceApiINTEL,
            pub uninitialize_performance_api_intel: PFN_vkUninitializePerformanceApiINTEL,
            pub cmd_set_performance_marker_intel: PFN_vkCmdSetPerformanceMarkerINTEL,
            pub cmd_set_performance_stream_marker_intel: PFN_vkCmdSetPerformanceStreamMarkerINTEL,
            pub cmd_set_performance_override_intel: PFN_vkCmdSetPerformanceOverrideINTEL,
            pub acquire_performance_configuration_intel: PFN_vkAcquirePerformanceConfigurationINTEL,
            pub release_performance_configuration_intel: PFN_vkReleasePerformanceConfigurationINTEL,
            pub queue_set_performance_configuration_intel:
                PFN_vkQueueSetPerformanceConfigurationINTEL,
            pub get_performance_parameter_intel: PFN_vkGetPerformanceParameterINTEL,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    initialize_performance_api_intel: unsafe {
                        unsafe extern "system" fn initialize_performance_api_intel(
                            _device: crate::vk::Device,
                            _p_initialize_info: *const InitializePerformanceApiInfoINTEL<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(initialize_performance_api_intel)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkInitializePerformanceApiINTEL\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            initialize_performance_api_intel
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    uninitialize_performance_api_intel: unsafe {
                        unsafe extern "system" fn uninitialize_performance_api_intel(
                            _device: crate::vk::Device,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(uninitialize_performance_api_intel)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkUninitializePerformanceApiINTEL\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            uninitialize_performance_api_intel
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_performance_marker_intel: unsafe {
                        unsafe extern "system" fn cmd_set_performance_marker_intel(
                            _command_buffer: CommandBuffer,
                            _p_marker_info: *const PerformanceMarkerInfoINTEL<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_performance_marker_intel)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetPerformanceMarkerINTEL\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_performance_marker_intel
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_performance_stream_marker_intel: unsafe {
                        unsafe extern "system" fn cmd_set_performance_stream_marker_intel(
                            _command_buffer: CommandBuffer,
                            _p_marker_info: *const PerformanceStreamMarkerInfoINTEL<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_performance_stream_marker_intel)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetPerformanceStreamMarkerINTEL\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_performance_stream_marker_intel
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_performance_override_intel: unsafe {
                        unsafe extern "system" fn cmd_set_performance_override_intel(
                            _command_buffer: CommandBuffer,
                            _p_override_info: *const PerformanceOverrideInfoINTEL<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_set_performance_override_intel)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCmdSetPerformanceOverrideINTEL\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_set_performance_override_intel
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    acquire_performance_configuration_intel: unsafe {
                        unsafe extern "system" fn acquire_performance_configuration_intel(
                            _device: crate::vk::Device,
                            _p_acquire_info: *const PerformanceConfigurationAcquireInfoINTEL<'_>,
                            _p_configuration: *mut PerformanceConfigurationINTEL,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(acquire_performance_configuration_intel)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkAcquirePerformanceConfigurationINTEL\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            acquire_performance_configuration_intel
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    release_performance_configuration_intel: unsafe {
                        unsafe extern "system" fn release_performance_configuration_intel(
                            _device: crate::vk::Device,
                            _configuration: PerformanceConfigurationINTEL,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(release_performance_configuration_intel)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkReleasePerformanceConfigurationINTEL\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            release_performance_configuration_intel
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    queue_set_performance_configuration_intel: unsafe {
                        unsafe extern "system" fn queue_set_performance_configuration_intel(
                            _queue: Queue,
                            _configuration: PerformanceConfigurationINTEL,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(queue_set_performance_configuration_intel)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkQueueSetPerformanceConfigurationINTEL\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            queue_set_performance_configuration_intel
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_performance_parameter_intel: unsafe {
                        unsafe extern "system" fn get_performance_parameter_intel(
                            _device: crate::vk::Device,
                            _parameter: PerformanceParameterTypeINTEL,
                            _p_value: *mut PerformanceValueINTEL,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_performance_parameter_intel)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPerformanceParameterINTEL\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_performance_parameter_intel
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
}
#[doc = "Extensions tagged KHR"]
pub mod khr {
    #[doc = "VK_KHR_surface"]
    pub mod surface {
        use super::super::*;
        pub use {
            crate::vk::KHR_SURFACE_NAME as NAME,
            crate::vk::KHR_SURFACE_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_KHR_surface instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_KHR_surface instance-level function pointers"]
        pub struct InstanceFn {
            pub destroy_surface_khr: PFN_vkDestroySurfaceKHR,
            pub get_physical_device_surface_support_khr: PFN_vkGetPhysicalDeviceSurfaceSupportKHR,
            pub get_physical_device_surface_capabilities_khr:
                PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR,
            pub get_physical_device_surface_formats_khr: PFN_vkGetPhysicalDeviceSurfaceFormatsKHR,
            pub get_physical_device_surface_present_modes_khr:
                PFN_vkGetPhysicalDeviceSurfacePresentModesKHR,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    destroy_surface_khr: unsafe {
                        unsafe extern "system" fn destroy_surface_khr(
                            _instance: crate::vk::Instance,
                            _surface: SurfaceKHR,
                            _p_allocator: *const AllocationCallbacks<'_>,
                        ) {
                            panic!(concat!("Unable to load ", stringify!(destroy_surface_khr)))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroySurfaceKHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            destroy_surface_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_physical_device_surface_support_khr: unsafe {
                        unsafe extern "system" fn get_physical_device_surface_support_khr(
                            _physical_device: PhysicalDevice,
                            _queue_family_index: u32,
                            _surface: SurfaceKHR,
                            _p_supported: *mut Bool32,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_surface_support_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceSurfaceSupportKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_surface_support_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_physical_device_surface_capabilities_khr: unsafe {
                        unsafe extern "system" fn get_physical_device_surface_capabilities_khr(
                            _physical_device: PhysicalDevice,
                            _surface: SurfaceKHR,
                            _p_surface_capabilities: *mut SurfaceCapabilitiesKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_surface_capabilities_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceSurfaceCapabilitiesKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_surface_capabilities_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_physical_device_surface_formats_khr: unsafe {
                        unsafe extern "system" fn get_physical_device_surface_formats_khr(
                            _physical_device: PhysicalDevice,
                            _surface: SurfaceKHR,
                            _p_surface_format_count: *mut u32,
                            _p_surface_formats: *mut SurfaceFormatKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_surface_formats_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceSurfaceFormatsKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_surface_formats_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_physical_device_surface_present_modes_khr: unsafe {
                        unsafe extern "system" fn get_physical_device_surface_present_modes_khr(
                            _physical_device: PhysicalDevice,
                            _surface: SurfaceKHR,
                            _p_present_mode_count: *mut u32,
                            _p_present_modes: *mut PresentModeKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_surface_present_modes_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceSurfacePresentModesKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_surface_present_modes_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_KHR_swapchain"]
    pub mod swapchain {
        use super::super::*;
        pub use {
            crate::vk::KHR_SWAPCHAIN_NAME as NAME,
            crate::vk::KHR_SWAPCHAIN_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_KHR_swapchain instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_KHR_swapchain instance-level function pointers"]
        pub struct InstanceFn {
            pub get_physical_device_present_rectangles_khr:
                PFN_vkGetPhysicalDevicePresentRectanglesKHR,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_physical_device_present_rectangles_khr: unsafe {
                        unsafe extern "system" fn get_physical_device_present_rectangles_khr(
                            _physical_device: PhysicalDevice,
                            _surface: SurfaceKHR,
                            _p_rect_count: *mut u32,
                            _p_rects: *mut Rect2D,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_present_rectangles_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDevicePresentRectanglesKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_present_rectangles_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
        #[doc = "VK_KHR_swapchain device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_KHR_swapchain device-level function pointers"]
        pub struct DeviceFn {
            pub create_swapchain_khr: PFN_vkCreateSwapchainKHR,
            pub destroy_swapchain_khr: PFN_vkDestroySwapchainKHR,
            pub get_swapchain_images_khr: PFN_vkGetSwapchainImagesKHR,
            pub acquire_next_image_khr: PFN_vkAcquireNextImageKHR,
            pub queue_present_khr: PFN_vkQueuePresentKHR,
            pub get_device_group_present_capabilities_khr:
                PFN_vkGetDeviceGroupPresentCapabilitiesKHR,
            pub get_device_group_surface_present_modes_khr:
                PFN_vkGetDeviceGroupSurfacePresentModesKHR,
            pub acquire_next_image2_khr: PFN_vkAcquireNextImage2KHR,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    create_swapchain_khr: unsafe {
                        unsafe extern "system" fn create_swapchain_khr(
                            _device: crate::vk::Device,
                            _p_create_info: *const SwapchainCreateInfoKHR<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_swapchain: *mut SwapchainKHR,
                        ) -> Result {
                            panic!(concat!("Unable to load ", stringify!(create_swapchain_khr)))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateSwapchainKHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            create_swapchain_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    destroy_swapchain_khr: unsafe {
                        unsafe extern "system" fn destroy_swapchain_khr(
                            _device: crate::vk::Device,
                            _swapchain: SwapchainKHR,
                            _p_allocator: *const AllocationCallbacks<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(destroy_swapchain_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroySwapchainKHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            destroy_swapchain_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_swapchain_images_khr: unsafe {
                        unsafe extern "system" fn get_swapchain_images_khr(
                            _device: crate::vk::Device,
                            _swapchain: SwapchainKHR,
                            _p_swapchain_image_count: *mut u32,
                            _p_swapchain_images: *mut Image,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_swapchain_images_khr)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkGetSwapchainImagesKHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            get_swapchain_images_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    acquire_next_image_khr: unsafe {
                        unsafe extern "system" fn acquire_next_image_khr(
                            _device: crate::vk::Device,
                            _swapchain: SwapchainKHR,
                            _timeout: u64,
                            _semaphore: Semaphore,
                            _fence: Fence,
                            _p_image_index: *mut u32,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(acquire_next_image_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkAcquireNextImageKHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            acquire_next_image_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    queue_present_khr: unsafe {
                        unsafe extern "system" fn queue_present_khr(
                            _queue: Queue,
                            _p_present_info: *const PresentInfoKHR<'_>,
                        ) -> Result {
                            panic!(concat!("Unable to load ", stringify!(queue_present_khr)))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkQueuePresentKHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            queue_present_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_device_group_present_capabilities_khr: unsafe {
                        unsafe extern "system" fn get_device_group_present_capabilities_khr(
                            _device: crate::vk::Device,
                            _p_device_group_present_capabilities : * mut DeviceGroupPresentCapabilitiesKHR < '_ >,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_device_group_present_capabilities_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetDeviceGroupPresentCapabilitiesKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_device_group_present_capabilities_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_device_group_surface_present_modes_khr: unsafe {
                        unsafe extern "system" fn get_device_group_surface_present_modes_khr(
                            _device: crate::vk::Device,
                            _surface: SurfaceKHR,
                            _p_modes: *mut DeviceGroupPresentModeFlagsKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_device_group_surface_present_modes_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetDeviceGroupSurfacePresentModesKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_device_group_surface_present_modes_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    acquire_next_image2_khr: unsafe {
                        unsafe extern "system" fn acquire_next_image2_khr(
                            _device: crate::vk::Device,
                            _p_acquire_info: *const AcquireNextImageInfoKHR<'_>,
                            _p_image_index: *mut u32,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(acquire_next_image2_khr)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkAcquireNextImage2KHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            acquire_next_image2_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_KHR_display"]
    pub mod display {
        use super::super::*;
        pub use {
            crate::vk::KHR_DISPLAY_NAME as NAME,
            crate::vk::KHR_DISPLAY_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_KHR_display instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_KHR_display instance-level function pointers"]
        pub struct InstanceFn {
            pub get_physical_device_display_properties_khr:
                PFN_vkGetPhysicalDeviceDisplayPropertiesKHR,
            pub get_physical_device_display_plane_properties_khr:
                PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR,
            pub get_display_plane_supported_displays_khr: PFN_vkGetDisplayPlaneSupportedDisplaysKHR,
            pub get_display_mode_properties_khr: PFN_vkGetDisplayModePropertiesKHR,
            pub create_display_mode_khr: PFN_vkCreateDisplayModeKHR,
            pub get_display_plane_capabilities_khr: PFN_vkGetDisplayPlaneCapabilitiesKHR,
            pub create_display_plane_surface_khr: PFN_vkCreateDisplayPlaneSurfaceKHR,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_physical_device_display_properties_khr: unsafe {
                        unsafe extern "system" fn get_physical_device_display_properties_khr(
                            _physical_device: PhysicalDevice,
                            _p_property_count: *mut u32,
                            _p_properties: *mut DisplayPropertiesKHR<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_display_properties_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceDisplayPropertiesKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_display_properties_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_physical_device_display_plane_properties_khr: unsafe {
                        unsafe extern "system" fn get_physical_device_display_plane_properties_khr(
                            _physical_device: PhysicalDevice,
                            _p_property_count: *mut u32,
                            _p_properties: *mut DisplayPlanePropertiesKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_display_plane_properties_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceDisplayPlanePropertiesKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_display_plane_properties_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_display_plane_supported_displays_khr: unsafe {
                        unsafe extern "system" fn get_display_plane_supported_displays_khr(
                            _physical_device: PhysicalDevice,
                            _plane_index: u32,
                            _p_display_count: *mut u32,
                            _p_displays: *mut DisplayKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_display_plane_supported_displays_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetDisplayPlaneSupportedDisplaysKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_display_plane_supported_displays_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_display_mode_properties_khr: unsafe {
                        unsafe extern "system" fn get_display_mode_properties_khr(
                            _physical_device: PhysicalDevice,
                            _display: DisplayKHR,
                            _p_property_count: *mut u32,
                            _p_properties: *mut DisplayModePropertiesKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_display_mode_properties_khr)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkGetDisplayModePropertiesKHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            get_display_mode_properties_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    create_display_mode_khr: unsafe {
                        unsafe extern "system" fn create_display_mode_khr(
                            _physical_device: PhysicalDevice,
                            _display: DisplayKHR,
                            _p_create_info: *const DisplayModeCreateInfoKHR<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_mode: *mut DisplayModeKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(create_display_mode_khr)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCreateDisplayModeKHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            create_display_mode_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_display_plane_capabilities_khr: unsafe {
                        unsafe extern "system" fn get_display_plane_capabilities_khr(
                            _physical_device: PhysicalDevice,
                            _mode: DisplayModeKHR,
                            _plane_index: u32,
                            _p_capabilities: *mut DisplayPlaneCapabilitiesKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_display_plane_capabilities_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetDisplayPlaneCapabilitiesKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_display_plane_capabilities_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    create_display_plane_surface_khr: unsafe {
                        unsafe extern "system" fn create_display_plane_surface_khr(
                            _instance: crate::vk::Instance,
                            _p_create_info: *const DisplaySurfaceCreateInfoKHR<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_surface: *mut SurfaceKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(create_display_plane_surface_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCreateDisplayPlaneSurfaceKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            create_display_plane_surface_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_KHR_display_swapchain"]
    pub mod display_swapchain {
        use super::super::*;
        pub use {
            crate::vk::KHR_DISPLAY_SWAPCHAIN_NAME as NAME,
            crate::vk::KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_KHR_display_swapchain device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_KHR_display_swapchain device-level function pointers"]
        pub struct DeviceFn {
            pub create_shared_swapchains_khr: PFN_vkCreateSharedSwapchainsKHR,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    create_shared_swapchains_khr: unsafe {
                        unsafe extern "system" fn create_shared_swapchains_khr(
                            _device: crate::vk::Device,
                            _swapchain_count: u32,
                            _p_create_infos: *const SwapchainCreateInfoKHR<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_swapchains: *mut SwapchainKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(create_shared_swapchains_khr)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCreateSharedSwapchainsKHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            create_shared_swapchains_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_KHR_xlib_surface"]
    pub mod xlib_surface {
        use super::super::*;
        pub use {
            crate::vk::KHR_XLIB_SURFACE_NAME as NAME,
            crate::vk::KHR_XLIB_SURFACE_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_KHR_xlib_surface instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_KHR_xlib_surface instance-level function pointers"]
        pub struct InstanceFn {
            pub create_xlib_surface_khr: PFN_vkCreateXlibSurfaceKHR,
            pub get_physical_device_xlib_presentation_support_khr:
                PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    create_xlib_surface_khr: unsafe {
                        unsafe extern "system" fn create_xlib_surface_khr(
                            _instance: crate::vk::Instance,
                            _p_create_info: *const XlibSurfaceCreateInfoKHR<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_surface: *mut SurfaceKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(create_xlib_surface_khr)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCreateXlibSurfaceKHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            create_xlib_surface_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_physical_device_xlib_presentation_support_khr: unsafe {
                        unsafe extern "system" fn get_physical_device_xlib_presentation_support_khr(
                            _physical_device: PhysicalDevice,
                            _queue_family_index: u32,
                            _dpy: *mut Display,
                            _visual_id: VisualID,
                        ) -> Bool32 {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_xlib_presentation_support_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceXlibPresentationSupportKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_xlib_presentation_support_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_KHR_xcb_surface"]
    pub mod xcb_surface {
        use super::super::*;
        pub use {
            crate::vk::KHR_XCB_SURFACE_NAME as NAME,
            crate::vk::KHR_XCB_SURFACE_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_KHR_xcb_surface instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_KHR_xcb_surface instance-level function pointers"]
        pub struct InstanceFn {
            pub create_xcb_surface_khr: PFN_vkCreateXcbSurfaceKHR,
            pub get_physical_device_xcb_presentation_support_khr:
                PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    create_xcb_surface_khr: unsafe {
                        unsafe extern "system" fn create_xcb_surface_khr(
                            _instance: crate::vk::Instance,
                            _p_create_info: *const XcbSurfaceCreateInfoKHR<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_surface: *mut SurfaceKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(create_xcb_surface_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateXcbSurfaceKHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            create_xcb_surface_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_physical_device_xcb_presentation_support_khr: unsafe {
                        unsafe extern "system" fn get_physical_device_xcb_presentation_support_khr(
                            _physical_device: PhysicalDevice,
                            _queue_family_index: u32,
                            _connection: *mut xcb_connection_t,
                            _visual_id: xcb_visualid_t,
                        ) -> Bool32 {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_xcb_presentation_support_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceXcbPresentationSupportKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_xcb_presentation_support_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_KHR_wayland_surface"]
    pub mod wayland_surface {
        use super::super::*;
        pub use {
            crate::vk::KHR_WAYLAND_SURFACE_NAME as NAME,
            crate::vk::KHR_WAYLAND_SURFACE_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_KHR_wayland_surface instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_KHR_wayland_surface instance-level function pointers"]
        pub struct InstanceFn {
            pub create_wayland_surface_khr: PFN_vkCreateWaylandSurfaceKHR,
            pub get_physical_device_wayland_presentation_support_khr:
                PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    create_wayland_surface_khr: unsafe {
                        unsafe extern "system" fn create_wayland_surface_khr(
                            _instance: crate::vk::Instance,
                            _p_create_info: *const WaylandSurfaceCreateInfoKHR<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_surface: *mut SurfaceKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(create_wayland_surface_khr)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCreateWaylandSurfaceKHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            create_wayland_surface_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_physical_device_wayland_presentation_support_khr: unsafe {
                        unsafe extern "system" fn get_physical_device_wayland_presentation_support_khr(
                            _physical_device: PhysicalDevice,
                            _queue_family_index: u32,
                            _display: *mut wl_display,
                        ) -> Bool32 {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_wayland_presentation_support_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceWaylandPresentationSupportKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_wayland_presentation_support_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_KHR_android_surface"]
    pub mod android_surface {
        use super::super::*;
        pub use {
            crate::vk::KHR_ANDROID_SURFACE_NAME as NAME,
            crate::vk::KHR_ANDROID_SURFACE_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_KHR_android_surface instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_KHR_android_surface instance-level function pointers"]
        pub struct InstanceFn {
            pub create_android_surface_khr: PFN_vkCreateAndroidSurfaceKHR,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    create_android_surface_khr: unsafe {
                        unsafe extern "system" fn create_android_surface_khr(
                            _instance: crate::vk::Instance,
                            _p_create_info: *const AndroidSurfaceCreateInfoKHR<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_surface: *mut SurfaceKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(create_android_surface_khr)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCreateAndroidSurfaceKHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            create_android_surface_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_KHR_win32_surface"]
    pub mod win32_surface {
        use super::super::*;
        pub use {
            crate::vk::KHR_WIN32_SURFACE_NAME as NAME,
            crate::vk::KHR_WIN32_SURFACE_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_KHR_win32_surface instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_KHR_win32_surface instance-level function pointers"]
        pub struct InstanceFn {
            pub create_win32_surface_khr: PFN_vkCreateWin32SurfaceKHR,
            pub get_physical_device_win32_presentation_support_khr:
                PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    create_win32_surface_khr: unsafe {
                        unsafe extern "system" fn create_win32_surface_khr(
                            _instance: crate::vk::Instance,
                            _p_create_info: *const Win32SurfaceCreateInfoKHR<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_surface: *mut SurfaceKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(create_win32_surface_khr)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCreateWin32SurfaceKHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            create_win32_surface_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_physical_device_win32_presentation_support_khr: unsafe {
                        unsafe extern "system" fn get_physical_device_win32_presentation_support_khr(
                            _physical_device: PhysicalDevice,
                            _queue_family_index: u32,
                        ) -> Bool32 {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_win32_presentation_support_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceWin32PresentationSupportKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_win32_presentation_support_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_KHR_sampler_mirror_clamp_to_edge"]
    pub mod sampler_mirror_clamp_to_edge {
        use super::super::*;
        pub use {
            crate::vk::KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_NAME as NAME,
            crate::vk::KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_KHR_video_queue"]
    pub mod video_queue {
        use super::super::*;
        pub use {
            crate::vk::KHR_VIDEO_QUEUE_NAME as NAME,
            crate::vk::KHR_VIDEO_QUEUE_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_KHR_video_queue instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_KHR_video_queue instance-level function pointers"]
        pub struct InstanceFn {
            pub get_physical_device_video_capabilities_khr:
                PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR,
            pub get_physical_device_video_format_properties_khr:
                PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_physical_device_video_capabilities_khr: unsafe {
                        unsafe extern "system" fn get_physical_device_video_capabilities_khr(
                            _physical_device: PhysicalDevice,
                            _p_video_profile: *const VideoProfileInfoKHR<'_>,
                            _p_capabilities: *mut VideoCapabilitiesKHR<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_video_capabilities_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceVideoCapabilitiesKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_video_capabilities_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_physical_device_video_format_properties_khr: unsafe {
                        unsafe extern "system" fn get_physical_device_video_format_properties_khr(
                            _physical_device: PhysicalDevice,
                            _p_video_format_info: *const PhysicalDeviceVideoFormatInfoKHR<'_>,
                            _p_video_format_property_count: *mut u32,
                            _p_video_format_properties: *mut VideoFormatPropertiesKHR<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_video_format_properties_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceVideoFormatPropertiesKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_video_format_properties_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
        #[doc = "VK_KHR_video_queue device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_KHR_video_queue device-level function pointers"]
        pub struct DeviceFn {
            pub create_video_session_khr: PFN_vkCreateVideoSessionKHR,
            pub destroy_video_session_khr: PFN_vkDestroyVideoSessionKHR,
            pub get_video_session_memory_requirements_khr:
                PFN_vkGetVideoSessionMemoryRequirementsKHR,
            pub bind_video_session_memory_khr: PFN_vkBindVideoSessionMemoryKHR,
            pub create_video_session_parameters_khr: PFN_vkCreateVideoSessionParametersKHR,
            pub update_video_session_parameters_khr: PFN_vkUpdateVideoSessionParametersKHR,
            pub destroy_video_session_parameters_khr: PFN_vkDestroyVideoSessionParametersKHR,
            pub cmd_begin_video_coding_khr: PFN_vkCmdBeginVideoCodingKHR,
            pub cmd_end_video_coding_khr: PFN_vkCmdEndVideoCodingKHR,
            pub cmd_control_video_coding_khr: PFN_vkCmdControlVideoCodingKHR,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    create_video_session_khr: unsafe {
                        unsafe extern "system" fn create_video_session_khr(
                            _device: crate::vk::Device,
                            _p_create_info: *const VideoSessionCreateInfoKHR<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_video_session: *mut VideoSessionKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(create_video_session_khr)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCreateVideoSessionKHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            create_video_session_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    destroy_video_session_khr: unsafe {
                        unsafe extern "system" fn destroy_video_session_khr(
                            _device: crate::vk::Device,
                            _video_session: VideoSessionKHR,
                            _p_allocator: *const AllocationCallbacks<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(destroy_video_session_khr)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkDestroyVideoSessionKHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            destroy_video_session_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_video_session_memory_requirements_khr: unsafe {
                        unsafe extern "system" fn get_video_session_memory_requirements_khr(
                            _device: crate::vk::Device,
                            _video_session: VideoSessionKHR,
                            _p_memory_requirements_count: *mut u32,
                            _p_memory_requirements: *mut VideoSessionMemoryRequirementsKHR<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_video_session_memory_requirements_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetVideoSessionMemoryRequirementsKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_video_session_memory_requirements_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    bind_video_session_memory_khr: unsafe {
                        unsafe extern "system" fn bind_video_session_memory_khr(
                            _device: crate::vk::Device,
                            _video_session: VideoSessionKHR,
                            _bind_session_memory_info_count: u32,
                            _p_bind_session_memory_infos: *const BindVideoSessionMemoryInfoKHR<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(bind_video_session_memory_khr)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkBindVideoSessionMemoryKHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            bind_video_session_memory_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    create_video_session_parameters_khr: unsafe {
                        unsafe extern "system" fn create_video_session_parameters_khr(
                            _device: crate::vk::Device,
                            _p_create_info: *const VideoSessionParametersCreateInfoKHR<'_>,
                            _p_allocator: *const AllocationCallbacks<'_>,
                            _p_video_session_parameters: *mut VideoSessionParametersKHR,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(create_video_session_parameters_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkCreateVideoSessionParametersKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            create_video_session_parameters_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    update_video_session_parameters_khr: unsafe {
                        unsafe extern "system" fn update_video_session_parameters_khr(
                            _device: crate::vk::Device,
                            _video_session_parameters: VideoSessionParametersKHR,
                            _p_update_info: *const VideoSessionParametersUpdateInfoKHR<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(update_video_session_parameters_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkUpdateVideoSessionParametersKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            update_video_session_parameters_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    destroy_video_session_parameters_khr: unsafe {
                        unsafe extern "system" fn destroy_video_session_parameters_khr(
                            _device: crate::vk::Device,
                            _video_session_parameters: VideoSessionParametersKHR,
                            _p_allocator: *const AllocationCallbacks<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(destroy_video_session_parameters_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkDestroyVideoSessionParametersKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            destroy_video_session_parameters_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_begin_video_coding_khr: unsafe {
                        unsafe extern "system" fn cmd_begin_video_coding_khr(
                            _command_buffer: CommandBuffer,
                            _p_begin_info: *const VideoBeginCodingInfoKHR<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_begin_video_coding_khr)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginVideoCodingKHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_begin_video_coding_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_end_video_coding_khr: unsafe {
                        unsafe extern "system" fn cmd_end_video_coding_khr(
                            _command_buffer: CommandBuffer,
                            _p_end_coding_info: *const VideoEndCodingInfoKHR<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_end_video_coding_khr)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdEndVideoCodingKHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_end_video_coding_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_control_video_coding_khr: unsafe {
                        unsafe extern "system" fn cmd_control_video_coding_khr(
                            _command_buffer: CommandBuffer,
                            _p_coding_control_info: *const VideoCodingControlInfoKHR<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_control_video_coding_khr)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdControlVideoCodingKHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_control_video_coding_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_KHR_video_decode_queue"]
    pub mod video_decode_queue {
        use super::super::*;
        pub use {
            crate::vk::KHR_VIDEO_DECODE_QUEUE_NAME as NAME,
            crate::vk::KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_KHR_video_decode_queue device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_KHR_video_decode_queue device-level function pointers"]
        pub struct DeviceFn {
            pub cmd_decode_video_khr: PFN_vkCmdDecodeVideoKHR,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    cmd_decode_video_khr: unsafe {
                        unsafe extern "system" fn cmd_decode_video_khr(
                            _command_buffer: CommandBuffer,
                            _p_decode_info: *const VideoDecodeInfoKHR<'_>,
                        ) {
                            panic!(concat!("Unable to load ", stringify!(cmd_decode_video_khr)))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDecodeVideoKHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_decode_video_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_KHR_video_encode_h264"]
    pub mod video_encode_h264 {
        use super::super::*;
        pub use {
            crate::vk::KHR_VIDEO_ENCODE_H264_NAME as NAME,
            crate::vk::KHR_VIDEO_ENCODE_H264_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_KHR_video_encode_h265"]
    pub mod video_encode_h265 {
        use super::super::*;
        pub use {
            crate::vk::KHR_VIDEO_ENCODE_H265_NAME as NAME,
            crate::vk::KHR_VIDEO_ENCODE_H265_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_KHR_video_decode_h264"]
    pub mod video_decode_h264 {
        use super::super::*;
        pub use {
            crate::vk::KHR_VIDEO_DECODE_H264_NAME as NAME,
            crate::vk::KHR_VIDEO_DECODE_H264_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_KHR_dynamic_rendering"]
    pub mod dynamic_rendering {
        use super::super::*;
        pub use {
            crate::vk::KHR_DYNAMIC_RENDERING_NAME as NAME,
            crate::vk::KHR_DYNAMIC_RENDERING_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_KHR_dynamic_rendering device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_KHR_dynamic_rendering device-level function pointers"]
        pub struct DeviceFn {
            pub cmd_begin_rendering_khr: PFN_vkCmdBeginRendering,
            pub cmd_end_rendering_khr: PFN_vkCmdEndRendering,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    cmd_begin_rendering_khr: unsafe {
                        unsafe extern "system" fn cmd_begin_rendering_khr(
                            _command_buffer: CommandBuffer,
                            _p_rendering_info: *const RenderingInfo<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_begin_rendering_khr)
                            ))
                        }
                        let cname =
                            CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginRenderingKHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_begin_rendering_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_end_rendering_khr: unsafe {
                        unsafe extern "system" fn cmd_end_rendering_khr(
                            _command_buffer: CommandBuffer,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(cmd_end_rendering_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdEndRenderingKHR\0");
                        let val = _f(cname);
                        if val.is_null() {
                            cmd_end_rendering_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_KHR_multiview"]
    pub mod multiview {
        use super::super::*;
        pub use {
            crate::vk::KHR_MULTIVIEW_NAME as NAME,
            crate::vk::KHR_MULTIVIEW_SPEC_VERSION as SPEC_VERSION,
        };
    }
    #[doc = "VK_KHR_get_physical_device_properties2"]
    pub mod get_physical_device_properties2 {
        use super::super::*;
        pub use {
            crate::vk::KHR_GET_PHYSICAL_DEVICE_PROPERTIES2_NAME as NAME,
            crate::vk::KHR_GET_PHYSICAL_DEVICE_PROPERTIES2_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_KHR_get_physical_device_properties2 instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_KHR_get_physical_device_properties2 instance-level function pointers"]
        pub struct InstanceFn {
            pub get_physical_device_features2_khr: PFN_vkGetPhysicalDeviceFeatures2,
            pub get_physical_device_properties2_khr: PFN_vkGetPhysicalDeviceProperties2,
            pub get_physical_device_format_properties2_khr:
                PFN_vkGetPhysicalDeviceFormatProperties2,
            pub get_physical_device_image_format_properties2_khr:
                PFN_vkGetPhysicalDeviceImageFormatProperties2,
            pub get_physical_device_queue_family_properties2_khr:
                PFN_vkGetPhysicalDeviceQueueFamilyProperties2,
            pub get_physical_device_memory_properties2_khr:
                PFN_vkGetPhysicalDeviceMemoryProperties2,
            pub get_physical_device_sparse_image_format_properties2_khr:
                PFN_vkGetPhysicalDeviceSparseImageFormatProperties2,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_physical_device_features2_khr: unsafe {
                        unsafe extern "system" fn get_physical_device_features2_khr(
                            _physical_device: PhysicalDevice,
                            _p_features: *mut PhysicalDeviceFeatures2<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_features2_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceFeatures2KHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_features2_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_physical_device_properties2_khr: unsafe {
                        unsafe extern "system" fn get_physical_device_properties2_khr(
                            _physical_device: PhysicalDevice,
                            _p_properties: *mut PhysicalDeviceProperties2<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_properties2_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceProperties2KHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_properties2_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_physical_device_format_properties2_khr: unsafe {
                        unsafe extern "system" fn get_physical_device_format_properties2_khr(
                            _physical_device: PhysicalDevice,
                            _format: Format,
                            _p_format_properties: *mut FormatProperties2<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_format_properties2_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceFormatProperties2KHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_format_properties2_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_physical_device_image_format_properties2_khr: unsafe {
                        unsafe extern "system" fn get_physical_device_image_format_properties2_khr(
                            _physical_device: PhysicalDevice,
                            _p_image_format_info: *const PhysicalDeviceImageFormatInfo2<'_>,
                            _p_image_format_properties: *mut ImageFormatProperties2<'_>,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_image_format_properties2_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceImageFormatProperties2KHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_image_format_properties2_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_physical_device_queue_family_properties2_khr: unsafe {
                        unsafe extern "system" fn get_physical_device_queue_family_properties2_khr(
                            _physical_device: PhysicalDevice,
                            _p_queue_family_property_count: *mut u32,
                            _p_queue_family_properties: *mut QueueFamilyProperties2<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_queue_family_properties2_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceQueueFamilyProperties2KHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_queue_family_properties2_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_physical_device_memory_properties2_khr: unsafe {
                        unsafe extern "system" fn get_physical_device_memory_properties2_khr(
                            _physical_device: PhysicalDevice,
                            _p_memory_properties: *mut PhysicalDeviceMemoryProperties2<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_memory_properties2_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceMemoryProperties2KHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_memory_properties2_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    get_physical_device_sparse_image_format_properties2_khr: unsafe {
                        unsafe extern "system" fn get_physical_device_sparse_image_format_properties2_khr(
                            _physical_device: PhysicalDevice,
                            _p_format_info: *const PhysicalDeviceSparseImageFormatInfo2<'_>,
                            _p_property_count: *mut u32,
                            _p_properties: *mut SparseImageFormatProperties2<'_>,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_sparse_image_format_properties2_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDeviceSparseImageFormatProperties2KHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_sparse_image_format_properties2_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
    }
    #[doc = "VK_KHR_device_group"]
    pub mod device_group {
        use super::super::*;
        pub use {
            crate::vk::KHR_DEVICE_GROUP_NAME as NAME,
            crate::vk::KHR_DEVICE_GROUP_SPEC_VERSION as SPEC_VERSION,
        };
        #[doc = "VK_KHR_device_group instance-level functions"]
        #[derive(Clone)]
        pub struct Instance {
            pub(crate) fp: InstanceFn,
            pub(crate) handle: crate::vk::Instance,
        }
        impl Instance {
            pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
                let handle = instance.handle();
                let fp = InstanceFn::load(|name| unsafe {
                    core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &InstanceFn {
                &self.fp
            }
            #[inline]
            pub fn instance(&self) -> crate::vk::Instance {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_KHR_device_group instance-level function pointers"]
        pub struct InstanceFn {
            pub get_physical_device_present_rectangles_khr:
                PFN_vkGetPhysicalDevicePresentRectanglesKHR,
        }
        unsafe impl Send for InstanceFn {}
        unsafe impl Sync for InstanceFn {}
        impl InstanceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_physical_device_present_rectangles_khr: unsafe {
                        unsafe extern "system" fn get_physical_device_present_rectangles_khr(
                            _physical_device: PhysicalDevice,
                            _surface: SurfaceKHR,
                            _p_rect_count: *mut u32,
                            _p_rects: *mut Rect2D,
                        ) -> Result {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_physical_device_present_rectangles_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetPhysicalDevicePresentRectanglesKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_physical_device_present_rectangles_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                }
            }
        }
        #[doc = "VK_KHR_device_group device-level functions"]
        #[derive(Clone)]
        pub struct Device {
            pub(crate) fp: DeviceFn,
            pub(crate) handle: crate::vk::Device,
        }
        impl Device {
            pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
                let handle = device.handle();
                let fp = DeviceFn::load(|name| unsafe {
                    core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
                });
                Self { handle, fp }
            }
            #[inline]
            pub fn fp(&self) -> &DeviceFn {
                &self.fp
            }
            #[inline]
            pub fn device(&self) -> crate::vk::Device {
                self.handle
            }
        }
        #[derive(Clone)]
        #[doc = "Raw VK_KHR_device_group device-level function pointers"]
        pub struct DeviceFn {
            pub get_device_group_peer_memory_features_khr: PFN_vkGetDeviceGroupPeerMemoryFeatures,
            pub cmd_set_device_mask_khr: PFN_vkCmdSetDeviceMask,
            pub cmd_dispatch_base_khr: PFN_vkCmdDispatchBase,
            pub get_device_group_present_capabilities_khr:
                PFN_vkGetDeviceGroupPresentCapabilitiesKHR,
            pub get_device_group_surface_present_modes_khr:
                PFN_vkGetDeviceGroupSurfacePresentModesKHR,
            pub acquire_next_image2_khr: PFN_vkAcquireNextImage2KHR,
        }
        unsafe impl Send for DeviceFn {}
        unsafe impl Sync for DeviceFn {}
        impl DeviceFn {
            pub fn load<F: FnMut(&CStr) -> *const c_void>(mut f: F) -> Self {
                Self::load_erased(&mut f)
            }
            fn load_erased(_f: &mut dyn FnMut(&CStr) -> *const c_void) -> Self {
                Self {
                    get_device_group_peer_memory_features_khr: unsafe {
                        unsafe extern "system" fn get_device_group_peer_memory_features_khr(
                            _device: crate::vk::Device,
                            _heap_index: u32,
                            _local_device_index: u32,
                            _remote_device_index: u32,
                            _p_peer_memory_features: *mut PeerMemoryFeatureFlags,
                        ) {
                            panic!(concat!(
                                "Unable to load ",
                                stringify!(get_device_group_peer_memory_features_khr)
                            ))
                        }
                        let cname = CStr::from_bytes_with_nul_unchecked(
                            b"vkGetDeviceGroupPeerMemoryFeaturesKHR\0",
                        );
                        let val = _f(cname);
                        if val.is_null() {
                            get_device_group_peer_memory_features_khr
                        } else {
                            ::core::mem::transmute(val)
                        }
                    },
                    cmd_set_device_mask_khr: unsafe {
                        unsafe extern "system" fn cmd_set_device_mask_khr(
--> --------------------

--> maximum size reached

--> --------------------

[Seitenstruktur0.668Druckenetwas mehr zur Ethik2026-04-26]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge