Theme

alex/beta-minecraft-rust

Minecraft Beta 1.7.3 Rewrite

BRANCH main
main
SNAPSHOT Draw terrain GPU-driven from packed per-section buffers with GPU occlusion culling, add a render distance slider (2-128) with a quad/disk shape, cut chunk bookkeeping at high render distances, and fix a light underflow at y=0
DOWNLOAD
Download file

root / crates / volcanic / src / loader / mod.rs

// This file is @generated by the volcanic codegen crate.
// Run `cargo run -p codegen` from the repository root to update it.

#![allow(clippy::too_many_arguments)]

use super::*;
use core::ffi::CStr;

#[cfg(feature = "core_1_0")]
mod library;
#[cfg(feature = "core_1_0")]
pub use library::{DeviceCommands, InstanceCommands, Loader};

#[derive(Debug)]
pub enum LoadError {
    Library {
        path: std::path::PathBuf,
        source: libloading::Error,
    },
    Symbol {
        name: &'static CStr,
        source: libloading::Error,
    },
    MissingBootstrap {
        name: &'static CStr,
    },
}

impl core::fmt::Display for LoadError {
    fn fmt(&self, formatter: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
        match self {
            Self::Library { path, source } => write!(
                formatter,
                "failed to open Vulkan loader `{}`: {source}",
                path.display()
            ),
            Self::Symbol { name, source } => write!(
                formatter,
                "failed to load Vulkan loader symbol `{}`: {source}",
                name.to_str().unwrap_or("<invalid symbol>")
            ),
            Self::MissingBootstrap { name } => write!(
                formatter,
                "Vulkan loader did not return required bootstrap symbol `{}`",
                name.to_str().unwrap_or("<invalid symbol>")
            ),
        }
    }
}

impl std::error::Error for LoadError {
    fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
        match self {
            Self::Library { source, .. } | Self::Symbol { source, .. } => Some(source),
            Self::MissingBootstrap { .. } => None,
        }
    }
}

#[cfg(feature = "core_1_0")]
unsafe fn load_get_instance_proc_addr(
    library: &libloading::Library,
) -> Result<PFN_vkGetInstanceProcAddr, LoadError> {
    unsafe { library.get::<PFN_vkGetInstanceProcAddr>(c"vkGetInstanceProcAddr") }
        .map(|symbol| *symbol)
        .map_err(|source| LoadError::Symbol {
            name: c"vkGetInstanceProcAddr",
            source,
        })
}

#[cfg(feature = "core_1_0")]
unsafe fn load_global_command<T: Copy>(
    get_instance_proc_addr: PFN_vkGetInstanceProcAddr,
    name: &'static CStr,
) -> Option<T> {
    unsafe { cast_vk_function(get_instance_proc_addr(core::ptr::null_mut(), name.as_ptr())) }
}

#[cfg(feature = "core_1_0")]
unsafe fn load_instance_command<T: Copy>(
    get_instance_proc_addr: PFN_vkGetInstanceProcAddr,
    instance: VkInstance,
    name: &'static CStr,
) -> Option<T> {
    unsafe { cast_vk_function(get_instance_proc_addr(instance, name.as_ptr())) }
}

#[cfg(feature = "core_1_0")]
unsafe fn load_device_command<T: Copy>(
    get_device_proc_addr: PFN_vkGetDeviceProcAddr,
    device: VkDevice,
    name: &'static CStr,
) -> Option<T> {
    unsafe { cast_vk_function(get_device_proc_addr(device, name.as_ptr())) }
}

#[cfg(feature = "core_1_0")]
unsafe fn cast_vk_function<T: Copy>(function: PFN_vkVoidFunction) -> Option<T> {
    function.map(|function| {
        assert_eq!(core::mem::size_of::<T>(), core::mem::size_of_val(&function));
        unsafe { core::mem::transmute_copy(&function) }
    })
}

#[derive(Clone, Copy, Default)]
pub struct CmdsGlobal {
    #[cfg(feature = "core_1_0")]
    pub vkCreateInstance: Option<PFN_vkCreateInstance>,
    #[cfg(feature = "core_1_0")]
    pub vkGetInstanceProcAddr: Option<PFN_vkGetInstanceProcAddr>,
    #[cfg(feature = "core_1_1")]
    pub vkEnumerateInstanceVersion: Option<PFN_vkEnumerateInstanceVersion>,
    #[cfg(feature = "core_1_0")]
    pub vkEnumerateInstanceLayerProperties: Option<PFN_vkEnumerateInstanceLayerProperties>,
    #[cfg(feature = "core_1_0")]
    pub vkEnumerateInstanceExtensionProperties: Option<PFN_vkEnumerateInstanceExtensionProperties>,
}

impl CmdsGlobal {
    #[cfg(feature = "core_1_0")]
    pub unsafe fn load(library: &libloading::Library) -> Result<Self, LoadError> {
        let get_instance_proc_addr = unsafe { load_get_instance_proc_addr(library)? };
        Ok(Self {
            #[cfg(feature = "core_1_0")]
            vkCreateInstance: unsafe {
                load_global_command(get_instance_proc_addr, c"vkCreateInstance")
            },
            #[cfg(feature = "core_1_0")]
            vkGetInstanceProcAddr: Some(get_instance_proc_addr),
            #[cfg(feature = "core_1_1")]
            vkEnumerateInstanceVersion: unsafe {
                load_global_command(get_instance_proc_addr, c"vkEnumerateInstanceVersion")
            },
            #[cfg(feature = "core_1_0")]
            vkEnumerateInstanceLayerProperties: unsafe {
                load_global_command(
                    get_instance_proc_addr,
                    c"vkEnumerateInstanceLayerProperties",
                )
            },
            #[cfg(feature = "core_1_0")]
            vkEnumerateInstanceExtensionProperties: unsafe {
                load_global_command(
                    get_instance_proc_addr,
                    c"vkEnumerateInstanceExtensionProperties",
                )
            },
        })
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCreateInstance(
        &self,
        pCreateInfo: *const VkInstanceCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pInstance: *mut VkInstance,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateInstance
                .expect("Vulkan command vkCreateInstance is not loaded"))(
                pCreateInfo,
                pAllocator,
                pInstance,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkGetInstanceProcAddr(
        &self,
        instance: VkInstance,
        pName: *const c_char,
    ) -> PFN_vkVoidFunction {
        unsafe {
            (self
                .vkGetInstanceProcAddr
                .expect("Vulkan command vkGetInstanceProcAddr is not loaded"))(
                instance, pName
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkEnumerateInstanceVersion(&self, pApiVersion: *mut u32) -> VkResult {
        unsafe {
            (self
                .vkEnumerateInstanceVersion
                .expect("Vulkan command vkEnumerateInstanceVersion is not loaded"))(
                pApiVersion
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkEnumerateInstanceLayerProperties(
        &self,
        pPropertyCount: *mut u32,
        pProperties: *mut VkLayerProperties,
    ) -> VkResult {
        unsafe {
            (self
                .vkEnumerateInstanceLayerProperties
                .expect("Vulkan command vkEnumerateInstanceLayerProperties is not loaded"))(
                pPropertyCount,
                pProperties,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkEnumerateInstanceExtensionProperties(
        &self,
        pLayerName: *const c_char,
        pPropertyCount: *mut u32,
        pProperties: *mut VkExtensionProperties,
    ) -> VkResult {
        unsafe {
            (self
                .vkEnumerateInstanceExtensionProperties
                .expect("Vulkan command vkEnumerateInstanceExtensionProperties is not loaded"))(
                pLayerName,
                pPropertyCount,
                pProperties,
            )
        }
    }
}

#[derive(Clone, Copy, Default)]
pub struct CmdsInstance {
    #[cfg(feature = "core_1_0")]
    pub vkDestroyInstance: Option<PFN_vkDestroyInstance>,
    #[cfg(feature = "core_1_0")]
    pub vkEnumeratePhysicalDevices: Option<PFN_vkEnumeratePhysicalDevices>,
    #[cfg(feature = "core_1_0")]
    pub vkGetDeviceProcAddr: Option<PFN_vkGetDeviceProcAddr>,
    #[cfg(feature = "core_1_0")]
    pub vkGetPhysicalDeviceProperties: Option<PFN_vkGetPhysicalDeviceProperties>,
    #[cfg(feature = "core_1_0")]
    pub vkGetPhysicalDeviceQueueFamilyProperties:
        Option<PFN_vkGetPhysicalDeviceQueueFamilyProperties>,
    #[cfg(feature = "core_1_0")]
    pub vkGetPhysicalDeviceMemoryProperties: Option<PFN_vkGetPhysicalDeviceMemoryProperties>,
    #[cfg(feature = "core_1_0")]
    pub vkGetPhysicalDeviceFeatures: Option<PFN_vkGetPhysicalDeviceFeatures>,
    #[cfg(feature = "core_1_0")]
    pub vkGetPhysicalDeviceFormatProperties: Option<PFN_vkGetPhysicalDeviceFormatProperties>,
    #[cfg(feature = "core_1_0")]
    pub vkGetPhysicalDeviceImageFormatProperties:
        Option<PFN_vkGetPhysicalDeviceImageFormatProperties>,
    #[cfg(feature = "core_1_0")]
    pub vkCreateDevice: Option<PFN_vkCreateDevice>,
    #[cfg(feature = "core_1_0")]
    pub vkEnumerateDeviceLayerProperties: Option<PFN_vkEnumerateDeviceLayerProperties>,
    #[cfg(feature = "core_1_0")]
    pub vkEnumerateDeviceExtensionProperties: Option<PFN_vkEnumerateDeviceExtensionProperties>,
    #[cfg(feature = "core_1_0")]
    pub vkGetPhysicalDeviceSparseImageFormatProperties:
        Option<PFN_vkGetPhysicalDeviceSparseImageFormatProperties>,
    #[cfg(feature = "vk_khr_android_surface")]
    pub vkCreateAndroidSurfaceKHR: Option<PFN_vkCreateAndroidSurfaceKHR>,
    #[cfg(feature = "vk_ohos_surface")]
    pub vkCreateSurfaceOHOS: Option<PFN_vkCreateSurfaceOHOS>,
    #[cfg(feature = "vk_khr_display")]
    pub vkGetPhysicalDeviceDisplayPropertiesKHR:
        Option<PFN_vkGetPhysicalDeviceDisplayPropertiesKHR>,
    #[cfg(feature = "vk_khr_display")]
    pub vkGetPhysicalDeviceDisplayPlanePropertiesKHR:
        Option<PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR>,
    #[cfg(feature = "vk_khr_display")]
    pub vkGetDisplayPlaneSupportedDisplaysKHR: Option<PFN_vkGetDisplayPlaneSupportedDisplaysKHR>,
    #[cfg(feature = "vk_khr_display")]
    pub vkGetDisplayModePropertiesKHR: Option<PFN_vkGetDisplayModePropertiesKHR>,
    #[cfg(feature = "vk_khr_display")]
    pub vkCreateDisplayModeKHR: Option<PFN_vkCreateDisplayModeKHR>,
    #[cfg(feature = "vk_khr_display")]
    pub vkGetDisplayPlaneCapabilitiesKHR: Option<PFN_vkGetDisplayPlaneCapabilitiesKHR>,
    #[cfg(feature = "vk_khr_display")]
    pub vkCreateDisplayPlaneSurfaceKHR: Option<PFN_vkCreateDisplayPlaneSurfaceKHR>,
    #[cfg(feature = "vk_khr_surface")]
    pub vkDestroySurfaceKHR: Option<PFN_vkDestroySurfaceKHR>,
    #[cfg(feature = "vk_khr_surface")]
    pub vkGetPhysicalDeviceSurfaceSupportKHR: Option<PFN_vkGetPhysicalDeviceSurfaceSupportKHR>,
    #[cfg(feature = "vk_khr_surface")]
    pub vkGetPhysicalDeviceSurfaceCapabilitiesKHR:
        Option<PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR>,
    #[cfg(feature = "vk_khr_surface")]
    pub vkGetPhysicalDeviceSurfaceFormatsKHR: Option<PFN_vkGetPhysicalDeviceSurfaceFormatsKHR>,
    #[cfg(feature = "vk_khr_surface")]
    pub vkGetPhysicalDeviceSurfacePresentModesKHR:
        Option<PFN_vkGetPhysicalDeviceSurfacePresentModesKHR>,
    #[cfg(feature = "vk_nn_vi_surface")]
    pub vkCreateViSurfaceNN: Option<PFN_vkCreateViSurfaceNN>,
    #[cfg(feature = "vk_khr_wayland_surface")]
    pub vkCreateWaylandSurfaceKHR: Option<PFN_vkCreateWaylandSurfaceKHR>,
    #[cfg(feature = "vk_khr_wayland_surface")]
    pub vkGetPhysicalDeviceWaylandPresentationSupportKHR:
        Option<PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR>,
    #[cfg(feature = "vk_sec_ubm_surface")]
    pub vkCreateUbmSurfaceSEC: Option<PFN_vkCreateUbmSurfaceSEC>,
    #[cfg(feature = "vk_sec_ubm_surface")]
    pub vkGetPhysicalDeviceUbmPresentationSupportSEC:
        Option<PFN_vkGetPhysicalDeviceUbmPresentationSupportSEC>,
    #[cfg(feature = "vk_khr_win32_surface")]
    pub vkCreateWin32SurfaceKHR: Option<PFN_vkCreateWin32SurfaceKHR>,
    #[cfg(feature = "vk_khr_win32_surface")]
    pub vkGetPhysicalDeviceWin32PresentationSupportKHR:
        Option<PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR>,
    #[cfg(feature = "vk_khr_xlib_surface")]
    pub vkCreateXlibSurfaceKHR: Option<PFN_vkCreateXlibSurfaceKHR>,
    #[cfg(feature = "vk_khr_xlib_surface")]
    pub vkGetPhysicalDeviceXlibPresentationSupportKHR:
        Option<PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR>,
    #[cfg(feature = "vk_khr_xcb_surface")]
    pub vkCreateXcbSurfaceKHR: Option<PFN_vkCreateXcbSurfaceKHR>,
    #[cfg(feature = "vk_khr_xcb_surface")]
    pub vkGetPhysicalDeviceXcbPresentationSupportKHR:
        Option<PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR>,
    #[cfg(feature = "vk_ext_directfb_surface")]
    pub vkCreateDirectFBSurfaceEXT: Option<PFN_vkCreateDirectFBSurfaceEXT>,
    #[cfg(feature = "vk_ext_directfb_surface")]
    pub vkGetPhysicalDeviceDirectFBPresentationSupportEXT:
        Option<PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT>,
    #[cfg(feature = "vk_fuchsia_imagepipe_surface")]
    pub vkCreateImagePipeSurfaceFUCHSIA: Option<PFN_vkCreateImagePipeSurfaceFUCHSIA>,
    #[cfg(feature = "vk_ggp_stream_descriptor_surface")]
    pub vkCreateStreamDescriptorSurfaceGGP: Option<PFN_vkCreateStreamDescriptorSurfaceGGP>,
    #[cfg(feature = "vk_qnx_screen_surface")]
    pub vkCreateScreenSurfaceQNX: Option<PFN_vkCreateScreenSurfaceQNX>,
    #[cfg(feature = "vk_qnx_screen_surface")]
    pub vkGetPhysicalDeviceScreenPresentationSupportQNX:
        Option<PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX>,
    #[cfg(feature = "vk_ext_debug_report")]
    pub vkCreateDebugReportCallbackEXT: Option<PFN_vkCreateDebugReportCallbackEXT>,
    #[cfg(feature = "vk_ext_debug_report")]
    pub vkDestroyDebugReportCallbackEXT: Option<PFN_vkDestroyDebugReportCallbackEXT>,
    #[cfg(feature = "vk_ext_debug_report")]
    pub vkDebugReportMessageEXT: Option<PFN_vkDebugReportMessageEXT>,
    #[cfg(feature = "vk_nv_external_memory_capabilities")]
    pub vkGetPhysicalDeviceExternalImageFormatPropertiesNV:
        Option<PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV>,
    #[cfg(feature = "core_1_1")]
    pub vkGetPhysicalDeviceFeatures2: Option<PFN_vkGetPhysicalDeviceFeatures2>,
    #[cfg(feature = "vk_khr_get_physical_device_properties2")]
    pub vkGetPhysicalDeviceFeatures2KHR: Option<PFN_vkGetPhysicalDeviceFeatures2KHR>,
    #[cfg(feature = "core_1_1")]
    pub vkGetPhysicalDeviceProperties2: Option<PFN_vkGetPhysicalDeviceProperties2>,
    #[cfg(feature = "vk_khr_get_physical_device_properties2")]
    pub vkGetPhysicalDeviceProperties2KHR: Option<PFN_vkGetPhysicalDeviceProperties2KHR>,
    #[cfg(feature = "core_1_1")]
    pub vkGetPhysicalDeviceFormatProperties2: Option<PFN_vkGetPhysicalDeviceFormatProperties2>,
    #[cfg(feature = "vk_khr_get_physical_device_properties2")]
    pub vkGetPhysicalDeviceFormatProperties2KHR:
        Option<PFN_vkGetPhysicalDeviceFormatProperties2KHR>,
    #[cfg(feature = "core_1_1")]
    pub vkGetPhysicalDeviceImageFormatProperties2:
        Option<PFN_vkGetPhysicalDeviceImageFormatProperties2>,
    #[cfg(feature = "vk_khr_get_physical_device_properties2")]
    pub vkGetPhysicalDeviceImageFormatProperties2KHR:
        Option<PFN_vkGetPhysicalDeviceImageFormatProperties2KHR>,
    #[cfg(feature = "core_1_1")]
    pub vkGetPhysicalDeviceQueueFamilyProperties2:
        Option<PFN_vkGetPhysicalDeviceQueueFamilyProperties2>,
    #[cfg(feature = "vk_khr_get_physical_device_properties2")]
    pub vkGetPhysicalDeviceQueueFamilyProperties2KHR:
        Option<PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR>,
    #[cfg(feature = "core_1_1")]
    pub vkGetPhysicalDeviceMemoryProperties2: Option<PFN_vkGetPhysicalDeviceMemoryProperties2>,
    #[cfg(feature = "vk_khr_get_physical_device_properties2")]
    pub vkGetPhysicalDeviceMemoryProperties2KHR:
        Option<PFN_vkGetPhysicalDeviceMemoryProperties2KHR>,
    #[cfg(feature = "core_1_1")]
    pub vkGetPhysicalDeviceSparseImageFormatProperties2:
        Option<PFN_vkGetPhysicalDeviceSparseImageFormatProperties2>,
    #[cfg(feature = "vk_khr_get_physical_device_properties2")]
    pub vkGetPhysicalDeviceSparseImageFormatProperties2KHR:
        Option<PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR>,
    #[cfg(feature = "core_1_1")]
    pub vkGetPhysicalDeviceExternalBufferProperties:
        Option<PFN_vkGetPhysicalDeviceExternalBufferProperties>,
    #[cfg(feature = "vk_khr_external_memory_capabilities")]
    pub vkGetPhysicalDeviceExternalBufferPropertiesKHR:
        Option<PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR>,
    #[cfg(feature = "core_1_1")]
    pub vkGetPhysicalDeviceExternalSemaphoreProperties:
        Option<PFN_vkGetPhysicalDeviceExternalSemaphoreProperties>,
    #[cfg(feature = "vk_khr_external_semaphore_capabilities")]
    pub vkGetPhysicalDeviceExternalSemaphorePropertiesKHR:
        Option<PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR>,
    #[cfg(feature = "core_1_1")]
    pub vkGetPhysicalDeviceExternalFenceProperties:
        Option<PFN_vkGetPhysicalDeviceExternalFenceProperties>,
    #[cfg(feature = "vk_khr_external_fence_capabilities")]
    pub vkGetPhysicalDeviceExternalFencePropertiesKHR:
        Option<PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR>,
    #[cfg(feature = "vk_ext_direct_mode_display")]
    pub vkReleaseDisplayEXT: Option<PFN_vkReleaseDisplayEXT>,
    #[cfg(feature = "vk_ext_acquire_xlib_display")]
    pub vkAcquireXlibDisplayEXT: Option<PFN_vkAcquireXlibDisplayEXT>,
    #[cfg(feature = "vk_ext_acquire_xlib_display")]
    pub vkGetRandROutputDisplayEXT: Option<PFN_vkGetRandROutputDisplayEXT>,
    #[cfg(feature = "vk_nv_acquire_winrt_display")]
    pub vkAcquireWinrtDisplayNV: Option<PFN_vkAcquireWinrtDisplayNV>,
    #[cfg(feature = "vk_nv_acquire_winrt_display")]
    pub vkGetWinrtDisplayNV: Option<PFN_vkGetWinrtDisplayNV>,
    #[cfg(feature = "vk_ext_display_surface_counter")]
    pub vkGetPhysicalDeviceSurfaceCapabilities2EXT:
        Option<PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT>,
    #[cfg(feature = "core_1_1")]
    pub vkEnumeratePhysicalDeviceGroups: Option<PFN_vkEnumeratePhysicalDeviceGroups>,
    #[cfg(feature = "vk_khr_device_group_creation")]
    pub vkEnumeratePhysicalDeviceGroupsKHR: Option<PFN_vkEnumeratePhysicalDeviceGroupsKHR>,
    #[cfg(any(
        all(feature = "core_1_1", feature = "vk_khr_swapchain"),
        all(feature = "vk_khr_device_group", feature = "vk_khr_surface")
    ))]
    pub vkGetPhysicalDevicePresentRectanglesKHR:
        Option<PFN_vkGetPhysicalDevicePresentRectanglesKHR>,
    #[cfg(feature = "vk_mvk_ios_surface")]
    pub vkCreateIOSSurfaceMVK: Option<PFN_vkCreateIOSSurfaceMVK>,
    #[cfg(feature = "vk_mvk_macos_surface")]
    pub vkCreateMacOSSurfaceMVK: Option<PFN_vkCreateMacOSSurfaceMVK>,
    #[cfg(feature = "vk_ext_metal_surface")]
    pub vkCreateMetalSurfaceEXT: Option<PFN_vkCreateMetalSurfaceEXT>,
    #[cfg(feature = "vk_ext_sample_locations")]
    pub vkGetPhysicalDeviceMultisamplePropertiesEXT:
        Option<PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT>,
    #[cfg(feature = "vk_khr_get_surface_capabilities2")]
    pub vkGetPhysicalDeviceSurfaceCapabilities2KHR:
        Option<PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR>,
    #[cfg(feature = "vk_khr_get_surface_capabilities2")]
    pub vkGetPhysicalDeviceSurfaceFormats2KHR: Option<PFN_vkGetPhysicalDeviceSurfaceFormats2KHR>,
    #[cfg(feature = "vk_khr_get_display_properties2")]
    pub vkGetPhysicalDeviceDisplayProperties2KHR:
        Option<PFN_vkGetPhysicalDeviceDisplayProperties2KHR>,
    #[cfg(feature = "vk_khr_get_display_properties2")]
    pub vkGetPhysicalDeviceDisplayPlaneProperties2KHR:
        Option<PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR>,
    #[cfg(feature = "vk_khr_get_display_properties2")]
    pub vkGetDisplayModeProperties2KHR: Option<PFN_vkGetDisplayModeProperties2KHR>,
    #[cfg(feature = "vk_khr_get_display_properties2")]
    pub vkGetDisplayPlaneCapabilities2KHR: Option<PFN_vkGetDisplayPlaneCapabilities2KHR>,
    #[cfg(feature = "vk_khr_calibrated_timestamps")]
    pub vkGetPhysicalDeviceCalibrateableTimeDomainsKHR:
        Option<PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR>,
    #[cfg(feature = "vk_ext_calibrated_timestamps")]
    pub vkGetPhysicalDeviceCalibrateableTimeDomainsEXT:
        Option<PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT>,
    #[cfg(feature = "vk_ext_debug_utils")]
    pub vkCreateDebugUtilsMessengerEXT: Option<PFN_vkCreateDebugUtilsMessengerEXT>,
    #[cfg(feature = "vk_ext_debug_utils")]
    pub vkDestroyDebugUtilsMessengerEXT: Option<PFN_vkDestroyDebugUtilsMessengerEXT>,
    #[cfg(feature = "vk_ext_debug_utils")]
    pub vkSubmitDebugUtilsMessageEXT: Option<PFN_vkSubmitDebugUtilsMessageEXT>,
    #[cfg(feature = "vk_nv_cooperative_matrix")]
    pub vkGetPhysicalDeviceCooperativeMatrixPropertiesNV:
        Option<PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV>,
    #[cfg(feature = "vk_ext_full_screen_exclusive")]
    pub vkGetPhysicalDeviceSurfacePresentModes2EXT:
        Option<PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT>,
    #[cfg(feature = "vk_khr_performance_query")]
    pub vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR:
        Option<PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR>,
    #[cfg(feature = "vk_khr_performance_query")]
    pub vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR:
        Option<PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR>,
    #[cfg(feature = "vk_ext_headless_surface")]
    pub vkCreateHeadlessSurfaceEXT: Option<PFN_vkCreateHeadlessSurfaceEXT>,
    #[cfg(feature = "vk_nv_coverage_reduction_mode")]
    pub vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV:
        Option<PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV>,
    #[cfg(feature = "core_1_3")]
    pub vkGetPhysicalDeviceToolProperties: Option<PFN_vkGetPhysicalDeviceToolProperties>,
    #[cfg(feature = "vk_ext_tooling_info")]
    pub vkGetPhysicalDeviceToolPropertiesEXT: Option<PFN_vkGetPhysicalDeviceToolPropertiesEXT>,
    #[cfg(feature = "vk_khr_fragment_shading_rate")]
    pub vkGetPhysicalDeviceFragmentShadingRatesKHR:
        Option<PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR>,
    #[cfg(feature = "vk_khr_video_queue")]
    pub vkGetPhysicalDeviceVideoCapabilitiesKHR:
        Option<PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR>,
    #[cfg(feature = "vk_khr_video_queue")]
    pub vkGetPhysicalDeviceVideoFormatPropertiesKHR:
        Option<PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR>,
    #[cfg(feature = "vk_khr_video_encode_queue")]
    pub vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR:
        Option<PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR>,
    #[cfg(feature = "vk_ext_acquire_drm_display")]
    pub vkAcquireDrmDisplayEXT: Option<PFN_vkAcquireDrmDisplayEXT>,
    #[cfg(feature = "vk_ext_acquire_drm_display")]
    pub vkGetDrmDisplayEXT: Option<PFN_vkGetDrmDisplayEXT>,
    #[cfg(feature = "vk_nv_optical_flow")]
    pub vkGetPhysicalDeviceOpticalFlowImageFormatsNV:
        Option<PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV>,
    #[cfg(feature = "vk_khr_cooperative_matrix")]
    pub vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR:
        Option<PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR>,
    #[cfg(feature = "vk_ext_cooperative_matrix_maintenance1")]
    pub vkGetPhysicalDeviceCooperativeMatrixProperties2EXT:
        Option<PFN_vkGetPhysicalDeviceCooperativeMatrixProperties2EXT>,
    #[cfg(feature = "vk_nv_cooperative_matrix2")]
    pub vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV:
        Option<PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV>,
    #[cfg(feature = "vk_nv_cooperative_vector")]
    pub vkGetPhysicalDeviceCooperativeVectorPropertiesNV:
        Option<PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV>,
    #[cfg(feature = "vk_arm_shader_instrumentation")]
    pub vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM:
        Option<PFN_vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM>,
    #[cfg(feature = "vk_arm_tensors")]
    pub vkGetPhysicalDeviceExternalTensorPropertiesARM:
        Option<PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM>,
    #[cfg(feature = "vk_arm_data_graph")]
    pub vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM:
        Option<PFN_vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM>,
    #[cfg(feature = "vk_arm_data_graph")]
    pub vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM:
        Option<PFN_vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM>,
    #[cfg(feature = "vk_arm_performance_counters_by_region")]
    pub vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM:
        Option<PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM>,
    #[cfg(feature = "vk_ext_descriptor_heap")]
    pub vkGetPhysicalDeviceDescriptorSizeEXT: Option<PFN_vkGetPhysicalDeviceDescriptorSizeEXT>,
    #[cfg(any(
        feature = "vk_arm_data_graph_instruction_set_tosa",
        feature = "vk_arm_data_graph_optical_flow"
    ))]
    pub vkGetPhysicalDeviceQueueFamilyDataGraphEngineOperationPropertiesARM:
        Option<PFN_vkGetPhysicalDeviceQueueFamilyDataGraphEngineOperationPropertiesARM>,
    #[cfg(feature = "vk_arm_data_graph_optical_flow")]
    pub vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM:
        Option<PFN_vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM>,
}

impl CmdsInstance {
    #[cfg(feature = "core_1_0")]
    pub unsafe fn load(
        library: &libloading::Library,
        instance: VkInstance,
    ) -> Result<Self, LoadError> {
        let get_instance_proc_addr = unsafe { load_get_instance_proc_addr(library)? };
        Ok(Self {
            #[cfg(feature = "core_1_0")]
            vkDestroyInstance: unsafe {
                load_instance_command(get_instance_proc_addr, instance, c"vkDestroyInstance")
            },
            #[cfg(feature = "core_1_0")]
            vkEnumeratePhysicalDevices: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkEnumeratePhysicalDevices",
                )
            },
            #[cfg(feature = "core_1_0")]
            vkGetDeviceProcAddr: unsafe {
                load_instance_command(get_instance_proc_addr, instance, c"vkGetDeviceProcAddr")
            },
            #[cfg(feature = "core_1_0")]
            vkGetPhysicalDeviceProperties: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceProperties",
                )
            },
            #[cfg(feature = "core_1_0")]
            vkGetPhysicalDeviceQueueFamilyProperties: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceQueueFamilyProperties",
                )
            },
            #[cfg(feature = "core_1_0")]
            vkGetPhysicalDeviceMemoryProperties: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceMemoryProperties",
                )
            },
            #[cfg(feature = "core_1_0")]
            vkGetPhysicalDeviceFeatures: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceFeatures",
                )
            },
            #[cfg(feature = "core_1_0")]
            vkGetPhysicalDeviceFormatProperties: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceFormatProperties",
                )
            },
            #[cfg(feature = "core_1_0")]
            vkGetPhysicalDeviceImageFormatProperties: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceImageFormatProperties",
                )
            },
            #[cfg(feature = "core_1_0")]
            vkCreateDevice: unsafe {
                load_instance_command(get_instance_proc_addr, instance, c"vkCreateDevice")
            },
            #[cfg(feature = "core_1_0")]
            vkEnumerateDeviceLayerProperties: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkEnumerateDeviceLayerProperties",
                )
            },
            #[cfg(feature = "core_1_0")]
            vkEnumerateDeviceExtensionProperties: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkEnumerateDeviceExtensionProperties",
                )
            },
            #[cfg(feature = "core_1_0")]
            vkGetPhysicalDeviceSparseImageFormatProperties: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceSparseImageFormatProperties",
                )
            },
            #[cfg(feature = "vk_khr_android_surface")]
            vkCreateAndroidSurfaceKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkCreateAndroidSurfaceKHR",
                )
            },
            #[cfg(feature = "vk_ohos_surface")]
            vkCreateSurfaceOHOS: unsafe {
                load_instance_command(get_instance_proc_addr, instance, c"vkCreateSurfaceOHOS")
            },
            #[cfg(feature = "vk_khr_display")]
            vkGetPhysicalDeviceDisplayPropertiesKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceDisplayPropertiesKHR",
                )
            },
            #[cfg(feature = "vk_khr_display")]
            vkGetPhysicalDeviceDisplayPlanePropertiesKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceDisplayPlanePropertiesKHR",
                )
            },
            #[cfg(feature = "vk_khr_display")]
            vkGetDisplayPlaneSupportedDisplaysKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetDisplayPlaneSupportedDisplaysKHR",
                )
            },
            #[cfg(feature = "vk_khr_display")]
            vkGetDisplayModePropertiesKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetDisplayModePropertiesKHR",
                )
            },
            #[cfg(feature = "vk_khr_display")]
            vkCreateDisplayModeKHR: unsafe {
                load_instance_command(get_instance_proc_addr, instance, c"vkCreateDisplayModeKHR")
            },
            #[cfg(feature = "vk_khr_display")]
            vkGetDisplayPlaneCapabilitiesKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetDisplayPlaneCapabilitiesKHR",
                )
            },
            #[cfg(feature = "vk_khr_display")]
            vkCreateDisplayPlaneSurfaceKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkCreateDisplayPlaneSurfaceKHR",
                )
            },
            #[cfg(feature = "vk_khr_surface")]
            vkDestroySurfaceKHR: unsafe {
                load_instance_command(get_instance_proc_addr, instance, c"vkDestroySurfaceKHR")
            },
            #[cfg(feature = "vk_khr_surface")]
            vkGetPhysicalDeviceSurfaceSupportKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceSurfaceSupportKHR",
                )
            },
            #[cfg(feature = "vk_khr_surface")]
            vkGetPhysicalDeviceSurfaceCapabilitiesKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceSurfaceCapabilitiesKHR",
                )
            },
            #[cfg(feature = "vk_khr_surface")]
            vkGetPhysicalDeviceSurfaceFormatsKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceSurfaceFormatsKHR",
                )
            },
            #[cfg(feature = "vk_khr_surface")]
            vkGetPhysicalDeviceSurfacePresentModesKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceSurfacePresentModesKHR",
                )
            },
            #[cfg(feature = "vk_nn_vi_surface")]
            vkCreateViSurfaceNN: unsafe {
                load_instance_command(get_instance_proc_addr, instance, c"vkCreateViSurfaceNN")
            },
            #[cfg(feature = "vk_khr_wayland_surface")]
            vkCreateWaylandSurfaceKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkCreateWaylandSurfaceKHR",
                )
            },
            #[cfg(feature = "vk_khr_wayland_surface")]
            vkGetPhysicalDeviceWaylandPresentationSupportKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceWaylandPresentationSupportKHR",
                )
            },
            #[cfg(feature = "vk_sec_ubm_surface")]
            vkCreateUbmSurfaceSEC: unsafe {
                load_instance_command(get_instance_proc_addr, instance, c"vkCreateUbmSurfaceSEC")
            },
            #[cfg(feature = "vk_sec_ubm_surface")]
            vkGetPhysicalDeviceUbmPresentationSupportSEC: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceUbmPresentationSupportSEC",
                )
            },
            #[cfg(feature = "vk_khr_win32_surface")]
            vkCreateWin32SurfaceKHR: unsafe {
                load_instance_command(get_instance_proc_addr, instance, c"vkCreateWin32SurfaceKHR")
            },
            #[cfg(feature = "vk_khr_win32_surface")]
            vkGetPhysicalDeviceWin32PresentationSupportKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceWin32PresentationSupportKHR",
                )
            },
            #[cfg(feature = "vk_khr_xlib_surface")]
            vkCreateXlibSurfaceKHR: unsafe {
                load_instance_command(get_instance_proc_addr, instance, c"vkCreateXlibSurfaceKHR")
            },
            #[cfg(feature = "vk_khr_xlib_surface")]
            vkGetPhysicalDeviceXlibPresentationSupportKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceXlibPresentationSupportKHR",
                )
            },
            #[cfg(feature = "vk_khr_xcb_surface")]
            vkCreateXcbSurfaceKHR: unsafe {
                load_instance_command(get_instance_proc_addr, instance, c"vkCreateXcbSurfaceKHR")
            },
            #[cfg(feature = "vk_khr_xcb_surface")]
            vkGetPhysicalDeviceXcbPresentationSupportKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceXcbPresentationSupportKHR",
                )
            },
            #[cfg(feature = "vk_ext_directfb_surface")]
            vkCreateDirectFBSurfaceEXT: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkCreateDirectFBSurfaceEXT",
                )
            },
            #[cfg(feature = "vk_ext_directfb_surface")]
            vkGetPhysicalDeviceDirectFBPresentationSupportEXT: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceDirectFBPresentationSupportEXT",
                )
            },
            #[cfg(feature = "vk_fuchsia_imagepipe_surface")]
            vkCreateImagePipeSurfaceFUCHSIA: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkCreateImagePipeSurfaceFUCHSIA",
                )
            },
            #[cfg(feature = "vk_ggp_stream_descriptor_surface")]
            vkCreateStreamDescriptorSurfaceGGP: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkCreateStreamDescriptorSurfaceGGP",
                )
            },
            #[cfg(feature = "vk_qnx_screen_surface")]
            vkCreateScreenSurfaceQNX: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkCreateScreenSurfaceQNX",
                )
            },
            #[cfg(feature = "vk_qnx_screen_surface")]
            vkGetPhysicalDeviceScreenPresentationSupportQNX: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceScreenPresentationSupportQNX",
                )
            },
            #[cfg(feature = "vk_ext_debug_report")]
            vkCreateDebugReportCallbackEXT: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkCreateDebugReportCallbackEXT",
                )
            },
            #[cfg(feature = "vk_ext_debug_report")]
            vkDestroyDebugReportCallbackEXT: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkDestroyDebugReportCallbackEXT",
                )
            },
            #[cfg(feature = "vk_ext_debug_report")]
            vkDebugReportMessageEXT: unsafe {
                load_instance_command(get_instance_proc_addr, instance, c"vkDebugReportMessageEXT")
            },
            #[cfg(feature = "vk_nv_external_memory_capabilities")]
            vkGetPhysicalDeviceExternalImageFormatPropertiesNV: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceExternalImageFormatPropertiesNV",
                )
            },
            #[cfg(feature = "core_1_1")]
            vkGetPhysicalDeviceFeatures2: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceFeatures2",
                )
            },
            #[cfg(feature = "vk_khr_get_physical_device_properties2")]
            vkGetPhysicalDeviceFeatures2KHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceFeatures2KHR",
                )
            },
            #[cfg(feature = "core_1_1")]
            vkGetPhysicalDeviceProperties2: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceProperties2",
                )
            },
            #[cfg(feature = "vk_khr_get_physical_device_properties2")]
            vkGetPhysicalDeviceProperties2KHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceProperties2KHR",
                )
            },
            #[cfg(feature = "core_1_1")]
            vkGetPhysicalDeviceFormatProperties2: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceFormatProperties2",
                )
            },
            #[cfg(feature = "vk_khr_get_physical_device_properties2")]
            vkGetPhysicalDeviceFormatProperties2KHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceFormatProperties2KHR",
                )
            },
            #[cfg(feature = "core_1_1")]
            vkGetPhysicalDeviceImageFormatProperties2: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceImageFormatProperties2",
                )
            },
            #[cfg(feature = "vk_khr_get_physical_device_properties2")]
            vkGetPhysicalDeviceImageFormatProperties2KHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceImageFormatProperties2KHR",
                )
            },
            #[cfg(feature = "core_1_1")]
            vkGetPhysicalDeviceQueueFamilyProperties2: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceQueueFamilyProperties2",
                )
            },
            #[cfg(feature = "vk_khr_get_physical_device_properties2")]
            vkGetPhysicalDeviceQueueFamilyProperties2KHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceQueueFamilyProperties2KHR",
                )
            },
            #[cfg(feature = "core_1_1")]
            vkGetPhysicalDeviceMemoryProperties2: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceMemoryProperties2",
                )
            },
            #[cfg(feature = "vk_khr_get_physical_device_properties2")]
            vkGetPhysicalDeviceMemoryProperties2KHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceMemoryProperties2KHR",
                )
            },
            #[cfg(feature = "core_1_1")]
            vkGetPhysicalDeviceSparseImageFormatProperties2: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceSparseImageFormatProperties2",
                )
            },
            #[cfg(feature = "vk_khr_get_physical_device_properties2")]
            vkGetPhysicalDeviceSparseImageFormatProperties2KHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceSparseImageFormatProperties2KHR",
                )
            },
            #[cfg(feature = "core_1_1")]
            vkGetPhysicalDeviceExternalBufferProperties: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceExternalBufferProperties",
                )
            },
            #[cfg(feature = "vk_khr_external_memory_capabilities")]
            vkGetPhysicalDeviceExternalBufferPropertiesKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceExternalBufferPropertiesKHR",
                )
            },
            #[cfg(feature = "core_1_1")]
            vkGetPhysicalDeviceExternalSemaphoreProperties: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceExternalSemaphoreProperties",
                )
            },
            #[cfg(feature = "vk_khr_external_semaphore_capabilities")]
            vkGetPhysicalDeviceExternalSemaphorePropertiesKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceExternalSemaphorePropertiesKHR",
                )
            },
            #[cfg(feature = "core_1_1")]
            vkGetPhysicalDeviceExternalFenceProperties: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceExternalFenceProperties",
                )
            },
            #[cfg(feature = "vk_khr_external_fence_capabilities")]
            vkGetPhysicalDeviceExternalFencePropertiesKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceExternalFencePropertiesKHR",
                )
            },
            #[cfg(feature = "vk_ext_direct_mode_display")]
            vkReleaseDisplayEXT: unsafe {
                load_instance_command(get_instance_proc_addr, instance, c"vkReleaseDisplayEXT")
            },
            #[cfg(feature = "vk_ext_acquire_xlib_display")]
            vkAcquireXlibDisplayEXT: unsafe {
                load_instance_command(get_instance_proc_addr, instance, c"vkAcquireXlibDisplayEXT")
            },
            #[cfg(feature = "vk_ext_acquire_xlib_display")]
            vkGetRandROutputDisplayEXT: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetRandROutputDisplayEXT",
                )
            },
            #[cfg(feature = "vk_nv_acquire_winrt_display")]
            vkAcquireWinrtDisplayNV: unsafe {
                load_instance_command(get_instance_proc_addr, instance, c"vkAcquireWinrtDisplayNV")
            },
            #[cfg(feature = "vk_nv_acquire_winrt_display")]
            vkGetWinrtDisplayNV: unsafe {
                load_instance_command(get_instance_proc_addr, instance, c"vkGetWinrtDisplayNV")
            },
            #[cfg(feature = "vk_ext_display_surface_counter")]
            vkGetPhysicalDeviceSurfaceCapabilities2EXT: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceSurfaceCapabilities2EXT",
                )
            },
            #[cfg(feature = "core_1_1")]
            vkEnumeratePhysicalDeviceGroups: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkEnumeratePhysicalDeviceGroups",
                )
            },
            #[cfg(feature = "vk_khr_device_group_creation")]
            vkEnumeratePhysicalDeviceGroupsKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkEnumeratePhysicalDeviceGroupsKHR",
                )
            },
            #[cfg(any(
                all(feature = "core_1_1", feature = "vk_khr_swapchain"),
                all(feature = "vk_khr_device_group", feature = "vk_khr_surface")
            ))]
            vkGetPhysicalDevicePresentRectanglesKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDevicePresentRectanglesKHR",
                )
            },
            #[cfg(feature = "vk_mvk_ios_surface")]
            vkCreateIOSSurfaceMVK: unsafe {
                load_instance_command(get_instance_proc_addr, instance, c"vkCreateIOSSurfaceMVK")
            },
            #[cfg(feature = "vk_mvk_macos_surface")]
            vkCreateMacOSSurfaceMVK: unsafe {
                load_instance_command(get_instance_proc_addr, instance, c"vkCreateMacOSSurfaceMVK")
            },
            #[cfg(feature = "vk_ext_metal_surface")]
            vkCreateMetalSurfaceEXT: unsafe {
                load_instance_command(get_instance_proc_addr, instance, c"vkCreateMetalSurfaceEXT")
            },
            #[cfg(feature = "vk_ext_sample_locations")]
            vkGetPhysicalDeviceMultisamplePropertiesEXT: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceMultisamplePropertiesEXT",
                )
            },
            #[cfg(feature = "vk_khr_get_surface_capabilities2")]
            vkGetPhysicalDeviceSurfaceCapabilities2KHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceSurfaceCapabilities2KHR",
                )
            },
            #[cfg(feature = "vk_khr_get_surface_capabilities2")]
            vkGetPhysicalDeviceSurfaceFormats2KHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceSurfaceFormats2KHR",
                )
            },
            #[cfg(feature = "vk_khr_get_display_properties2")]
            vkGetPhysicalDeviceDisplayProperties2KHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceDisplayProperties2KHR",
                )
            },
            #[cfg(feature = "vk_khr_get_display_properties2")]
            vkGetPhysicalDeviceDisplayPlaneProperties2KHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceDisplayPlaneProperties2KHR",
                )
            },
            #[cfg(feature = "vk_khr_get_display_properties2")]
            vkGetDisplayModeProperties2KHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetDisplayModeProperties2KHR",
                )
            },
            #[cfg(feature = "vk_khr_get_display_properties2")]
            vkGetDisplayPlaneCapabilities2KHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetDisplayPlaneCapabilities2KHR",
                )
            },
            #[cfg(feature = "vk_khr_calibrated_timestamps")]
            vkGetPhysicalDeviceCalibrateableTimeDomainsKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceCalibrateableTimeDomainsKHR",
                )
            },
            #[cfg(feature = "vk_ext_calibrated_timestamps")]
            vkGetPhysicalDeviceCalibrateableTimeDomainsEXT: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceCalibrateableTimeDomainsEXT",
                )
            },
            #[cfg(feature = "vk_ext_debug_utils")]
            vkCreateDebugUtilsMessengerEXT: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkCreateDebugUtilsMessengerEXT",
                )
            },
            #[cfg(feature = "vk_ext_debug_utils")]
            vkDestroyDebugUtilsMessengerEXT: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkDestroyDebugUtilsMessengerEXT",
                )
            },
            #[cfg(feature = "vk_ext_debug_utils")]
            vkSubmitDebugUtilsMessageEXT: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkSubmitDebugUtilsMessageEXT",
                )
            },
            #[cfg(feature = "vk_nv_cooperative_matrix")]
            vkGetPhysicalDeviceCooperativeMatrixPropertiesNV: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceCooperativeMatrixPropertiesNV",
                )
            },
            #[cfg(feature = "vk_ext_full_screen_exclusive")]
            vkGetPhysicalDeviceSurfacePresentModes2EXT: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceSurfacePresentModes2EXT",
                )
            },
            #[cfg(feature = "vk_khr_performance_query")]
            vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR",
                )
            },
            #[cfg(feature = "vk_khr_performance_query")]
            vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR",
                )
            },
            #[cfg(feature = "vk_ext_headless_surface")]
            vkCreateHeadlessSurfaceEXT: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkCreateHeadlessSurfaceEXT",
                )
            },
            #[cfg(feature = "vk_nv_coverage_reduction_mode")]
            vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV",
                )
            },
            #[cfg(feature = "core_1_3")]
            vkGetPhysicalDeviceToolProperties: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceToolProperties",
                )
            },
            #[cfg(feature = "vk_ext_tooling_info")]
            vkGetPhysicalDeviceToolPropertiesEXT: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceToolPropertiesEXT",
                )
            },
            #[cfg(feature = "vk_khr_fragment_shading_rate")]
            vkGetPhysicalDeviceFragmentShadingRatesKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceFragmentShadingRatesKHR",
                )
            },
            #[cfg(feature = "vk_khr_video_queue")]
            vkGetPhysicalDeviceVideoCapabilitiesKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceVideoCapabilitiesKHR",
                )
            },
            #[cfg(feature = "vk_khr_video_queue")]
            vkGetPhysicalDeviceVideoFormatPropertiesKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceVideoFormatPropertiesKHR",
                )
            },
            #[cfg(feature = "vk_khr_video_encode_queue")]
            vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR",
                )
            },
            #[cfg(feature = "vk_ext_acquire_drm_display")]
            vkAcquireDrmDisplayEXT: unsafe {
                load_instance_command(get_instance_proc_addr, instance, c"vkAcquireDrmDisplayEXT")
            },
            #[cfg(feature = "vk_ext_acquire_drm_display")]
            vkGetDrmDisplayEXT: unsafe {
                load_instance_command(get_instance_proc_addr, instance, c"vkGetDrmDisplayEXT")
            },
            #[cfg(feature = "vk_nv_optical_flow")]
            vkGetPhysicalDeviceOpticalFlowImageFormatsNV: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceOpticalFlowImageFormatsNV",
                )
            },
            #[cfg(feature = "vk_khr_cooperative_matrix")]
            vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR",
                )
            },
            #[cfg(feature = "vk_ext_cooperative_matrix_maintenance1")]
            vkGetPhysicalDeviceCooperativeMatrixProperties2EXT: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceCooperativeMatrixProperties2EXT",
                )
            },
            #[cfg(feature = "vk_nv_cooperative_matrix2")]
            vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV",
                )
            },
            #[cfg(feature = "vk_nv_cooperative_vector")]
            vkGetPhysicalDeviceCooperativeVectorPropertiesNV: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceCooperativeVectorPropertiesNV",
                )
            },
            #[cfg(feature = "vk_arm_shader_instrumentation")]
            vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM",
                )
            },
            #[cfg(feature = "vk_arm_tensors")]
            vkGetPhysicalDeviceExternalTensorPropertiesARM: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceExternalTensorPropertiesARM",
                )
            },
            #[cfg(feature = "vk_arm_data_graph")]
            vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM",
                )
            },
            #[cfg(feature = "vk_arm_data_graph")]
            vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM",
                )
            },
            #[cfg(feature = "vk_arm_performance_counters_by_region")]
            vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM",
                )
            },
            #[cfg(feature = "vk_ext_descriptor_heap")]
            vkGetPhysicalDeviceDescriptorSizeEXT: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceDescriptorSizeEXT",
                )
            },
            #[cfg(any(
                feature = "vk_arm_data_graph_instruction_set_tosa",
                feature = "vk_arm_data_graph_optical_flow"
            ))]
            vkGetPhysicalDeviceQueueFamilyDataGraphEngineOperationPropertiesARM: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceQueueFamilyDataGraphEngineOperationPropertiesARM",
                )
            },
            #[cfg(feature = "vk_arm_data_graph_optical_flow")]
            vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM: unsafe {
                load_instance_command(
                    get_instance_proc_addr,
                    instance,
                    c"vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM",
                )
            },
        })
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkDestroyInstance(
        &self,
        instance: VkInstance,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyInstance
                .expect("Vulkan command vkDestroyInstance is not loaded"))(
                instance, pAllocator
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkEnumeratePhysicalDevices(
        &self,
        instance: VkInstance,
        pPhysicalDeviceCount: *mut u32,
        pPhysicalDevices: *mut VkPhysicalDevice,
    ) -> VkResult {
        unsafe {
            (self
                .vkEnumeratePhysicalDevices
                .expect("Vulkan command vkEnumeratePhysicalDevices is not loaded"))(
                instance,
                pPhysicalDeviceCount,
                pPhysicalDevices,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkGetDeviceProcAddr(
        &self,
        device: VkDevice,
        pName: *const c_char,
    ) -> PFN_vkVoidFunction {
        unsafe {
            (self
                .vkGetDeviceProcAddr
                .expect("Vulkan command vkGetDeviceProcAddr is not loaded"))(
                device, pName
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkGetPhysicalDeviceProperties(
        &self,
        physicalDevice: VkPhysicalDevice,
        pProperties: *mut VkPhysicalDeviceProperties,
    ) {
        unsafe {
            (self
                .vkGetPhysicalDeviceProperties
                .expect("Vulkan command vkGetPhysicalDeviceProperties is not loaded"))(
                physicalDevice,
                pProperties,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkGetPhysicalDeviceQueueFamilyProperties(
        &self,
        physicalDevice: VkPhysicalDevice,
        pQueueFamilyPropertyCount: *mut u32,
        pQueueFamilyProperties: *mut VkQueueFamilyProperties,
    ) {
        unsafe {
            (self
                .vkGetPhysicalDeviceQueueFamilyProperties
                .expect("Vulkan command vkGetPhysicalDeviceQueueFamilyProperties is not loaded"))(
                physicalDevice,
                pQueueFamilyPropertyCount,
                pQueueFamilyProperties,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkGetPhysicalDeviceMemoryProperties(
        &self,
        physicalDevice: VkPhysicalDevice,
        pMemoryProperties: *mut VkPhysicalDeviceMemoryProperties,
    ) {
        unsafe {
            (self
                .vkGetPhysicalDeviceMemoryProperties
                .expect("Vulkan command vkGetPhysicalDeviceMemoryProperties is not loaded"))(
                physicalDevice,
                pMemoryProperties,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkGetPhysicalDeviceFeatures(
        &self,
        physicalDevice: VkPhysicalDevice,
        pFeatures: *mut VkPhysicalDeviceFeatures,
    ) {
        unsafe {
            (self
                .vkGetPhysicalDeviceFeatures
                .expect("Vulkan command vkGetPhysicalDeviceFeatures is not loaded"))(
                physicalDevice,
                pFeatures,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkGetPhysicalDeviceFormatProperties(
        &self,
        physicalDevice: VkPhysicalDevice,
        format: VkFormat,
        pFormatProperties: *mut VkFormatProperties,
    ) {
        unsafe {
            (self
                .vkGetPhysicalDeviceFormatProperties
                .expect("Vulkan command vkGetPhysicalDeviceFormatProperties is not loaded"))(
                physicalDevice,
                format,
                pFormatProperties,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkGetPhysicalDeviceImageFormatProperties(
        &self,
        physicalDevice: VkPhysicalDevice,
        format: VkFormat,
        r#type: VkImageType,
        tiling: VkImageTiling,
        usage: VkImageUsageFlags,
        flags: VkImageCreateFlags,
        pImageFormatProperties: *mut VkImageFormatProperties,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPhysicalDeviceImageFormatProperties
                .expect("Vulkan command vkGetPhysicalDeviceImageFormatProperties is not loaded"))(
                physicalDevice,
                format,
                r#type,
                tiling,
                usage,
                flags,
                pImageFormatProperties,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCreateDevice(
        &self,
        physicalDevice: VkPhysicalDevice,
        pCreateInfo: *const VkDeviceCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pDevice: *mut VkDevice,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateDevice
                .expect("Vulkan command vkCreateDevice is not loaded"))(
                physicalDevice,
                pCreateInfo,
                pAllocator,
                pDevice,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkEnumerateDeviceLayerProperties(
        &self,
        physicalDevice: VkPhysicalDevice,
        pPropertyCount: *mut u32,
        pProperties: *mut VkLayerProperties,
    ) -> VkResult {
        unsafe {
            (self
                .vkEnumerateDeviceLayerProperties
                .expect("Vulkan command vkEnumerateDeviceLayerProperties is not loaded"))(
                physicalDevice,
                pPropertyCount,
                pProperties,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkEnumerateDeviceExtensionProperties(
        &self,
        physicalDevice: VkPhysicalDevice,
        pLayerName: *const c_char,
        pPropertyCount: *mut u32,
        pProperties: *mut VkExtensionProperties,
    ) -> VkResult {
        unsafe {
            (self
                .vkEnumerateDeviceExtensionProperties
                .expect("Vulkan command vkEnumerateDeviceExtensionProperties is not loaded"))(
                physicalDevice,
                pLayerName,
                pPropertyCount,
                pProperties,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkGetPhysicalDeviceSparseImageFormatProperties(
        &self,
        physicalDevice: VkPhysicalDevice,
        format: VkFormat,
        r#type: VkImageType,
        samples: VkSampleCountFlagBits,
        usage: VkImageUsageFlags,
        tiling: VkImageTiling,
        pPropertyCount: *mut u32,
        pProperties: *mut VkSparseImageFormatProperties,
    ) {
        unsafe {
            (self.vkGetPhysicalDeviceSparseImageFormatProperties.expect(
                "Vulkan command vkGetPhysicalDeviceSparseImageFormatProperties is not loaded",
            ))(
                physicalDevice,
                format,
                r#type,
                samples,
                usage,
                tiling,
                pPropertyCount,
                pProperties,
            )
        }
    }
    #[cfg(feature = "vk_khr_android_surface")]
    pub unsafe fn vkCreateAndroidSurfaceKHR(
        &self,
        instance: VkInstance,
        pCreateInfo: *const VkAndroidSurfaceCreateInfoKHR,
        pAllocator: *const VkAllocationCallbacks,
        pSurface: *mut VkSurfaceKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateAndroidSurfaceKHR
                .expect("Vulkan command vkCreateAndroidSurfaceKHR is not loaded"))(
                instance,
                pCreateInfo,
                pAllocator,
                pSurface,
            )
        }
    }
    #[cfg(feature = "vk_ohos_surface")]
    pub unsafe fn vkCreateSurfaceOHOS(
        &self,
        instance: VkInstance,
        pCreateInfo: *const VkSurfaceCreateInfoOHOS,
        pAllocator: *const VkAllocationCallbacks,
        pSurface: *mut VkSurfaceKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateSurfaceOHOS
                .expect("Vulkan command vkCreateSurfaceOHOS is not loaded"))(
                instance,
                pCreateInfo,
                pAllocator,
                pSurface,
            )
        }
    }
    #[cfg(feature = "vk_khr_display")]
    pub unsafe fn vkGetPhysicalDeviceDisplayPropertiesKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        pPropertyCount: *mut u32,
        pProperties: *mut VkDisplayPropertiesKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPhysicalDeviceDisplayPropertiesKHR
                .expect("Vulkan command vkGetPhysicalDeviceDisplayPropertiesKHR is not loaded"))(
                physicalDevice,
                pPropertyCount,
                pProperties,
            )
        }
    }
    #[cfg(feature = "vk_khr_display")]
    pub unsafe fn vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        pPropertyCount: *mut u32,
        pProperties: *mut VkDisplayPlanePropertiesKHR,
    ) -> VkResult {
        unsafe {
            (self.vkGetPhysicalDeviceDisplayPlanePropertiesKHR.expect(
                "Vulkan command vkGetPhysicalDeviceDisplayPlanePropertiesKHR is not loaded",
            ))(physicalDevice, pPropertyCount, pProperties)
        }
    }
    #[cfg(feature = "vk_khr_display")]
    pub unsafe fn vkGetDisplayPlaneSupportedDisplaysKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        planeIndex: u32,
        pDisplayCount: *mut u32,
        pDisplays: *mut VkDisplayKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetDisplayPlaneSupportedDisplaysKHR
                .expect("Vulkan command vkGetDisplayPlaneSupportedDisplaysKHR is not loaded"))(
                physicalDevice,
                planeIndex,
                pDisplayCount,
                pDisplays,
            )
        }
    }
    #[cfg(feature = "vk_khr_display")]
    pub unsafe fn vkGetDisplayModePropertiesKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        display: VkDisplayKHR,
        pPropertyCount: *mut u32,
        pProperties: *mut VkDisplayModePropertiesKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetDisplayModePropertiesKHR
                .expect("Vulkan command vkGetDisplayModePropertiesKHR is not loaded"))(
                physicalDevice,
                display,
                pPropertyCount,
                pProperties,
            )
        }
    }
    #[cfg(feature = "vk_khr_display")]
    pub unsafe fn vkCreateDisplayModeKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        display: VkDisplayKHR,
        pCreateInfo: *const VkDisplayModeCreateInfoKHR,
        pAllocator: *const VkAllocationCallbacks,
        pMode: *mut VkDisplayModeKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateDisplayModeKHR
                .expect("Vulkan command vkCreateDisplayModeKHR is not loaded"))(
                physicalDevice,
                display,
                pCreateInfo,
                pAllocator,
                pMode,
            )
        }
    }
    #[cfg(feature = "vk_khr_display")]
    pub unsafe fn vkGetDisplayPlaneCapabilitiesKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        mode: VkDisplayModeKHR,
        planeIndex: u32,
        pCapabilities: *mut VkDisplayPlaneCapabilitiesKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetDisplayPlaneCapabilitiesKHR
                .expect("Vulkan command vkGetDisplayPlaneCapabilitiesKHR is not loaded"))(
                physicalDevice,
                mode,
                planeIndex,
                pCapabilities,
            )
        }
    }
    #[cfg(feature = "vk_khr_display")]
    pub unsafe fn vkCreateDisplayPlaneSurfaceKHR(
        &self,
        instance: VkInstance,
        pCreateInfo: *const VkDisplaySurfaceCreateInfoKHR,
        pAllocator: *const VkAllocationCallbacks,
        pSurface: *mut VkSurfaceKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateDisplayPlaneSurfaceKHR
                .expect("Vulkan command vkCreateDisplayPlaneSurfaceKHR is not loaded"))(
                instance,
                pCreateInfo,
                pAllocator,
                pSurface,
            )
        }
    }
    #[cfg(feature = "vk_khr_surface")]
    pub unsafe fn vkDestroySurfaceKHR(
        &self,
        instance: VkInstance,
        surface: VkSurfaceKHR,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroySurfaceKHR
                .expect("Vulkan command vkDestroySurfaceKHR is not loaded"))(
                instance, surface, pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_khr_surface")]
    pub unsafe fn vkGetPhysicalDeviceSurfaceSupportKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        queueFamilyIndex: u32,
        surface: VkSurfaceKHR,
        pSupported: *mut VkBool32,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPhysicalDeviceSurfaceSupportKHR
                .expect("Vulkan command vkGetPhysicalDeviceSurfaceSupportKHR is not loaded"))(
                physicalDevice,
                queueFamilyIndex,
                surface,
                pSupported,
            )
        }
    }
    #[cfg(feature = "vk_khr_surface")]
    pub unsafe fn vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        surface: VkSurfaceKHR,
        pSurfaceCapabilities: *mut VkSurfaceCapabilitiesKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPhysicalDeviceSurfaceCapabilitiesKHR
                .expect("Vulkan command vkGetPhysicalDeviceSurfaceCapabilitiesKHR is not loaded"))(
                physicalDevice,
                surface,
                pSurfaceCapabilities,
            )
        }
    }
    #[cfg(feature = "vk_khr_surface")]
    pub unsafe fn vkGetPhysicalDeviceSurfaceFormatsKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        surface: VkSurfaceKHR,
        pSurfaceFormatCount: *mut u32,
        pSurfaceFormats: *mut VkSurfaceFormatKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPhysicalDeviceSurfaceFormatsKHR
                .expect("Vulkan command vkGetPhysicalDeviceSurfaceFormatsKHR is not loaded"))(
                physicalDevice,
                surface,
                pSurfaceFormatCount,
                pSurfaceFormats,
            )
        }
    }
    #[cfg(feature = "vk_khr_surface")]
    pub unsafe fn vkGetPhysicalDeviceSurfacePresentModesKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        surface: VkSurfaceKHR,
        pPresentModeCount: *mut u32,
        pPresentModes: *mut VkPresentModeKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPhysicalDeviceSurfacePresentModesKHR
                .expect("Vulkan command vkGetPhysicalDeviceSurfacePresentModesKHR is not loaded"))(
                physicalDevice,
                surface,
                pPresentModeCount,
                pPresentModes,
            )
        }
    }
    #[cfg(feature = "vk_nn_vi_surface")]
    pub unsafe fn vkCreateViSurfaceNN(
        &self,
        instance: VkInstance,
        pCreateInfo: *const VkViSurfaceCreateInfoNN,
        pAllocator: *const VkAllocationCallbacks,
        pSurface: *mut VkSurfaceKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateViSurfaceNN
                .expect("Vulkan command vkCreateViSurfaceNN is not loaded"))(
                instance,
                pCreateInfo,
                pAllocator,
                pSurface,
            )
        }
    }
    #[cfg(feature = "vk_khr_wayland_surface")]
    pub unsafe fn vkCreateWaylandSurfaceKHR(
        &self,
        instance: VkInstance,
        pCreateInfo: *const VkWaylandSurfaceCreateInfoKHR,
        pAllocator: *const VkAllocationCallbacks,
        pSurface: *mut VkSurfaceKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateWaylandSurfaceKHR
                .expect("Vulkan command vkCreateWaylandSurfaceKHR is not loaded"))(
                instance,
                pCreateInfo,
                pAllocator,
                pSurface,
            )
        }
    }
    #[cfg(feature = "vk_khr_wayland_surface")]
    pub unsafe fn vkGetPhysicalDeviceWaylandPresentationSupportKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        queueFamilyIndex: u32,
        display: *mut wl_display,
    ) -> VkBool32 {
        unsafe {
            (self
                .vkGetPhysicalDeviceWaylandPresentationSupportKHR
                .expect(
                    "Vulkan command vkGetPhysicalDeviceWaylandPresentationSupportKHR is not loaded",
                ))(physicalDevice, queueFamilyIndex, display)
        }
    }
    #[cfg(feature = "vk_sec_ubm_surface")]
    pub unsafe fn vkCreateUbmSurfaceSEC(
        &self,
        instance: VkInstance,
        pCreateInfo: *const VkUbmSurfaceCreateInfoSEC,
        pAllocator: *const VkAllocationCallbacks,
        pSurface: *mut VkSurfaceKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateUbmSurfaceSEC
                .expect("Vulkan command vkCreateUbmSurfaceSEC is not loaded"))(
                instance,
                pCreateInfo,
                pAllocator,
                pSurface,
            )
        }
    }
    #[cfg(feature = "vk_sec_ubm_surface")]
    pub unsafe fn vkGetPhysicalDeviceUbmPresentationSupportSEC(
        &self,
        physicalDevice: VkPhysicalDevice,
        queueFamilyIndex: u32,
        device: *mut ubm_device,
    ) -> VkBool32 {
        unsafe {
            (self.vkGetPhysicalDeviceUbmPresentationSupportSEC.expect(
                "Vulkan command vkGetPhysicalDeviceUbmPresentationSupportSEC is not loaded",
            ))(physicalDevice, queueFamilyIndex, device)
        }
    }
    #[cfg(feature = "vk_khr_win32_surface")]
    pub unsafe fn vkCreateWin32SurfaceKHR(
        &self,
        instance: VkInstance,
        pCreateInfo: *const VkWin32SurfaceCreateInfoKHR,
        pAllocator: *const VkAllocationCallbacks,
        pSurface: *mut VkSurfaceKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateWin32SurfaceKHR
                .expect("Vulkan command vkCreateWin32SurfaceKHR is not loaded"))(
                instance,
                pCreateInfo,
                pAllocator,
                pSurface,
            )
        }
    }
    #[cfg(feature = "vk_khr_win32_surface")]
    pub unsafe fn vkGetPhysicalDeviceWin32PresentationSupportKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        queueFamilyIndex: u32,
    ) -> VkBool32 {
        unsafe {
            (self.vkGetPhysicalDeviceWin32PresentationSupportKHR.expect(
                "Vulkan command vkGetPhysicalDeviceWin32PresentationSupportKHR is not loaded",
            ))(physicalDevice, queueFamilyIndex)
        }
    }
    #[cfg(feature = "vk_khr_xlib_surface")]
    pub unsafe fn vkCreateXlibSurfaceKHR(
        &self,
        instance: VkInstance,
        pCreateInfo: *const VkXlibSurfaceCreateInfoKHR,
        pAllocator: *const VkAllocationCallbacks,
        pSurface: *mut VkSurfaceKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateXlibSurfaceKHR
                .expect("Vulkan command vkCreateXlibSurfaceKHR is not loaded"))(
                instance,
                pCreateInfo,
                pAllocator,
                pSurface,
            )
        }
    }
    #[cfg(feature = "vk_khr_xlib_surface")]
    pub unsafe fn vkGetPhysicalDeviceXlibPresentationSupportKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        queueFamilyIndex: u32,
        dpy: *mut Display,
        visualID: VisualID,
    ) -> VkBool32 {
        unsafe {
            (self.vkGetPhysicalDeviceXlibPresentationSupportKHR.expect(
                "Vulkan command vkGetPhysicalDeviceXlibPresentationSupportKHR is not loaded",
            ))(physicalDevice, queueFamilyIndex, dpy, visualID)
        }
    }
    #[cfg(feature = "vk_khr_xcb_surface")]
    pub unsafe fn vkCreateXcbSurfaceKHR(
        &self,
        instance: VkInstance,
        pCreateInfo: *const VkXcbSurfaceCreateInfoKHR,
        pAllocator: *const VkAllocationCallbacks,
        pSurface: *mut VkSurfaceKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateXcbSurfaceKHR
                .expect("Vulkan command vkCreateXcbSurfaceKHR is not loaded"))(
                instance,
                pCreateInfo,
                pAllocator,
                pSurface,
            )
        }
    }
    #[cfg(feature = "vk_khr_xcb_surface")]
    pub unsafe fn vkGetPhysicalDeviceXcbPresentationSupportKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        queueFamilyIndex: u32,
        connection: *mut xcb_connection_t,
        visual_id: xcb_visualid_t,
    ) -> VkBool32 {
        unsafe {
            (self.vkGetPhysicalDeviceXcbPresentationSupportKHR.expect(
                "Vulkan command vkGetPhysicalDeviceXcbPresentationSupportKHR is not loaded",
            ))(physicalDevice, queueFamilyIndex, connection, visual_id)
        }
    }
    #[cfg(feature = "vk_ext_directfb_surface")]
    pub unsafe fn vkCreateDirectFBSurfaceEXT(
        &self,
        instance: VkInstance,
        pCreateInfo: *const VkDirectFBSurfaceCreateInfoEXT,
        pAllocator: *const VkAllocationCallbacks,
        pSurface: *mut VkSurfaceKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateDirectFBSurfaceEXT
                .expect("Vulkan command vkCreateDirectFBSurfaceEXT is not loaded"))(
                instance,
                pCreateInfo,
                pAllocator,
                pSurface,
            )
        }
    }
    #[cfg(feature = "vk_ext_directfb_surface")]
    pub unsafe fn vkGetPhysicalDeviceDirectFBPresentationSupportEXT(
        &self,
        physicalDevice: VkPhysicalDevice,
        queueFamilyIndex: u32,
        dfb: *mut IDirectFB,
    ) -> VkBool32 {
        unsafe {
            (self.vkGetPhysicalDeviceDirectFBPresentationSupportEXT.expect("Vulkan command vkGetPhysicalDeviceDirectFBPresentationSupportEXT is not loaded"))(physicalDevice, queueFamilyIndex, dfb)
        }
    }
    #[cfg(feature = "vk_fuchsia_imagepipe_surface")]
    pub unsafe fn vkCreateImagePipeSurfaceFUCHSIA(
        &self,
        instance: VkInstance,
        pCreateInfo: *const VkImagePipeSurfaceCreateInfoFUCHSIA,
        pAllocator: *const VkAllocationCallbacks,
        pSurface: *mut VkSurfaceKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateImagePipeSurfaceFUCHSIA
                .expect("Vulkan command vkCreateImagePipeSurfaceFUCHSIA is not loaded"))(
                instance,
                pCreateInfo,
                pAllocator,
                pSurface,
            )
        }
    }
    #[cfg(feature = "vk_ggp_stream_descriptor_surface")]
    pub unsafe fn vkCreateStreamDescriptorSurfaceGGP(
        &self,
        instance: VkInstance,
        pCreateInfo: *const VkStreamDescriptorSurfaceCreateInfoGGP,
        pAllocator: *const VkAllocationCallbacks,
        pSurface: *mut VkSurfaceKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateStreamDescriptorSurfaceGGP
                .expect("Vulkan command vkCreateStreamDescriptorSurfaceGGP is not loaded"))(
                instance,
                pCreateInfo,
                pAllocator,
                pSurface,
            )
        }
    }
    #[cfg(feature = "vk_qnx_screen_surface")]
    pub unsafe fn vkCreateScreenSurfaceQNX(
        &self,
        instance: VkInstance,
        pCreateInfo: *const VkScreenSurfaceCreateInfoQNX,
        pAllocator: *const VkAllocationCallbacks,
        pSurface: *mut VkSurfaceKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateScreenSurfaceQNX
                .expect("Vulkan command vkCreateScreenSurfaceQNX is not loaded"))(
                instance,
                pCreateInfo,
                pAllocator,
                pSurface,
            )
        }
    }
    #[cfg(feature = "vk_qnx_screen_surface")]
    pub unsafe fn vkGetPhysicalDeviceScreenPresentationSupportQNX(
        &self,
        physicalDevice: VkPhysicalDevice,
        queueFamilyIndex: u32,
        window: *mut _screen_window,
    ) -> VkBool32 {
        unsafe {
            (self.vkGetPhysicalDeviceScreenPresentationSupportQNX.expect(
                "Vulkan command vkGetPhysicalDeviceScreenPresentationSupportQNX is not loaded",
            ))(physicalDevice, queueFamilyIndex, window)
        }
    }
    #[cfg(feature = "vk_ext_debug_report")]
    pub unsafe fn vkCreateDebugReportCallbackEXT(
        &self,
        instance: VkInstance,
        pCreateInfo: *const VkDebugReportCallbackCreateInfoEXT,
        pAllocator: *const VkAllocationCallbacks,
        pCallback: *mut VkDebugReportCallbackEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateDebugReportCallbackEXT
                .expect("Vulkan command vkCreateDebugReportCallbackEXT is not loaded"))(
                instance,
                pCreateInfo,
                pAllocator,
                pCallback,
            )
        }
    }
    #[cfg(feature = "vk_ext_debug_report")]
    pub unsafe fn vkDestroyDebugReportCallbackEXT(
        &self,
        instance: VkInstance,
        callback: VkDebugReportCallbackEXT,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyDebugReportCallbackEXT
                .expect("Vulkan command vkDestroyDebugReportCallbackEXT is not loaded"))(
                instance, callback, pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_ext_debug_report")]
    pub unsafe fn vkDebugReportMessageEXT(
        &self,
        instance: VkInstance,
        flags: VkDebugReportFlagsEXT,
        objectType: VkDebugReportObjectTypeEXT,
        object: u64,
        location: usize,
        messageCode: i32,
        pLayerPrefix: *const c_char,
        pMessage: *const c_char,
    ) {
        unsafe {
            (self
                .vkDebugReportMessageEXT
                .expect("Vulkan command vkDebugReportMessageEXT is not loaded"))(
                instance,
                flags,
                objectType,
                object,
                location,
                messageCode,
                pLayerPrefix,
                pMessage,
            )
        }
    }
    #[cfg(feature = "vk_nv_external_memory_capabilities")]
    pub unsafe fn vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
        &self,
        physicalDevice: VkPhysicalDevice,
        format: VkFormat,
        r#type: VkImageType,
        tiling: VkImageTiling,
        usage: VkImageUsageFlags,
        flags: VkImageCreateFlags,
        externalHandleType: VkExternalMemoryHandleTypeFlagsNV,
        pExternalImageFormatProperties: *mut VkExternalImageFormatPropertiesNV,
    ) -> VkResult {
        unsafe {
            (self.vkGetPhysicalDeviceExternalImageFormatPropertiesNV.expect("Vulkan command vkGetPhysicalDeviceExternalImageFormatPropertiesNV is not loaded"))(physicalDevice, format, r#type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties)
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkGetPhysicalDeviceFeatures2(
        &self,
        physicalDevice: VkPhysicalDevice,
        pFeatures: *mut VkPhysicalDeviceFeatures2,
    ) {
        unsafe {
            (self
                .vkGetPhysicalDeviceFeatures2
                .expect("Vulkan command vkGetPhysicalDeviceFeatures2 is not loaded"))(
                physicalDevice,
                pFeatures,
            )
        }
    }
    #[cfg(feature = "vk_khr_get_physical_device_properties2")]
    pub unsafe fn vkGetPhysicalDeviceFeatures2KHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        pFeatures: *mut VkPhysicalDeviceFeatures2,
    ) {
        unsafe {
            (self
                .vkGetPhysicalDeviceFeatures2KHR
                .expect("Vulkan command vkGetPhysicalDeviceFeatures2KHR is not loaded"))(
                physicalDevice,
                pFeatures,
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkGetPhysicalDeviceProperties2(
        &self,
        physicalDevice: VkPhysicalDevice,
        pProperties: *mut VkPhysicalDeviceProperties2,
    ) {
        unsafe {
            (self
                .vkGetPhysicalDeviceProperties2
                .expect("Vulkan command vkGetPhysicalDeviceProperties2 is not loaded"))(
                physicalDevice,
                pProperties,
            )
        }
    }
    #[cfg(feature = "vk_khr_get_physical_device_properties2")]
    pub unsafe fn vkGetPhysicalDeviceProperties2KHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        pProperties: *mut VkPhysicalDeviceProperties2,
    ) {
        unsafe {
            (self
                .vkGetPhysicalDeviceProperties2KHR
                .expect("Vulkan command vkGetPhysicalDeviceProperties2KHR is not loaded"))(
                physicalDevice,
                pProperties,
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkGetPhysicalDeviceFormatProperties2(
        &self,
        physicalDevice: VkPhysicalDevice,
        format: VkFormat,
        pFormatProperties: *mut VkFormatProperties2,
    ) {
        unsafe {
            (self
                .vkGetPhysicalDeviceFormatProperties2
                .expect("Vulkan command vkGetPhysicalDeviceFormatProperties2 is not loaded"))(
                physicalDevice,
                format,
                pFormatProperties,
            )
        }
    }
    #[cfg(feature = "vk_khr_get_physical_device_properties2")]
    pub unsafe fn vkGetPhysicalDeviceFormatProperties2KHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        format: VkFormat,
        pFormatProperties: *mut VkFormatProperties2,
    ) {
        unsafe {
            (self
                .vkGetPhysicalDeviceFormatProperties2KHR
                .expect("Vulkan command vkGetPhysicalDeviceFormatProperties2KHR is not loaded"))(
                physicalDevice,
                format,
                pFormatProperties,
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkGetPhysicalDeviceImageFormatProperties2(
        &self,
        physicalDevice: VkPhysicalDevice,
        pImageFormatInfo: *const VkPhysicalDeviceImageFormatInfo2,
        pImageFormatProperties: *mut VkImageFormatProperties2,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPhysicalDeviceImageFormatProperties2
                .expect("Vulkan command vkGetPhysicalDeviceImageFormatProperties2 is not loaded"))(
                physicalDevice,
                pImageFormatInfo,
                pImageFormatProperties,
            )
        }
    }
    #[cfg(feature = "vk_khr_get_physical_device_properties2")]
    pub unsafe fn vkGetPhysicalDeviceImageFormatProperties2KHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        pImageFormatInfo: *const VkPhysicalDeviceImageFormatInfo2,
        pImageFormatProperties: *mut VkImageFormatProperties2,
    ) -> VkResult {
        unsafe {
            (self.vkGetPhysicalDeviceImageFormatProperties2KHR.expect(
                "Vulkan command vkGetPhysicalDeviceImageFormatProperties2KHR is not loaded",
            ))(physicalDevice, pImageFormatInfo, pImageFormatProperties)
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkGetPhysicalDeviceQueueFamilyProperties2(
        &self,
        physicalDevice: VkPhysicalDevice,
        pQueueFamilyPropertyCount: *mut u32,
        pQueueFamilyProperties: *mut VkQueueFamilyProperties2,
    ) {
        unsafe {
            (self
                .vkGetPhysicalDeviceQueueFamilyProperties2
                .expect("Vulkan command vkGetPhysicalDeviceQueueFamilyProperties2 is not loaded"))(
                physicalDevice,
                pQueueFamilyPropertyCount,
                pQueueFamilyProperties,
            )
        }
    }
    #[cfg(feature = "vk_khr_get_physical_device_properties2")]
    pub unsafe fn vkGetPhysicalDeviceQueueFamilyProperties2KHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        pQueueFamilyPropertyCount: *mut u32,
        pQueueFamilyProperties: *mut VkQueueFamilyProperties2,
    ) {
        unsafe {
            (self.vkGetPhysicalDeviceQueueFamilyProperties2KHR.expect(
                "Vulkan command vkGetPhysicalDeviceQueueFamilyProperties2KHR is not loaded",
            ))(
                physicalDevice,
                pQueueFamilyPropertyCount,
                pQueueFamilyProperties,
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkGetPhysicalDeviceMemoryProperties2(
        &self,
        physicalDevice: VkPhysicalDevice,
        pMemoryProperties: *mut VkPhysicalDeviceMemoryProperties2,
    ) {
        unsafe {
            (self
                .vkGetPhysicalDeviceMemoryProperties2
                .expect("Vulkan command vkGetPhysicalDeviceMemoryProperties2 is not loaded"))(
                physicalDevice,
                pMemoryProperties,
            )
        }
    }
    #[cfg(feature = "vk_khr_get_physical_device_properties2")]
    pub unsafe fn vkGetPhysicalDeviceMemoryProperties2KHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        pMemoryProperties: *mut VkPhysicalDeviceMemoryProperties2,
    ) {
        unsafe {
            (self
                .vkGetPhysicalDeviceMemoryProperties2KHR
                .expect("Vulkan command vkGetPhysicalDeviceMemoryProperties2KHR is not loaded"))(
                physicalDevice,
                pMemoryProperties,
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkGetPhysicalDeviceSparseImageFormatProperties2(
        &self,
        physicalDevice: VkPhysicalDevice,
        pFormatInfo: *const VkPhysicalDeviceSparseImageFormatInfo2,
        pPropertyCount: *mut u32,
        pProperties: *mut VkSparseImageFormatProperties2,
    ) {
        unsafe {
            (self.vkGetPhysicalDeviceSparseImageFormatProperties2.expect(
                "Vulkan command vkGetPhysicalDeviceSparseImageFormatProperties2 is not loaded",
            ))(physicalDevice, pFormatInfo, pPropertyCount, pProperties)
        }
    }
    #[cfg(feature = "vk_khr_get_physical_device_properties2")]
    pub unsafe fn vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        pFormatInfo: *const VkPhysicalDeviceSparseImageFormatInfo2,
        pPropertyCount: *mut u32,
        pProperties: *mut VkSparseImageFormatProperties2,
    ) {
        unsafe {
            (self.vkGetPhysicalDeviceSparseImageFormatProperties2KHR.expect("Vulkan command vkGetPhysicalDeviceSparseImageFormatProperties2KHR is not loaded"))(physicalDevice, pFormatInfo, pPropertyCount, pProperties)
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkGetPhysicalDeviceExternalBufferProperties(
        &self,
        physicalDevice: VkPhysicalDevice,
        pExternalBufferInfo: *const VkPhysicalDeviceExternalBufferInfo,
        pExternalBufferProperties: *mut VkExternalBufferProperties,
    ) {
        unsafe {
            (self
                .vkGetPhysicalDeviceExternalBufferProperties
                .expect("Vulkan command vkGetPhysicalDeviceExternalBufferProperties is not loaded"))(
                physicalDevice,
                pExternalBufferInfo,
                pExternalBufferProperties,
            )
        }
    }
    #[cfg(feature = "vk_khr_external_memory_capabilities")]
    pub unsafe fn vkGetPhysicalDeviceExternalBufferPropertiesKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        pExternalBufferInfo: *const VkPhysicalDeviceExternalBufferInfo,
        pExternalBufferProperties: *mut VkExternalBufferProperties,
    ) {
        unsafe {
            (self.vkGetPhysicalDeviceExternalBufferPropertiesKHR.expect(
                "Vulkan command vkGetPhysicalDeviceExternalBufferPropertiesKHR is not loaded",
            ))(
                physicalDevice,
                pExternalBufferInfo,
                pExternalBufferProperties,
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkGetPhysicalDeviceExternalSemaphoreProperties(
        &self,
        physicalDevice: VkPhysicalDevice,
        pExternalSemaphoreInfo: *const VkPhysicalDeviceExternalSemaphoreInfo,
        pExternalSemaphoreProperties: *mut VkExternalSemaphoreProperties,
    ) {
        unsafe {
            (self.vkGetPhysicalDeviceExternalSemaphoreProperties.expect(
                "Vulkan command vkGetPhysicalDeviceExternalSemaphoreProperties is not loaded",
            ))(
                physicalDevice,
                pExternalSemaphoreInfo,
                pExternalSemaphoreProperties,
            )
        }
    }
    #[cfg(feature = "vk_khr_external_semaphore_capabilities")]
    pub unsafe fn vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        pExternalSemaphoreInfo: *const VkPhysicalDeviceExternalSemaphoreInfo,
        pExternalSemaphoreProperties: *mut VkExternalSemaphoreProperties,
    ) {
        unsafe {
            (self.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR.expect("Vulkan command vkGetPhysicalDeviceExternalSemaphorePropertiesKHR is not loaded"))(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties)
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkGetPhysicalDeviceExternalFenceProperties(
        &self,
        physicalDevice: VkPhysicalDevice,
        pExternalFenceInfo: *const VkPhysicalDeviceExternalFenceInfo,
        pExternalFenceProperties: *mut VkExternalFenceProperties,
    ) {
        unsafe {
            (self
                .vkGetPhysicalDeviceExternalFenceProperties
                .expect("Vulkan command vkGetPhysicalDeviceExternalFenceProperties is not loaded"))(
                physicalDevice,
                pExternalFenceInfo,
                pExternalFenceProperties,
            )
        }
    }
    #[cfg(feature = "vk_khr_external_fence_capabilities")]
    pub unsafe fn vkGetPhysicalDeviceExternalFencePropertiesKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        pExternalFenceInfo: *const VkPhysicalDeviceExternalFenceInfo,
        pExternalFenceProperties: *mut VkExternalFenceProperties,
    ) {
        unsafe {
            (self.vkGetPhysicalDeviceExternalFencePropertiesKHR.expect(
                "Vulkan command vkGetPhysicalDeviceExternalFencePropertiesKHR is not loaded",
            ))(physicalDevice, pExternalFenceInfo, pExternalFenceProperties)
        }
    }
    #[cfg(feature = "vk_ext_direct_mode_display")]
    pub unsafe fn vkReleaseDisplayEXT(
        &self,
        physicalDevice: VkPhysicalDevice,
        display: VkDisplayKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkReleaseDisplayEXT
                .expect("Vulkan command vkReleaseDisplayEXT is not loaded"))(
                physicalDevice,
                display,
            )
        }
    }
    #[cfg(feature = "vk_ext_acquire_xlib_display")]
    pub unsafe fn vkAcquireXlibDisplayEXT(
        &self,
        physicalDevice: VkPhysicalDevice,
        dpy: *mut Display,
        display: VkDisplayKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkAcquireXlibDisplayEXT
                .expect("Vulkan command vkAcquireXlibDisplayEXT is not loaded"))(
                physicalDevice,
                dpy,
                display,
            )
        }
    }
    #[cfg(feature = "vk_ext_acquire_xlib_display")]
    pub unsafe fn vkGetRandROutputDisplayEXT(
        &self,
        physicalDevice: VkPhysicalDevice,
        dpy: *mut Display,
        rrOutput: RROutput,
        pDisplay: *mut VkDisplayKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetRandROutputDisplayEXT
                .expect("Vulkan command vkGetRandROutputDisplayEXT is not loaded"))(
                physicalDevice,
                dpy,
                rrOutput,
                pDisplay,
            )
        }
    }
    #[cfg(feature = "vk_nv_acquire_winrt_display")]
    pub unsafe fn vkAcquireWinrtDisplayNV(
        &self,
        physicalDevice: VkPhysicalDevice,
        display: VkDisplayKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkAcquireWinrtDisplayNV
                .expect("Vulkan command vkAcquireWinrtDisplayNV is not loaded"))(
                physicalDevice,
                display,
            )
        }
    }
    #[cfg(feature = "vk_nv_acquire_winrt_display")]
    pub unsafe fn vkGetWinrtDisplayNV(
        &self,
        physicalDevice: VkPhysicalDevice,
        deviceRelativeId: u32,
        pDisplay: *mut VkDisplayKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetWinrtDisplayNV
                .expect("Vulkan command vkGetWinrtDisplayNV is not loaded"))(
                physicalDevice,
                deviceRelativeId,
                pDisplay,
            )
        }
    }
    #[cfg(feature = "vk_ext_display_surface_counter")]
    pub unsafe fn vkGetPhysicalDeviceSurfaceCapabilities2EXT(
        &self,
        physicalDevice: VkPhysicalDevice,
        surface: VkSurfaceKHR,
        pSurfaceCapabilities: *mut VkSurfaceCapabilities2EXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPhysicalDeviceSurfaceCapabilities2EXT
                .expect("Vulkan command vkGetPhysicalDeviceSurfaceCapabilities2EXT is not loaded"))(
                physicalDevice,
                surface,
                pSurfaceCapabilities,
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkEnumeratePhysicalDeviceGroups(
        &self,
        instance: VkInstance,
        pPhysicalDeviceGroupCount: *mut u32,
        pPhysicalDeviceGroupProperties: *mut VkPhysicalDeviceGroupProperties,
    ) -> VkResult {
        unsafe {
            (self
                .vkEnumeratePhysicalDeviceGroups
                .expect("Vulkan command vkEnumeratePhysicalDeviceGroups is not loaded"))(
                instance,
                pPhysicalDeviceGroupCount,
                pPhysicalDeviceGroupProperties,
            )
        }
    }
    #[cfg(feature = "vk_khr_device_group_creation")]
    pub unsafe fn vkEnumeratePhysicalDeviceGroupsKHR(
        &self,
        instance: VkInstance,
        pPhysicalDeviceGroupCount: *mut u32,
        pPhysicalDeviceGroupProperties: *mut VkPhysicalDeviceGroupProperties,
    ) -> VkResult {
        unsafe {
            (self
                .vkEnumeratePhysicalDeviceGroupsKHR
                .expect("Vulkan command vkEnumeratePhysicalDeviceGroupsKHR is not loaded"))(
                instance,
                pPhysicalDeviceGroupCount,
                pPhysicalDeviceGroupProperties,
            )
        }
    }
    #[cfg(any(
        all(feature = "core_1_1", feature = "vk_khr_swapchain"),
        all(feature = "vk_khr_device_group", feature = "vk_khr_surface")
    ))]
    pub unsafe fn vkGetPhysicalDevicePresentRectanglesKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        surface: VkSurfaceKHR,
        pRectCount: *mut u32,
        pRects: *mut VkRect2D,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPhysicalDevicePresentRectanglesKHR
                .expect("Vulkan command vkGetPhysicalDevicePresentRectanglesKHR is not loaded"))(
                physicalDevice,
                surface,
                pRectCount,
                pRects,
            )
        }
    }
    #[cfg(feature = "vk_mvk_ios_surface")]
    pub unsafe fn vkCreateIOSSurfaceMVK(
        &self,
        instance: VkInstance,
        pCreateInfo: *const VkIOSSurfaceCreateInfoMVK,
        pAllocator: *const VkAllocationCallbacks,
        pSurface: *mut VkSurfaceKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateIOSSurfaceMVK
                .expect("Vulkan command vkCreateIOSSurfaceMVK is not loaded"))(
                instance,
                pCreateInfo,
                pAllocator,
                pSurface,
            )
        }
    }
    #[cfg(feature = "vk_mvk_macos_surface")]
    pub unsafe fn vkCreateMacOSSurfaceMVK(
        &self,
        instance: VkInstance,
        pCreateInfo: *const VkMacOSSurfaceCreateInfoMVK,
        pAllocator: *const VkAllocationCallbacks,
        pSurface: *mut VkSurfaceKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateMacOSSurfaceMVK
                .expect("Vulkan command vkCreateMacOSSurfaceMVK is not loaded"))(
                instance,
                pCreateInfo,
                pAllocator,
                pSurface,
            )
        }
    }
    #[cfg(feature = "vk_ext_metal_surface")]
    pub unsafe fn vkCreateMetalSurfaceEXT(
        &self,
        instance: VkInstance,
        pCreateInfo: *const VkMetalSurfaceCreateInfoEXT,
        pAllocator: *const VkAllocationCallbacks,
        pSurface: *mut VkSurfaceKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateMetalSurfaceEXT
                .expect("Vulkan command vkCreateMetalSurfaceEXT is not loaded"))(
                instance,
                pCreateInfo,
                pAllocator,
                pSurface,
            )
        }
    }
    #[cfg(feature = "vk_ext_sample_locations")]
    pub unsafe fn vkGetPhysicalDeviceMultisamplePropertiesEXT(
        &self,
        physicalDevice: VkPhysicalDevice,
        samples: VkSampleCountFlagBits,
        pMultisampleProperties: *mut VkMultisamplePropertiesEXT,
    ) {
        unsafe {
            (self
                .vkGetPhysicalDeviceMultisamplePropertiesEXT
                .expect("Vulkan command vkGetPhysicalDeviceMultisamplePropertiesEXT is not loaded"))(
                physicalDevice,
                samples,
                pMultisampleProperties,
            )
        }
    }
    #[cfg(feature = "vk_khr_get_surface_capabilities2")]
    pub unsafe fn vkGetPhysicalDeviceSurfaceCapabilities2KHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        pSurfaceInfo: *const VkPhysicalDeviceSurfaceInfo2KHR,
        pSurfaceCapabilities: *mut VkSurfaceCapabilities2KHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPhysicalDeviceSurfaceCapabilities2KHR
                .expect("Vulkan command vkGetPhysicalDeviceSurfaceCapabilities2KHR is not loaded"))(
                physicalDevice,
                pSurfaceInfo,
                pSurfaceCapabilities,
            )
        }
    }
    #[cfg(feature = "vk_khr_get_surface_capabilities2")]
    pub unsafe fn vkGetPhysicalDeviceSurfaceFormats2KHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        pSurfaceInfo: *const VkPhysicalDeviceSurfaceInfo2KHR,
        pSurfaceFormatCount: *mut u32,
        pSurfaceFormats: *mut VkSurfaceFormat2KHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPhysicalDeviceSurfaceFormats2KHR
                .expect("Vulkan command vkGetPhysicalDeviceSurfaceFormats2KHR is not loaded"))(
                physicalDevice,
                pSurfaceInfo,
                pSurfaceFormatCount,
                pSurfaceFormats,
            )
        }
    }
    #[cfg(feature = "vk_khr_get_display_properties2")]
    pub unsafe fn vkGetPhysicalDeviceDisplayProperties2KHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        pPropertyCount: *mut u32,
        pProperties: *mut VkDisplayProperties2KHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPhysicalDeviceDisplayProperties2KHR
                .expect("Vulkan command vkGetPhysicalDeviceDisplayProperties2KHR is not loaded"))(
                physicalDevice,
                pPropertyCount,
                pProperties,
            )
        }
    }
    #[cfg(feature = "vk_khr_get_display_properties2")]
    pub unsafe fn vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        pPropertyCount: *mut u32,
        pProperties: *mut VkDisplayPlaneProperties2KHR,
    ) -> VkResult {
        unsafe {
            (self.vkGetPhysicalDeviceDisplayPlaneProperties2KHR.expect(
                "Vulkan command vkGetPhysicalDeviceDisplayPlaneProperties2KHR is not loaded",
            ))(physicalDevice, pPropertyCount, pProperties)
        }
    }
    #[cfg(feature = "vk_khr_get_display_properties2")]
    pub unsafe fn vkGetDisplayModeProperties2KHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        display: VkDisplayKHR,
        pPropertyCount: *mut u32,
        pProperties: *mut VkDisplayModeProperties2KHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetDisplayModeProperties2KHR
                .expect("Vulkan command vkGetDisplayModeProperties2KHR is not loaded"))(
                physicalDevice,
                display,
                pPropertyCount,
                pProperties,
            )
        }
    }
    #[cfg(feature = "vk_khr_get_display_properties2")]
    pub unsafe fn vkGetDisplayPlaneCapabilities2KHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        pDisplayPlaneInfo: *const VkDisplayPlaneInfo2KHR,
        pCapabilities: *mut VkDisplayPlaneCapabilities2KHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetDisplayPlaneCapabilities2KHR
                .expect("Vulkan command vkGetDisplayPlaneCapabilities2KHR is not loaded"))(
                physicalDevice,
                pDisplayPlaneInfo,
                pCapabilities,
            )
        }
    }
    #[cfg(feature = "vk_khr_calibrated_timestamps")]
    pub unsafe fn vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        pTimeDomainCount: *mut u32,
        pTimeDomains: *mut VkTimeDomainKHR,
    ) -> VkResult {
        unsafe {
            (self.vkGetPhysicalDeviceCalibrateableTimeDomainsKHR.expect(
                "Vulkan command vkGetPhysicalDeviceCalibrateableTimeDomainsKHR is not loaded",
            ))(physicalDevice, pTimeDomainCount, pTimeDomains)
        }
    }
    #[cfg(feature = "vk_ext_calibrated_timestamps")]
    pub unsafe fn vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
        &self,
        physicalDevice: VkPhysicalDevice,
        pTimeDomainCount: *mut u32,
        pTimeDomains: *mut VkTimeDomainKHR,
    ) -> VkResult {
        unsafe {
            (self.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT.expect(
                "Vulkan command vkGetPhysicalDeviceCalibrateableTimeDomainsEXT is not loaded",
            ))(physicalDevice, pTimeDomainCount, pTimeDomains)
        }
    }
    #[cfg(feature = "vk_ext_debug_utils")]
    pub unsafe fn vkCreateDebugUtilsMessengerEXT(
        &self,
        instance: VkInstance,
        pCreateInfo: *const VkDebugUtilsMessengerCreateInfoEXT,
        pAllocator: *const VkAllocationCallbacks,
        pMessenger: *mut VkDebugUtilsMessengerEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateDebugUtilsMessengerEXT
                .expect("Vulkan command vkCreateDebugUtilsMessengerEXT is not loaded"))(
                instance,
                pCreateInfo,
                pAllocator,
                pMessenger,
            )
        }
    }
    #[cfg(feature = "vk_ext_debug_utils")]
    pub unsafe fn vkDestroyDebugUtilsMessengerEXT(
        &self,
        instance: VkInstance,
        messenger: VkDebugUtilsMessengerEXT,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyDebugUtilsMessengerEXT
                .expect("Vulkan command vkDestroyDebugUtilsMessengerEXT is not loaded"))(
                instance, messenger, pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_ext_debug_utils")]
    pub unsafe fn vkSubmitDebugUtilsMessageEXT(
        &self,
        instance: VkInstance,
        messageSeverity: VkDebugUtilsMessageSeverityFlagBitsEXT,
        messageTypes: VkDebugUtilsMessageTypeFlagsEXT,
        pCallbackData: *const VkDebugUtilsMessengerCallbackDataEXT,
    ) {
        unsafe {
            (self
                .vkSubmitDebugUtilsMessageEXT
                .expect("Vulkan command vkSubmitDebugUtilsMessageEXT is not loaded"))(
                instance,
                messageSeverity,
                messageTypes,
                pCallbackData,
            )
        }
    }
    #[cfg(feature = "vk_nv_cooperative_matrix")]
    pub unsafe fn vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
        &self,
        physicalDevice: VkPhysicalDevice,
        pPropertyCount: *mut u32,
        pProperties: *mut VkCooperativeMatrixPropertiesNV,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPhysicalDeviceCooperativeMatrixPropertiesNV
                .expect(
                    "Vulkan command vkGetPhysicalDeviceCooperativeMatrixPropertiesNV is not loaded",
                ))(physicalDevice, pPropertyCount, pProperties)
        }
    }
    #[cfg(feature = "vk_ext_full_screen_exclusive")]
    pub unsafe fn vkGetPhysicalDeviceSurfacePresentModes2EXT(
        &self,
        physicalDevice: VkPhysicalDevice,
        pSurfaceInfo: *const VkPhysicalDeviceSurfaceInfo2KHR,
        pPresentModeCount: *mut u32,
        pPresentModes: *mut VkPresentModeKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPhysicalDeviceSurfacePresentModes2EXT
                .expect("Vulkan command vkGetPhysicalDeviceSurfacePresentModes2EXT is not loaded"))(
                physicalDevice,
                pSurfaceInfo,
                pPresentModeCount,
                pPresentModes,
            )
        }
    }
    #[cfg(feature = "vk_khr_performance_query")]
    pub unsafe fn vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        queueFamilyIndex: u32,
        pCounterCount: *mut u32,
        pCounters: *mut VkPerformanceCounterKHR,
        pCounterDescriptions: *mut VkPerformanceCounterDescriptionKHR,
    ) -> VkResult {
        unsafe {
            (self.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR.expect("Vulkan command vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR is not loaded"))(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions)
        }
    }
    #[cfg(feature = "vk_khr_performance_query")]
    pub unsafe fn vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        pPerformanceQueryCreateInfo: *const VkQueryPoolPerformanceCreateInfoKHR,
        pNumPasses: *mut u32,
    ) {
        unsafe {
            (self.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR.expect("Vulkan command vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR is not loaded"))(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses)
        }
    }
    #[cfg(feature = "vk_ext_headless_surface")]
    pub unsafe fn vkCreateHeadlessSurfaceEXT(
        &self,
        instance: VkInstance,
        pCreateInfo: *const VkHeadlessSurfaceCreateInfoEXT,
        pAllocator: *const VkAllocationCallbacks,
        pSurface: *mut VkSurfaceKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateHeadlessSurfaceEXT
                .expect("Vulkan command vkCreateHeadlessSurfaceEXT is not loaded"))(
                instance,
                pCreateInfo,
                pAllocator,
                pSurface,
            )
        }
    }
    #[cfg(feature = "vk_nv_coverage_reduction_mode")]
    pub unsafe fn vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
        &self,
        physicalDevice: VkPhysicalDevice,
        pCombinationCount: *mut u32,
        pCombinations: *mut VkFramebufferMixedSamplesCombinationNV,
    ) -> VkResult {
        unsafe {
            (self.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV.expect("Vulkan command vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV is not loaded"))(physicalDevice, pCombinationCount, pCombinations)
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkGetPhysicalDeviceToolProperties(
        &self,
        physicalDevice: VkPhysicalDevice,
        pToolCount: *mut u32,
        pToolProperties: *mut VkPhysicalDeviceToolProperties,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPhysicalDeviceToolProperties
                .expect("Vulkan command vkGetPhysicalDeviceToolProperties is not loaded"))(
                physicalDevice,
                pToolCount,
                pToolProperties,
            )
        }
    }
    #[cfg(feature = "vk_ext_tooling_info")]
    pub unsafe fn vkGetPhysicalDeviceToolPropertiesEXT(
        &self,
        physicalDevice: VkPhysicalDevice,
        pToolCount: *mut u32,
        pToolProperties: *mut VkPhysicalDeviceToolProperties,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPhysicalDeviceToolPropertiesEXT
                .expect("Vulkan command vkGetPhysicalDeviceToolPropertiesEXT is not loaded"))(
                physicalDevice,
                pToolCount,
                pToolProperties,
            )
        }
    }
    #[cfg(feature = "vk_khr_fragment_shading_rate")]
    pub unsafe fn vkGetPhysicalDeviceFragmentShadingRatesKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        pFragmentShadingRateCount: *mut u32,
        pFragmentShadingRates: *mut VkPhysicalDeviceFragmentShadingRateKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPhysicalDeviceFragmentShadingRatesKHR
                .expect("Vulkan command vkGetPhysicalDeviceFragmentShadingRatesKHR is not loaded"))(
                physicalDevice,
                pFragmentShadingRateCount,
                pFragmentShadingRates,
            )
        }
    }
    #[cfg(feature = "vk_khr_video_queue")]
    pub unsafe fn vkGetPhysicalDeviceVideoCapabilitiesKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        pVideoProfile: *const VkVideoProfileInfoKHR,
        pCapabilities: *mut VkVideoCapabilitiesKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPhysicalDeviceVideoCapabilitiesKHR
                .expect("Vulkan command vkGetPhysicalDeviceVideoCapabilitiesKHR is not loaded"))(
                physicalDevice,
                pVideoProfile,
                pCapabilities,
            )
        }
    }
    #[cfg(feature = "vk_khr_video_queue")]
    pub unsafe fn vkGetPhysicalDeviceVideoFormatPropertiesKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        pVideoFormatInfo: *const VkPhysicalDeviceVideoFormatInfoKHR,
        pVideoFormatPropertyCount: *mut u32,
        pVideoFormatProperties: *mut VkVideoFormatPropertiesKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPhysicalDeviceVideoFormatPropertiesKHR
                .expect("Vulkan command vkGetPhysicalDeviceVideoFormatPropertiesKHR is not loaded"))(
                physicalDevice,
                pVideoFormatInfo,
                pVideoFormatPropertyCount,
                pVideoFormatProperties,
            )
        }
    }
    #[cfg(feature = "vk_khr_video_encode_queue")]
    pub unsafe fn vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        pQualityLevelInfo: *const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR,
        pQualityLevelProperties: *mut VkVideoEncodeQualityLevelPropertiesKHR,
    ) -> VkResult {
        unsafe {
            (self.vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR.expect("Vulkan command vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR is not loaded"))(physicalDevice, pQualityLevelInfo, pQualityLevelProperties)
        }
    }
    #[cfg(feature = "vk_ext_acquire_drm_display")]
    pub unsafe fn vkAcquireDrmDisplayEXT(
        &self,
        physicalDevice: VkPhysicalDevice,
        drmFd: i32,
        display: VkDisplayKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkAcquireDrmDisplayEXT
                .expect("Vulkan command vkAcquireDrmDisplayEXT is not loaded"))(
                physicalDevice,
                drmFd,
                display,
            )
        }
    }
    #[cfg(feature = "vk_ext_acquire_drm_display")]
    pub unsafe fn vkGetDrmDisplayEXT(
        &self,
        physicalDevice: VkPhysicalDevice,
        drmFd: i32,
        connectorId: u32,
        display: *mut VkDisplayKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetDrmDisplayEXT
                .expect("Vulkan command vkGetDrmDisplayEXT is not loaded"))(
                physicalDevice,
                drmFd,
                connectorId,
                display,
            )
        }
    }
    #[cfg(feature = "vk_nv_optical_flow")]
    pub unsafe fn vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
        &self,
        physicalDevice: VkPhysicalDevice,
        pOpticalFlowImageFormatInfo: *const VkOpticalFlowImageFormatInfoNV,
        pFormatCount: *mut u32,
        pImageFormatProperties: *mut VkOpticalFlowImageFormatPropertiesNV,
    ) -> VkResult {
        unsafe {
            (self.vkGetPhysicalDeviceOpticalFlowImageFormatsNV.expect(
                "Vulkan command vkGetPhysicalDeviceOpticalFlowImageFormatsNV is not loaded",
            ))(
                physicalDevice,
                pOpticalFlowImageFormatInfo,
                pFormatCount,
                pImageFormatProperties,
            )
        }
    }
    #[cfg(feature = "vk_khr_cooperative_matrix")]
    pub unsafe fn vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(
        &self,
        physicalDevice: VkPhysicalDevice,
        pPropertyCount: *mut u32,
        pProperties: *mut VkCooperativeMatrixPropertiesKHR,
    ) -> VkResult {
        unsafe {
            (self.vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR.expect("Vulkan command vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR is not loaded"))(physicalDevice, pPropertyCount, pProperties)
        }
    }
    #[cfg(feature = "vk_ext_cooperative_matrix_maintenance1")]
    pub unsafe fn vkGetPhysicalDeviceCooperativeMatrixProperties2EXT(
        &self,
        physicalDevice: VkPhysicalDevice,
        pCooperativeMatrixInfo: *const VkPhysicalDeviceCooperativeMatrixInfo2EXT,
        pPropertyCount: *mut u32,
        pProperties: *mut VkCooperativeMatrixProperties2EXT,
    ) -> VkResult {
        unsafe {
            (self.vkGetPhysicalDeviceCooperativeMatrixProperties2EXT.expect("Vulkan command vkGetPhysicalDeviceCooperativeMatrixProperties2EXT is not loaded"))(physicalDevice, pCooperativeMatrixInfo, pPropertyCount, pProperties)
        }
    }
    #[cfg(feature = "vk_nv_cooperative_matrix2")]
    pub unsafe fn vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(
        &self,
        physicalDevice: VkPhysicalDevice,
        pPropertyCount: *mut u32,
        pProperties: *mut VkCooperativeMatrixFlexibleDimensionsPropertiesNV,
    ) -> VkResult {
        unsafe {
            (self.vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV.expect("Vulkan command vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV is not loaded"))(physicalDevice, pPropertyCount, pProperties)
        }
    }
    #[cfg(feature = "vk_nv_cooperative_vector")]
    pub unsafe fn vkGetPhysicalDeviceCooperativeVectorPropertiesNV(
        &self,
        physicalDevice: VkPhysicalDevice,
        pPropertyCount: *mut u32,
        pProperties: *mut VkCooperativeVectorPropertiesNV,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPhysicalDeviceCooperativeVectorPropertiesNV
                .expect(
                    "Vulkan command vkGetPhysicalDeviceCooperativeVectorPropertiesNV is not loaded",
                ))(physicalDevice, pPropertyCount, pProperties)
        }
    }
    #[cfg(feature = "vk_arm_shader_instrumentation")]
    pub unsafe fn vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM(
        &self,
        physicalDevice: VkPhysicalDevice,
        pDescriptionCount: *mut u32,
        pDescriptions: *mut VkShaderInstrumentationMetricDescriptionARM,
    ) -> VkResult {
        unsafe {
            (self.vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM.expect("Vulkan command vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM is not loaded"))(physicalDevice, pDescriptionCount, pDescriptions)
        }
    }
    #[cfg(feature = "vk_arm_tensors")]
    pub unsafe fn vkGetPhysicalDeviceExternalTensorPropertiesARM(
        &self,
        physicalDevice: VkPhysicalDevice,
        pExternalTensorInfo: *const VkPhysicalDeviceExternalTensorInfoARM,
        pExternalTensorProperties: *mut VkExternalTensorPropertiesARM,
    ) {
        unsafe {
            (self.vkGetPhysicalDeviceExternalTensorPropertiesARM.expect(
                "Vulkan command vkGetPhysicalDeviceExternalTensorPropertiesARM is not loaded",
            ))(
                physicalDevice,
                pExternalTensorInfo,
                pExternalTensorProperties,
            )
        }
    }
    #[cfg(feature = "vk_arm_data_graph")]
    pub unsafe fn vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM(
        &self,
        physicalDevice: VkPhysicalDevice,
        queueFamilyIndex: u32,
        pQueueFamilyDataGraphPropertyCount: *mut u32,
        pQueueFamilyDataGraphProperties: *mut VkQueueFamilyDataGraphPropertiesARM,
    ) -> VkResult {
        unsafe {
            (self.vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM.expect("Vulkan command vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM is not loaded"))(physicalDevice, queueFamilyIndex, pQueueFamilyDataGraphPropertyCount, pQueueFamilyDataGraphProperties)
        }
    }
    #[cfg(feature = "vk_arm_data_graph")]
    pub unsafe fn vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM(
        &self,
        physicalDevice: VkPhysicalDevice,
        pQueueFamilyDataGraphProcessingEngineInfo: *const VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM,
        pQueueFamilyDataGraphProcessingEngineProperties: *mut VkQueueFamilyDataGraphProcessingEnginePropertiesARM,
    ) {
        unsafe {
            (self.vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM.expect("Vulkan command vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM is not loaded"))(physicalDevice, pQueueFamilyDataGraphProcessingEngineInfo, pQueueFamilyDataGraphProcessingEngineProperties)
        }
    }
    #[cfg(feature = "vk_arm_performance_counters_by_region")]
    pub unsafe fn vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM(
        &self,
        physicalDevice: VkPhysicalDevice,
        queueFamilyIndex: u32,
        pCounterCount: *mut u32,
        pCounters: *mut VkPerformanceCounterARM,
        pCounterDescriptions: *mut VkPerformanceCounterDescriptionARM,
    ) -> VkResult {
        unsafe {
            (self.vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM.expect("Vulkan command vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM is not loaded"))(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions)
        }
    }
    #[cfg(feature = "vk_ext_descriptor_heap")]
    pub unsafe fn vkGetPhysicalDeviceDescriptorSizeEXT(
        &self,
        physicalDevice: VkPhysicalDevice,
        descriptorType: VkDescriptorType,
    ) -> VkDeviceSize {
        unsafe {
            (self
                .vkGetPhysicalDeviceDescriptorSizeEXT
                .expect("Vulkan command vkGetPhysicalDeviceDescriptorSizeEXT is not loaded"))(
                physicalDevice,
                descriptorType,
            )
        }
    }
    #[cfg(any(
        feature = "vk_arm_data_graph_instruction_set_tosa",
        feature = "vk_arm_data_graph_optical_flow"
    ))]
    pub unsafe fn vkGetPhysicalDeviceQueueFamilyDataGraphEngineOperationPropertiesARM(
        &self,
        physicalDevice: VkPhysicalDevice,
        queueFamilyIndex: u32,
        pQueueFamilyDataGraphProperties: *const VkQueueFamilyDataGraphPropertiesARM,
        pProperties: *mut VkBaseOutStructure,
    ) -> VkResult {
        unsafe {
            (self.vkGetPhysicalDeviceQueueFamilyDataGraphEngineOperationPropertiesARM.expect("Vulkan command vkGetPhysicalDeviceQueueFamilyDataGraphEngineOperationPropertiesARM is not loaded"))(physicalDevice, queueFamilyIndex, pQueueFamilyDataGraphProperties, pProperties)
        }
    }
    #[cfg(feature = "vk_arm_data_graph_optical_flow")]
    pub unsafe fn vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM(
        &self,
        physicalDevice: VkPhysicalDevice,
        queueFamilyIndex: u32,
        pQueueFamilyDataGraphProperties: *const VkQueueFamilyDataGraphPropertiesARM,
        pOpticalFlowImageFormatInfo: *const VkDataGraphOpticalFlowImageFormatInfoARM,
        pFormatCount: *mut u32,
        pImageFormatProperties: *mut VkDataGraphOpticalFlowImageFormatPropertiesARM,
    ) -> VkResult {
        unsafe {
            (self.vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM.expect("Vulkan command vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM is not loaded"))(physicalDevice, queueFamilyIndex, pQueueFamilyDataGraphProperties, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties)
        }
    }
}

#[derive(Clone, Copy, Default)]
pub struct CmdsDevice {
    #[cfg(feature = "core_1_0")]
    pub vkDestroyDevice: Option<PFN_vkDestroyDevice>,
    #[cfg(feature = "core_1_0")]
    pub vkGetDeviceQueue: Option<PFN_vkGetDeviceQueue>,
    #[cfg(feature = "core_1_0")]
    pub vkQueueSubmit: Option<PFN_vkQueueSubmit>,
    #[cfg(feature = "core_1_0")]
    pub vkQueueWaitIdle: Option<PFN_vkQueueWaitIdle>,
    #[cfg(feature = "core_1_0")]
    pub vkDeviceWaitIdle: Option<PFN_vkDeviceWaitIdle>,
    #[cfg(feature = "core_1_0")]
    pub vkAllocateMemory: Option<PFN_vkAllocateMemory>,
    #[cfg(feature = "core_1_0")]
    pub vkFreeMemory: Option<PFN_vkFreeMemory>,
    #[cfg(feature = "core_1_0")]
    pub vkMapMemory: Option<PFN_vkMapMemory>,
    #[cfg(feature = "core_1_0")]
    pub vkUnmapMemory: Option<PFN_vkUnmapMemory>,
    #[cfg(feature = "core_1_0")]
    pub vkFlushMappedMemoryRanges: Option<PFN_vkFlushMappedMemoryRanges>,
    #[cfg(feature = "core_1_0")]
    pub vkInvalidateMappedMemoryRanges: Option<PFN_vkInvalidateMappedMemoryRanges>,
    #[cfg(feature = "core_1_0")]
    pub vkGetDeviceMemoryCommitment: Option<PFN_vkGetDeviceMemoryCommitment>,
    #[cfg(feature = "core_1_0")]
    pub vkGetBufferMemoryRequirements: Option<PFN_vkGetBufferMemoryRequirements>,
    #[cfg(feature = "core_1_0")]
    pub vkBindBufferMemory: Option<PFN_vkBindBufferMemory>,
    #[cfg(feature = "core_1_0")]
    pub vkGetImageMemoryRequirements: Option<PFN_vkGetImageMemoryRequirements>,
    #[cfg(feature = "core_1_0")]
    pub vkBindImageMemory: Option<PFN_vkBindImageMemory>,
    #[cfg(feature = "core_1_0")]
    pub vkGetImageSparseMemoryRequirements: Option<PFN_vkGetImageSparseMemoryRequirements>,
    #[cfg(feature = "core_1_0")]
    pub vkQueueBindSparse: Option<PFN_vkQueueBindSparse>,
    #[cfg(feature = "core_1_0")]
    pub vkCreateFence: Option<PFN_vkCreateFence>,
    #[cfg(feature = "core_1_0")]
    pub vkDestroyFence: Option<PFN_vkDestroyFence>,
    #[cfg(feature = "core_1_0")]
    pub vkResetFences: Option<PFN_vkResetFences>,
    #[cfg(feature = "core_1_0")]
    pub vkGetFenceStatus: Option<PFN_vkGetFenceStatus>,
    #[cfg(feature = "core_1_0")]
    pub vkWaitForFences: Option<PFN_vkWaitForFences>,
    #[cfg(feature = "core_1_0")]
    pub vkCreateSemaphore: Option<PFN_vkCreateSemaphore>,
    #[cfg(feature = "core_1_0")]
    pub vkDestroySemaphore: Option<PFN_vkDestroySemaphore>,
    #[cfg(feature = "core_1_0")]
    pub vkCreateEvent: Option<PFN_vkCreateEvent>,
    #[cfg(feature = "core_1_0")]
    pub vkDestroyEvent: Option<PFN_vkDestroyEvent>,
    #[cfg(feature = "core_1_0")]
    pub vkGetEventStatus: Option<PFN_vkGetEventStatus>,
    #[cfg(feature = "core_1_0")]
    pub vkSetEvent: Option<PFN_vkSetEvent>,
    #[cfg(feature = "core_1_0")]
    pub vkResetEvent: Option<PFN_vkResetEvent>,
    #[cfg(feature = "core_1_0")]
    pub vkCreateQueryPool: Option<PFN_vkCreateQueryPool>,
    #[cfg(feature = "core_1_0")]
    pub vkDestroyQueryPool: Option<PFN_vkDestroyQueryPool>,
    #[cfg(feature = "core_1_0")]
    pub vkGetQueryPoolResults: Option<PFN_vkGetQueryPoolResults>,
    #[cfg(feature = "core_1_2")]
    pub vkResetQueryPool: Option<PFN_vkResetQueryPool>,
    #[cfg(feature = "vk_ext_host_query_reset")]
    pub vkResetQueryPoolEXT: Option<PFN_vkResetQueryPoolEXT>,
    #[cfg(feature = "core_1_0")]
    pub vkCreateBuffer: Option<PFN_vkCreateBuffer>,
    #[cfg(feature = "core_1_0")]
    pub vkDestroyBuffer: Option<PFN_vkDestroyBuffer>,
    #[cfg(feature = "core_1_0")]
    pub vkCreateBufferView: Option<PFN_vkCreateBufferView>,
    #[cfg(feature = "core_1_0")]
    pub vkDestroyBufferView: Option<PFN_vkDestroyBufferView>,
    #[cfg(feature = "core_1_0")]
    pub vkCreateImage: Option<PFN_vkCreateImage>,
    #[cfg(feature = "core_1_0")]
    pub vkDestroyImage: Option<PFN_vkDestroyImage>,
    #[cfg(feature = "core_1_0")]
    pub vkGetImageSubresourceLayout: Option<PFN_vkGetImageSubresourceLayout>,
    #[cfg(feature = "core_1_0")]
    pub vkCreateImageView: Option<PFN_vkCreateImageView>,
    #[cfg(feature = "core_1_0")]
    pub vkDestroyImageView: Option<PFN_vkDestroyImageView>,
    #[cfg(feature = "core_1_0")]
    pub vkCreateShaderModule: Option<PFN_vkCreateShaderModule>,
    #[cfg(feature = "core_1_0")]
    pub vkDestroyShaderModule: Option<PFN_vkDestroyShaderModule>,
    #[cfg(feature = "core_1_0")]
    pub vkCreatePipelineCache: Option<PFN_vkCreatePipelineCache>,
    #[cfg(feature = "core_1_0")]
    pub vkDestroyPipelineCache: Option<PFN_vkDestroyPipelineCache>,
    #[cfg(feature = "core_1_0")]
    pub vkGetPipelineCacheData: Option<PFN_vkGetPipelineCacheData>,
    #[cfg(feature = "core_1_0")]
    pub vkMergePipelineCaches: Option<PFN_vkMergePipelineCaches>,
    #[cfg(feature = "vk_khr_pipeline_binary")]
    pub vkCreatePipelineBinariesKHR: Option<PFN_vkCreatePipelineBinariesKHR>,
    #[cfg(feature = "vk_khr_pipeline_binary")]
    pub vkDestroyPipelineBinaryKHR: Option<PFN_vkDestroyPipelineBinaryKHR>,
    #[cfg(feature = "vk_khr_pipeline_binary")]
    pub vkGetPipelineKeyKHR: Option<PFN_vkGetPipelineKeyKHR>,
    #[cfg(feature = "vk_khr_pipeline_binary")]
    pub vkGetPipelineBinaryDataKHR: Option<PFN_vkGetPipelineBinaryDataKHR>,
    #[cfg(feature = "vk_khr_pipeline_binary")]
    pub vkReleaseCapturedPipelineDataKHR: Option<PFN_vkReleaseCapturedPipelineDataKHR>,
    #[cfg(feature = "core_1_0")]
    pub vkCreateGraphicsPipelines: Option<PFN_vkCreateGraphicsPipelines>,
    #[cfg(feature = "core_1_0")]
    pub vkCreateComputePipelines: Option<PFN_vkCreateComputePipelines>,
    #[cfg(feature = "vk_huawei_subpass_shading")]
    pub vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI:
        Option<PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI>,
    #[cfg(feature = "core_1_0")]
    pub vkDestroyPipeline: Option<PFN_vkDestroyPipeline>,
    #[cfg(feature = "core_1_0")]
    pub vkCreatePipelineLayout: Option<PFN_vkCreatePipelineLayout>,
    #[cfg(feature = "core_1_0")]
    pub vkDestroyPipelineLayout: Option<PFN_vkDestroyPipelineLayout>,
    #[cfg(feature = "core_1_0")]
    pub vkCreateSampler: Option<PFN_vkCreateSampler>,
    #[cfg(feature = "core_1_0")]
    pub vkDestroySampler: Option<PFN_vkDestroySampler>,
    #[cfg(feature = "core_1_0")]
    pub vkCreateDescriptorSetLayout: Option<PFN_vkCreateDescriptorSetLayout>,
    #[cfg(feature = "core_1_0")]
    pub vkDestroyDescriptorSetLayout: Option<PFN_vkDestroyDescriptorSetLayout>,
    #[cfg(feature = "core_1_0")]
    pub vkCreateDescriptorPool: Option<PFN_vkCreateDescriptorPool>,
    #[cfg(feature = "core_1_0")]
    pub vkDestroyDescriptorPool: Option<PFN_vkDestroyDescriptorPool>,
    #[cfg(feature = "core_1_0")]
    pub vkResetDescriptorPool: Option<PFN_vkResetDescriptorPool>,
    #[cfg(feature = "core_1_0")]
    pub vkAllocateDescriptorSets: Option<PFN_vkAllocateDescriptorSets>,
    #[cfg(feature = "core_1_0")]
    pub vkFreeDescriptorSets: Option<PFN_vkFreeDescriptorSets>,
    #[cfg(feature = "core_1_0")]
    pub vkUpdateDescriptorSets: Option<PFN_vkUpdateDescriptorSets>,
    #[cfg(feature = "core_1_0")]
    pub vkCreateFramebuffer: Option<PFN_vkCreateFramebuffer>,
    #[cfg(feature = "core_1_0")]
    pub vkDestroyFramebuffer: Option<PFN_vkDestroyFramebuffer>,
    #[cfg(feature = "core_1_0")]
    pub vkCreateRenderPass: Option<PFN_vkCreateRenderPass>,
    #[cfg(feature = "core_1_0")]
    pub vkDestroyRenderPass: Option<PFN_vkDestroyRenderPass>,
    #[cfg(feature = "core_1_0")]
    pub vkGetRenderAreaGranularity: Option<PFN_vkGetRenderAreaGranularity>,
    #[cfg(feature = "core_1_4")]
    pub vkGetRenderingAreaGranularity: Option<PFN_vkGetRenderingAreaGranularity>,
    #[cfg(feature = "vk_khr_maintenance5")]
    pub vkGetRenderingAreaGranularityKHR: Option<PFN_vkGetRenderingAreaGranularityKHR>,
    #[cfg(feature = "core_1_0")]
    pub vkCreateCommandPool: Option<PFN_vkCreateCommandPool>,
    #[cfg(feature = "core_1_0")]
    pub vkDestroyCommandPool: Option<PFN_vkDestroyCommandPool>,
    #[cfg(feature = "core_1_0")]
    pub vkResetCommandPool: Option<PFN_vkResetCommandPool>,
    #[cfg(feature = "core_1_0")]
    pub vkAllocateCommandBuffers: Option<PFN_vkAllocateCommandBuffers>,
    #[cfg(feature = "core_1_0")]
    pub vkFreeCommandBuffers: Option<PFN_vkFreeCommandBuffers>,
    #[cfg(feature = "core_1_0")]
    pub vkBeginCommandBuffer: Option<PFN_vkBeginCommandBuffer>,
    #[cfg(feature = "core_1_0")]
    pub vkEndCommandBuffer: Option<PFN_vkEndCommandBuffer>,
    #[cfg(feature = "core_1_0")]
    pub vkResetCommandBuffer: Option<PFN_vkResetCommandBuffer>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdBindPipeline: Option<PFN_vkCmdBindPipeline>,
    #[cfg(feature = "vk_ext_primitive_restart_index")]
    pub vkCmdSetPrimitiveRestartIndexEXT: Option<PFN_vkCmdSetPrimitiveRestartIndexEXT>,
    #[cfg(feature = "vk_ext_attachment_feedback_loop_dynamic_state")]
    pub vkCmdSetAttachmentFeedbackLoopEnableEXT:
        Option<PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdSetViewport: Option<PFN_vkCmdSetViewport>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdSetScissor: Option<PFN_vkCmdSetScissor>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdSetLineWidth: Option<PFN_vkCmdSetLineWidth>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdSetDepthBias: Option<PFN_vkCmdSetDepthBias>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdSetBlendConstants: Option<PFN_vkCmdSetBlendConstants>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdSetDepthBounds: Option<PFN_vkCmdSetDepthBounds>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdSetStencilCompareMask: Option<PFN_vkCmdSetStencilCompareMask>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdSetStencilWriteMask: Option<PFN_vkCmdSetStencilWriteMask>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdSetStencilReference: Option<PFN_vkCmdSetStencilReference>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdBindDescriptorSets: Option<PFN_vkCmdBindDescriptorSets>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdBindIndexBuffer: Option<PFN_vkCmdBindIndexBuffer>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdBindVertexBuffers: Option<PFN_vkCmdBindVertexBuffers>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdDraw: Option<PFN_vkCmdDraw>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdDrawIndexed: Option<PFN_vkCmdDrawIndexed>,
    #[cfg(feature = "vk_ext_multi_draw")]
    pub vkCmdDrawMultiEXT: Option<PFN_vkCmdDrawMultiEXT>,
    #[cfg(feature = "vk_ext_multi_draw")]
    pub vkCmdDrawMultiIndexedEXT: Option<PFN_vkCmdDrawMultiIndexedEXT>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdDrawIndirect: Option<PFN_vkCmdDrawIndirect>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdDrawIndexedIndirect: Option<PFN_vkCmdDrawIndexedIndirect>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdDispatch: Option<PFN_vkCmdDispatch>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdDispatchIndirect: Option<PFN_vkCmdDispatchIndirect>,
    #[cfg(feature = "vk_huawei_subpass_shading")]
    pub vkCmdSubpassShadingHUAWEI: Option<PFN_vkCmdSubpassShadingHUAWEI>,
    #[cfg(feature = "vk_huawei_cluster_culling_shader")]
    pub vkCmdDrawClusterHUAWEI: Option<PFN_vkCmdDrawClusterHUAWEI>,
    #[cfg(feature = "vk_huawei_cluster_culling_shader")]
    pub vkCmdDrawClusterIndirectHUAWEI: Option<PFN_vkCmdDrawClusterIndirectHUAWEI>,
    #[cfg(feature = "vk_nv_device_generated_commands_compute")]
    pub vkCmdUpdatePipelineIndirectBufferNV: Option<PFN_vkCmdUpdatePipelineIndirectBufferNV>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdCopyBuffer: Option<PFN_vkCmdCopyBuffer>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdCopyImage: Option<PFN_vkCmdCopyImage>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdBlitImage: Option<PFN_vkCmdBlitImage>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdCopyBufferToImage: Option<PFN_vkCmdCopyBufferToImage>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdCopyImageToBuffer: Option<PFN_vkCmdCopyImageToBuffer>,
    #[cfg(feature = "vk_nv_copy_memory_indirect")]
    pub vkCmdCopyMemoryIndirectNV: Option<PFN_vkCmdCopyMemoryIndirectNV>,
    #[cfg(feature = "vk_khr_copy_memory_indirect")]
    pub vkCmdCopyMemoryIndirectKHR: Option<PFN_vkCmdCopyMemoryIndirectKHR>,
    #[cfg(feature = "vk_nv_copy_memory_indirect")]
    pub vkCmdCopyMemoryToImageIndirectNV: Option<PFN_vkCmdCopyMemoryToImageIndirectNV>,
    #[cfg(feature = "vk_khr_copy_memory_indirect")]
    pub vkCmdCopyMemoryToImageIndirectKHR: Option<PFN_vkCmdCopyMemoryToImageIndirectKHR>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdUpdateBuffer: Option<PFN_vkCmdUpdateBuffer>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdFillBuffer: Option<PFN_vkCmdFillBuffer>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdClearColorImage: Option<PFN_vkCmdClearColorImage>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdClearDepthStencilImage: Option<PFN_vkCmdClearDepthStencilImage>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdClearAttachments: Option<PFN_vkCmdClearAttachments>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdResolveImage: Option<PFN_vkCmdResolveImage>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdSetEvent: Option<PFN_vkCmdSetEvent>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdResetEvent: Option<PFN_vkCmdResetEvent>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdWaitEvents: Option<PFN_vkCmdWaitEvents>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdPipelineBarrier: Option<PFN_vkCmdPipelineBarrier>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdBeginQuery: Option<PFN_vkCmdBeginQuery>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdEndQuery: Option<PFN_vkCmdEndQuery>,
    #[cfg(feature = "vk_ext_conditional_rendering")]
    pub vkCmdBeginConditionalRenderingEXT: Option<PFN_vkCmdBeginConditionalRenderingEXT>,
    #[cfg(feature = "vk_ext_conditional_rendering")]
    pub vkCmdEndConditionalRenderingEXT: Option<PFN_vkCmdEndConditionalRenderingEXT>,
    #[cfg(all(
        feature = "vk_ext_custom_resolve",
        any(feature = "core_1_3", feature = "vk_khr_dynamic_rendering")
    ))]
    pub vkCmdBeginCustomResolveEXT: Option<PFN_vkCmdBeginCustomResolveEXT>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdResetQueryPool: Option<PFN_vkCmdResetQueryPool>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdWriteTimestamp: Option<PFN_vkCmdWriteTimestamp>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdCopyQueryPoolResults: Option<PFN_vkCmdCopyQueryPoolResults>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdPushConstants: Option<PFN_vkCmdPushConstants>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdBeginRenderPass: Option<PFN_vkCmdBeginRenderPass>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdNextSubpass: Option<PFN_vkCmdNextSubpass>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdEndRenderPass: Option<PFN_vkCmdEndRenderPass>,
    #[cfg(feature = "core_1_0")]
    pub vkCmdExecuteCommands: Option<PFN_vkCmdExecuteCommands>,
    #[cfg(feature = "vk_khr_display_swapchain")]
    pub vkCreateSharedSwapchainsKHR: Option<PFN_vkCreateSharedSwapchainsKHR>,
    #[cfg(feature = "vk_khr_swapchain")]
    pub vkCreateSwapchainKHR: Option<PFN_vkCreateSwapchainKHR>,
    #[cfg(feature = "vk_khr_swapchain")]
    pub vkDestroySwapchainKHR: Option<PFN_vkDestroySwapchainKHR>,
    #[cfg(feature = "vk_khr_swapchain")]
    pub vkGetSwapchainImagesKHR: Option<PFN_vkGetSwapchainImagesKHR>,
    #[cfg(feature = "vk_khr_swapchain")]
    pub vkAcquireNextImageKHR: Option<PFN_vkAcquireNextImageKHR>,
    #[cfg(feature = "vk_khr_swapchain")]
    pub vkQueuePresentKHR: Option<PFN_vkQueuePresentKHR>,
    #[cfg(feature = "vk_ext_debug_marker")]
    pub vkDebugMarkerSetObjectNameEXT: Option<PFN_vkDebugMarkerSetObjectNameEXT>,
    #[cfg(feature = "vk_ext_debug_marker")]
    pub vkDebugMarkerSetObjectTagEXT: Option<PFN_vkDebugMarkerSetObjectTagEXT>,
    #[cfg(feature = "vk_ext_debug_marker")]
    pub vkCmdDebugMarkerBeginEXT: Option<PFN_vkCmdDebugMarkerBeginEXT>,
    #[cfg(feature = "vk_ext_debug_marker")]
    pub vkCmdDebugMarkerEndEXT: Option<PFN_vkCmdDebugMarkerEndEXT>,
    #[cfg(feature = "vk_ext_debug_marker")]
    pub vkCmdDebugMarkerInsertEXT: Option<PFN_vkCmdDebugMarkerInsertEXT>,
    #[cfg(feature = "vk_nv_external_memory_win32")]
    pub vkGetMemoryWin32HandleNV: Option<PFN_vkGetMemoryWin32HandleNV>,
    #[cfg(feature = "vk_nv_device_generated_commands")]
    pub vkCmdExecuteGeneratedCommandsNV: Option<PFN_vkCmdExecuteGeneratedCommandsNV>,
    #[cfg(feature = "vk_nv_device_generated_commands")]
    pub vkCmdPreprocessGeneratedCommandsNV: Option<PFN_vkCmdPreprocessGeneratedCommandsNV>,
    #[cfg(feature = "vk_nv_device_generated_commands")]
    pub vkCmdBindPipelineShaderGroupNV: Option<PFN_vkCmdBindPipelineShaderGroupNV>,
    #[cfg(feature = "vk_nv_device_generated_commands")]
    pub vkGetGeneratedCommandsMemoryRequirementsNV:
        Option<PFN_vkGetGeneratedCommandsMemoryRequirementsNV>,
    #[cfg(feature = "vk_nv_device_generated_commands")]
    pub vkCreateIndirectCommandsLayoutNV: Option<PFN_vkCreateIndirectCommandsLayoutNV>,
    #[cfg(feature = "vk_nv_device_generated_commands")]
    pub vkDestroyIndirectCommandsLayoutNV: Option<PFN_vkDestroyIndirectCommandsLayoutNV>,
    #[cfg(feature = "vk_ext_device_generated_commands")]
    pub vkCmdExecuteGeneratedCommandsEXT: Option<PFN_vkCmdExecuteGeneratedCommandsEXT>,
    #[cfg(feature = "vk_ext_device_generated_commands")]
    pub vkCmdPreprocessGeneratedCommandsEXT: Option<PFN_vkCmdPreprocessGeneratedCommandsEXT>,
    #[cfg(feature = "vk_ext_device_generated_commands")]
    pub vkGetGeneratedCommandsMemoryRequirementsEXT:
        Option<PFN_vkGetGeneratedCommandsMemoryRequirementsEXT>,
    #[cfg(feature = "vk_ext_device_generated_commands")]
    pub vkCreateIndirectCommandsLayoutEXT: Option<PFN_vkCreateIndirectCommandsLayoutEXT>,
    #[cfg(feature = "vk_ext_device_generated_commands")]
    pub vkDestroyIndirectCommandsLayoutEXT: Option<PFN_vkDestroyIndirectCommandsLayoutEXT>,
    #[cfg(feature = "vk_ext_device_generated_commands")]
    pub vkCreateIndirectExecutionSetEXT: Option<PFN_vkCreateIndirectExecutionSetEXT>,
    #[cfg(feature = "vk_ext_device_generated_commands")]
    pub vkDestroyIndirectExecutionSetEXT: Option<PFN_vkDestroyIndirectExecutionSetEXT>,
    #[cfg(feature = "vk_ext_device_generated_commands")]
    pub vkUpdateIndirectExecutionSetPipelineEXT:
        Option<PFN_vkUpdateIndirectExecutionSetPipelineEXT>,
    #[cfg(feature = "vk_ext_device_generated_commands")]
    pub vkUpdateIndirectExecutionSetShaderEXT: Option<PFN_vkUpdateIndirectExecutionSetShaderEXT>,
    #[cfg(feature = "core_1_4")]
    pub vkCmdPushDescriptorSet: Option<PFN_vkCmdPushDescriptorSet>,
    #[cfg(feature = "vk_khr_push_descriptor")]
    pub vkCmdPushDescriptorSetKHR: Option<PFN_vkCmdPushDescriptorSetKHR>,
    #[cfg(feature = "core_1_1")]
    pub vkTrimCommandPool: Option<PFN_vkTrimCommandPool>,
    #[cfg(feature = "vk_khr_maintenance1")]
    pub vkTrimCommandPoolKHR: Option<PFN_vkTrimCommandPoolKHR>,
    #[cfg(feature = "vk_khr_external_memory_win32")]
    pub vkGetMemoryWin32HandleKHR: Option<PFN_vkGetMemoryWin32HandleKHR>,
    #[cfg(feature = "vk_khr_external_memory_win32")]
    pub vkGetMemoryWin32HandlePropertiesKHR: Option<PFN_vkGetMemoryWin32HandlePropertiesKHR>,
    #[cfg(feature = "vk_khr_external_memory_fd")]
    pub vkGetMemoryFdKHR: Option<PFN_vkGetMemoryFdKHR>,
    #[cfg(feature = "vk_khr_external_memory_fd")]
    pub vkGetMemoryFdPropertiesKHR: Option<PFN_vkGetMemoryFdPropertiesKHR>,
    #[cfg(feature = "vk_fuchsia_external_memory")]
    pub vkGetMemoryZirconHandleFUCHSIA: Option<PFN_vkGetMemoryZirconHandleFUCHSIA>,
    #[cfg(feature = "vk_fuchsia_external_memory")]
    pub vkGetMemoryZirconHandlePropertiesFUCHSIA:
        Option<PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA>,
    #[cfg(feature = "vk_nv_external_memory_rdma")]
    pub vkGetMemoryRemoteAddressNV: Option<PFN_vkGetMemoryRemoteAddressNV>,
    #[cfg(feature = "vk_khr_external_semaphore_win32")]
    pub vkGetSemaphoreWin32HandleKHR: Option<PFN_vkGetSemaphoreWin32HandleKHR>,
    #[cfg(feature = "vk_khr_external_semaphore_win32")]
    pub vkImportSemaphoreWin32HandleKHR: Option<PFN_vkImportSemaphoreWin32HandleKHR>,
    #[cfg(feature = "vk_khr_external_semaphore_fd")]
    pub vkGetSemaphoreFdKHR: Option<PFN_vkGetSemaphoreFdKHR>,
    #[cfg(feature = "vk_khr_external_semaphore_fd")]
    pub vkImportSemaphoreFdKHR: Option<PFN_vkImportSemaphoreFdKHR>,
    #[cfg(feature = "vk_fuchsia_external_semaphore")]
    pub vkGetSemaphoreZirconHandleFUCHSIA: Option<PFN_vkGetSemaphoreZirconHandleFUCHSIA>,
    #[cfg(feature = "vk_fuchsia_external_semaphore")]
    pub vkImportSemaphoreZirconHandleFUCHSIA: Option<PFN_vkImportSemaphoreZirconHandleFUCHSIA>,
    #[cfg(feature = "vk_khr_external_fence_win32")]
    pub vkGetFenceWin32HandleKHR: Option<PFN_vkGetFenceWin32HandleKHR>,
    #[cfg(feature = "vk_khr_external_fence_win32")]
    pub vkImportFenceWin32HandleKHR: Option<PFN_vkImportFenceWin32HandleKHR>,
    #[cfg(feature = "vk_khr_external_fence_fd")]
    pub vkGetFenceFdKHR: Option<PFN_vkGetFenceFdKHR>,
    #[cfg(feature = "vk_khr_external_fence_fd")]
    pub vkImportFenceFdKHR: Option<PFN_vkImportFenceFdKHR>,
    #[cfg(feature = "vk_ext_display_control")]
    pub vkDisplayPowerControlEXT: Option<PFN_vkDisplayPowerControlEXT>,
    #[cfg(feature = "vk_ext_display_control")]
    pub vkRegisterDeviceEventEXT: Option<PFN_vkRegisterDeviceEventEXT>,
    #[cfg(feature = "vk_ext_display_control")]
    pub vkRegisterDisplayEventEXT: Option<PFN_vkRegisterDisplayEventEXT>,
    #[cfg(feature = "vk_ext_display_control")]
    pub vkGetSwapchainCounterEXT: Option<PFN_vkGetSwapchainCounterEXT>,
    #[cfg(feature = "core_1_1")]
    pub vkGetDeviceGroupPeerMemoryFeatures: Option<PFN_vkGetDeviceGroupPeerMemoryFeatures>,
    #[cfg(feature = "vk_khr_device_group")]
    pub vkGetDeviceGroupPeerMemoryFeaturesKHR: Option<PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR>,
    #[cfg(feature = "core_1_1")]
    pub vkBindBufferMemory2: Option<PFN_vkBindBufferMemory2>,
    #[cfg(feature = "vk_khr_bind_memory2")]
    pub vkBindBufferMemory2KHR: Option<PFN_vkBindBufferMemory2KHR>,
    #[cfg(feature = "core_1_1")]
    pub vkBindImageMemory2: Option<PFN_vkBindImageMemory2>,
    #[cfg(feature = "vk_khr_bind_memory2")]
    pub vkBindImageMemory2KHR: Option<PFN_vkBindImageMemory2KHR>,
    #[cfg(feature = "core_1_1")]
    pub vkCmdSetDeviceMask: Option<PFN_vkCmdSetDeviceMask>,
    #[cfg(feature = "vk_khr_device_group")]
    pub vkCmdSetDeviceMaskKHR: Option<PFN_vkCmdSetDeviceMaskKHR>,
    #[cfg(any(
        all(feature = "core_1_1", feature = "vk_khr_swapchain"),
        all(feature = "vk_khr_device_group", feature = "vk_khr_surface")
    ))]
    pub vkGetDeviceGroupPresentCapabilitiesKHR: Option<PFN_vkGetDeviceGroupPresentCapabilitiesKHR>,
    #[cfg(any(
        all(feature = "core_1_1", feature = "vk_khr_swapchain"),
        all(feature = "vk_khr_device_group", feature = "vk_khr_surface")
    ))]
    pub vkGetDeviceGroupSurfacePresentModesKHR: Option<PFN_vkGetDeviceGroupSurfacePresentModesKHR>,
    #[cfg(any(
        all(feature = "core_1_1", feature = "vk_khr_swapchain"),
        all(feature = "vk_khr_device_group", feature = "vk_khr_swapchain")
    ))]
    pub vkAcquireNextImage2KHR: Option<PFN_vkAcquireNextImage2KHR>,
    #[cfg(feature = "core_1_1")]
    pub vkCmdDispatchBase: Option<PFN_vkCmdDispatchBase>,
    #[cfg(feature = "vk_khr_device_group")]
    pub vkCmdDispatchBaseKHR: Option<PFN_vkCmdDispatchBaseKHR>,
    #[cfg(feature = "core_1_1")]
    pub vkCreateDescriptorUpdateTemplate: Option<PFN_vkCreateDescriptorUpdateTemplate>,
    #[cfg(feature = "vk_khr_descriptor_update_template")]
    pub vkCreateDescriptorUpdateTemplateKHR: Option<PFN_vkCreateDescriptorUpdateTemplateKHR>,
    #[cfg(feature = "core_1_1")]
    pub vkDestroyDescriptorUpdateTemplate: Option<PFN_vkDestroyDescriptorUpdateTemplate>,
    #[cfg(feature = "vk_khr_descriptor_update_template")]
    pub vkDestroyDescriptorUpdateTemplateKHR: Option<PFN_vkDestroyDescriptorUpdateTemplateKHR>,
    #[cfg(feature = "core_1_1")]
    pub vkUpdateDescriptorSetWithTemplate: Option<PFN_vkUpdateDescriptorSetWithTemplate>,
    #[cfg(feature = "vk_khr_descriptor_update_template")]
    pub vkUpdateDescriptorSetWithTemplateKHR: Option<PFN_vkUpdateDescriptorSetWithTemplateKHR>,
    #[cfg(feature = "core_1_4")]
    pub vkCmdPushDescriptorSetWithTemplate: Option<PFN_vkCmdPushDescriptorSetWithTemplate>,
    #[cfg(any(
        all(
            feature = "vk_khr_descriptor_update_template",
            feature = "vk_khr_push_descriptor"
        ),
        all(
            feature = "vk_khr_push_descriptor",
            any(feature = "core_1_1", feature = "vk_khr_descriptor_update_template")
        )
    ))]
    pub vkCmdPushDescriptorSetWithTemplateKHR: Option<PFN_vkCmdPushDescriptorSetWithTemplateKHR>,
    #[cfg(feature = "vk_ext_hdr_metadata")]
    pub vkSetHdrMetadataEXT: Option<PFN_vkSetHdrMetadataEXT>,
    #[cfg(feature = "vk_khr_shared_presentable_image")]
    pub vkGetSwapchainStatusKHR: Option<PFN_vkGetSwapchainStatusKHR>,
    #[cfg(feature = "vk_google_display_timing")]
    pub vkGetRefreshCycleDurationGOOGLE: Option<PFN_vkGetRefreshCycleDurationGOOGLE>,
    #[cfg(feature = "vk_google_display_timing")]
    pub vkGetPastPresentationTimingGOOGLE: Option<PFN_vkGetPastPresentationTimingGOOGLE>,
    #[cfg(feature = "vk_nv_clip_space_w_scaling")]
    pub vkCmdSetViewportWScalingNV: Option<PFN_vkCmdSetViewportWScalingNV>,
    #[cfg(feature = "vk_ext_discard_rectangles")]
    pub vkCmdSetDiscardRectangleEXT: Option<PFN_vkCmdSetDiscardRectangleEXT>,
    #[cfg(feature = "vk_ext_discard_rectangles")]
    pub vkCmdSetDiscardRectangleEnableEXT: Option<PFN_vkCmdSetDiscardRectangleEnableEXT>,
    #[cfg(feature = "vk_ext_discard_rectangles")]
    pub vkCmdSetDiscardRectangleModeEXT: Option<PFN_vkCmdSetDiscardRectangleModeEXT>,
    #[cfg(feature = "vk_ext_sample_locations")]
    pub vkCmdSetSampleLocationsEXT: Option<PFN_vkCmdSetSampleLocationsEXT>,
    #[cfg(feature = "core_1_1")]
    pub vkGetBufferMemoryRequirements2: Option<PFN_vkGetBufferMemoryRequirements2>,
    #[cfg(feature = "vk_khr_get_memory_requirements2")]
    pub vkGetBufferMemoryRequirements2KHR: Option<PFN_vkGetBufferMemoryRequirements2KHR>,
    #[cfg(feature = "core_1_1")]
    pub vkGetImageMemoryRequirements2: Option<PFN_vkGetImageMemoryRequirements2>,
    #[cfg(feature = "vk_khr_get_memory_requirements2")]
    pub vkGetImageMemoryRequirements2KHR: Option<PFN_vkGetImageMemoryRequirements2KHR>,
    #[cfg(feature = "core_1_1")]
    pub vkGetImageSparseMemoryRequirements2: Option<PFN_vkGetImageSparseMemoryRequirements2>,
    #[cfg(feature = "vk_khr_get_memory_requirements2")]
    pub vkGetImageSparseMemoryRequirements2KHR: Option<PFN_vkGetImageSparseMemoryRequirements2KHR>,
    #[cfg(feature = "core_1_3")]
    pub vkGetDeviceBufferMemoryRequirements: Option<PFN_vkGetDeviceBufferMemoryRequirements>,
    #[cfg(feature = "vk_khr_maintenance4")]
    pub vkGetDeviceBufferMemoryRequirementsKHR: Option<PFN_vkGetDeviceBufferMemoryRequirementsKHR>,
    #[cfg(feature = "core_1_3")]
    pub vkGetDeviceImageMemoryRequirements: Option<PFN_vkGetDeviceImageMemoryRequirements>,
    #[cfg(feature = "vk_khr_maintenance4")]
    pub vkGetDeviceImageMemoryRequirementsKHR: Option<PFN_vkGetDeviceImageMemoryRequirementsKHR>,
    #[cfg(feature = "core_1_3")]
    pub vkGetDeviceImageSparseMemoryRequirements:
        Option<PFN_vkGetDeviceImageSparseMemoryRequirements>,
    #[cfg(feature = "vk_khr_maintenance4")]
    pub vkGetDeviceImageSparseMemoryRequirementsKHR:
        Option<PFN_vkGetDeviceImageSparseMemoryRequirementsKHR>,
    #[cfg(feature = "core_1_1")]
    pub vkCreateSamplerYcbcrConversion: Option<PFN_vkCreateSamplerYcbcrConversion>,
    #[cfg(feature = "vk_khr_sampler_ycbcr_conversion")]
    pub vkCreateSamplerYcbcrConversionKHR: Option<PFN_vkCreateSamplerYcbcrConversionKHR>,
    #[cfg(feature = "core_1_1")]
    pub vkDestroySamplerYcbcrConversion: Option<PFN_vkDestroySamplerYcbcrConversion>,
    #[cfg(feature = "vk_khr_sampler_ycbcr_conversion")]
    pub vkDestroySamplerYcbcrConversionKHR: Option<PFN_vkDestroySamplerYcbcrConversionKHR>,
    #[cfg(feature = "core_1_1")]
    pub vkGetDeviceQueue2: Option<PFN_vkGetDeviceQueue2>,
    #[cfg(feature = "vk_ext_validation_cache")]
    pub vkCreateValidationCacheEXT: Option<PFN_vkCreateValidationCacheEXT>,
    #[cfg(feature = "vk_ext_validation_cache")]
    pub vkDestroyValidationCacheEXT: Option<PFN_vkDestroyValidationCacheEXT>,
    #[cfg(feature = "vk_ext_validation_cache")]
    pub vkGetValidationCacheDataEXT: Option<PFN_vkGetValidationCacheDataEXT>,
    #[cfg(feature = "vk_ext_validation_cache")]
    pub vkMergeValidationCachesEXT: Option<PFN_vkMergeValidationCachesEXT>,
    #[cfg(feature = "core_1_1")]
    pub vkGetDescriptorSetLayoutSupport: Option<PFN_vkGetDescriptorSetLayoutSupport>,
    #[cfg(feature = "vk_khr_maintenance3")]
    pub vkGetDescriptorSetLayoutSupportKHR: Option<PFN_vkGetDescriptorSetLayoutSupportKHR>,
    #[cfg(feature = "vk_amd_shader_info")]
    pub vkGetShaderInfoAMD: Option<PFN_vkGetShaderInfoAMD>,
    #[cfg(feature = "vk_amd_display_native_hdr")]
    pub vkSetLocalDimmingAMD: Option<PFN_vkSetLocalDimmingAMD>,
    #[cfg(feature = "vk_khr_calibrated_timestamps")]
    pub vkGetCalibratedTimestampsKHR: Option<PFN_vkGetCalibratedTimestampsKHR>,
    #[cfg(feature = "vk_ext_calibrated_timestamps")]
    pub vkGetCalibratedTimestampsEXT: Option<PFN_vkGetCalibratedTimestampsEXT>,
    #[cfg(feature = "vk_ext_debug_utils")]
    pub vkSetDebugUtilsObjectNameEXT: Option<PFN_vkSetDebugUtilsObjectNameEXT>,
    #[cfg(feature = "vk_ext_debug_utils")]
    pub vkSetDebugUtilsObjectTagEXT: Option<PFN_vkSetDebugUtilsObjectTagEXT>,
    #[cfg(feature = "vk_ext_debug_utils")]
    pub vkQueueBeginDebugUtilsLabelEXT: Option<PFN_vkQueueBeginDebugUtilsLabelEXT>,
    #[cfg(feature = "vk_ext_debug_utils")]
    pub vkQueueEndDebugUtilsLabelEXT: Option<PFN_vkQueueEndDebugUtilsLabelEXT>,
    #[cfg(feature = "vk_ext_debug_utils")]
    pub vkQueueInsertDebugUtilsLabelEXT: Option<PFN_vkQueueInsertDebugUtilsLabelEXT>,
    #[cfg(feature = "vk_ext_debug_utils")]
    pub vkCmdBeginDebugUtilsLabelEXT: Option<PFN_vkCmdBeginDebugUtilsLabelEXT>,
    #[cfg(feature = "vk_ext_debug_utils")]
    pub vkCmdEndDebugUtilsLabelEXT: Option<PFN_vkCmdEndDebugUtilsLabelEXT>,
    #[cfg(feature = "vk_ext_debug_utils")]
    pub vkCmdInsertDebugUtilsLabelEXT: Option<PFN_vkCmdInsertDebugUtilsLabelEXT>,
    #[cfg(feature = "vk_ext_external_memory_host")]
    pub vkGetMemoryHostPointerPropertiesEXT: Option<PFN_vkGetMemoryHostPointerPropertiesEXT>,
    #[cfg(feature = "vk_amd_buffer_marker")]
    pub vkCmdWriteBufferMarkerAMD: Option<PFN_vkCmdWriteBufferMarkerAMD>,
    #[cfg(feature = "core_1_2")]
    pub vkCreateRenderPass2: Option<PFN_vkCreateRenderPass2>,
    #[cfg(feature = "vk_khr_create_renderpass2")]
    pub vkCreateRenderPass2KHR: Option<PFN_vkCreateRenderPass2KHR>,
    #[cfg(feature = "core_1_2")]
    pub vkCmdBeginRenderPass2: Option<PFN_vkCmdBeginRenderPass2>,
    #[cfg(feature = "vk_khr_create_renderpass2")]
    pub vkCmdBeginRenderPass2KHR: Option<PFN_vkCmdBeginRenderPass2KHR>,
    #[cfg(feature = "core_1_2")]
    pub vkCmdNextSubpass2: Option<PFN_vkCmdNextSubpass2>,
    #[cfg(feature = "vk_khr_create_renderpass2")]
    pub vkCmdNextSubpass2KHR: Option<PFN_vkCmdNextSubpass2KHR>,
    #[cfg(feature = "core_1_2")]
    pub vkCmdEndRenderPass2: Option<PFN_vkCmdEndRenderPass2>,
    #[cfg(feature = "vk_khr_create_renderpass2")]
    pub vkCmdEndRenderPass2KHR: Option<PFN_vkCmdEndRenderPass2KHR>,
    #[cfg(feature = "core_1_2")]
    pub vkGetSemaphoreCounterValue: Option<PFN_vkGetSemaphoreCounterValue>,
    #[cfg(feature = "vk_khr_timeline_semaphore")]
    pub vkGetSemaphoreCounterValueKHR: Option<PFN_vkGetSemaphoreCounterValueKHR>,
    #[cfg(feature = "core_1_2")]
    pub vkWaitSemaphores: Option<PFN_vkWaitSemaphores>,
    #[cfg(feature = "vk_khr_timeline_semaphore")]
    pub vkWaitSemaphoresKHR: Option<PFN_vkWaitSemaphoresKHR>,
    #[cfg(feature = "core_1_2")]
    pub vkSignalSemaphore: Option<PFN_vkSignalSemaphore>,
    #[cfg(feature = "vk_khr_timeline_semaphore")]
    pub vkSignalSemaphoreKHR: Option<PFN_vkSignalSemaphoreKHR>,
    #[cfg(feature = "vk_android_external_memory_android_hardware_buffer")]
    pub vkGetAndroidHardwareBufferPropertiesANDROID:
        Option<PFN_vkGetAndroidHardwareBufferPropertiesANDROID>,
    #[cfg(feature = "vk_android_external_memory_android_hardware_buffer")]
    pub vkGetMemoryAndroidHardwareBufferANDROID:
        Option<PFN_vkGetMemoryAndroidHardwareBufferANDROID>,
    #[cfg(feature = "core_1_2")]
    pub vkCmdDrawIndirectCount: Option<PFN_vkCmdDrawIndirectCount>,
    #[cfg(feature = "vk_khr_draw_indirect_count")]
    pub vkCmdDrawIndirectCountKHR: Option<PFN_vkCmdDrawIndirectCountKHR>,
    #[cfg(feature = "vk_amd_draw_indirect_count")]
    pub vkCmdDrawIndirectCountAMD: Option<PFN_vkCmdDrawIndirectCountAMD>,
    #[cfg(feature = "core_1_2")]
    pub vkCmdDrawIndexedIndirectCount: Option<PFN_vkCmdDrawIndexedIndirectCount>,
    #[cfg(feature = "vk_khr_draw_indirect_count")]
    pub vkCmdDrawIndexedIndirectCountKHR: Option<PFN_vkCmdDrawIndexedIndirectCountKHR>,
    #[cfg(feature = "vk_amd_draw_indirect_count")]
    pub vkCmdDrawIndexedIndirectCountAMD: Option<PFN_vkCmdDrawIndexedIndirectCountAMD>,
    #[cfg(feature = "vk_nv_device_diagnostic_checkpoints")]
    pub vkCmdSetCheckpointNV: Option<PFN_vkCmdSetCheckpointNV>,
    #[cfg(feature = "vk_nv_device_diagnostic_checkpoints")]
    pub vkGetQueueCheckpointDataNV: Option<PFN_vkGetQueueCheckpointDataNV>,
    #[cfg(feature = "vk_ext_transform_feedback")]
    pub vkCmdBindTransformFeedbackBuffersEXT: Option<PFN_vkCmdBindTransformFeedbackBuffersEXT>,
    #[cfg(feature = "vk_ext_transform_feedback")]
    pub vkCmdBeginTransformFeedbackEXT: Option<PFN_vkCmdBeginTransformFeedbackEXT>,
    #[cfg(feature = "vk_ext_transform_feedback")]
    pub vkCmdEndTransformFeedbackEXT: Option<PFN_vkCmdEndTransformFeedbackEXT>,
    #[cfg(feature = "vk_ext_transform_feedback")]
    pub vkCmdBeginQueryIndexedEXT: Option<PFN_vkCmdBeginQueryIndexedEXT>,
    #[cfg(feature = "vk_ext_transform_feedback")]
    pub vkCmdEndQueryIndexedEXT: Option<PFN_vkCmdEndQueryIndexedEXT>,
    #[cfg(feature = "vk_ext_transform_feedback")]
    pub vkCmdDrawIndirectByteCountEXT: Option<PFN_vkCmdDrawIndirectByteCountEXT>,
    #[cfg(feature = "vk_nv_scissor_exclusive")]
    pub vkCmdSetExclusiveScissorNV: Option<PFN_vkCmdSetExclusiveScissorNV>,
    #[cfg(feature = "vk_nv_scissor_exclusive")]
    pub vkCmdSetExclusiveScissorEnableNV: Option<PFN_vkCmdSetExclusiveScissorEnableNV>,
    #[cfg(feature = "vk_nv_shading_rate_image")]
    pub vkCmdBindShadingRateImageNV: Option<PFN_vkCmdBindShadingRateImageNV>,
    #[cfg(feature = "vk_nv_shading_rate_image")]
    pub vkCmdSetViewportShadingRatePaletteNV: Option<PFN_vkCmdSetViewportShadingRatePaletteNV>,
    #[cfg(feature = "vk_nv_shading_rate_image")]
    pub vkCmdSetCoarseSampleOrderNV: Option<PFN_vkCmdSetCoarseSampleOrderNV>,
    #[cfg(feature = "vk_nv_mesh_shader")]
    pub vkCmdDrawMeshTasksNV: Option<PFN_vkCmdDrawMeshTasksNV>,
    #[cfg(feature = "vk_nv_mesh_shader")]
    pub vkCmdDrawMeshTasksIndirectNV: Option<PFN_vkCmdDrawMeshTasksIndirectNV>,
    #[cfg(all(
        feature = "vk_nv_mesh_shader",
        any(
            feature = "core_1_2",
            feature = "vk_amd_draw_indirect_count",
            feature = "vk_khr_draw_indirect_count"
        )
    ))]
    pub vkCmdDrawMeshTasksIndirectCountNV: Option<PFN_vkCmdDrawMeshTasksIndirectCountNV>,
    #[cfg(feature = "vk_ext_mesh_shader")]
    pub vkCmdDrawMeshTasksEXT: Option<PFN_vkCmdDrawMeshTasksEXT>,
    #[cfg(feature = "vk_ext_mesh_shader")]
    pub vkCmdDrawMeshTasksIndirectEXT: Option<PFN_vkCmdDrawMeshTasksIndirectEXT>,
    #[cfg(all(
        feature = "vk_ext_mesh_shader",
        any(
            feature = "core_1_2",
            feature = "vk_amd_draw_indirect_count",
            feature = "vk_khr_draw_indirect_count"
        )
    ))]
    pub vkCmdDrawMeshTasksIndirectCountEXT: Option<PFN_vkCmdDrawMeshTasksIndirectCountEXT>,
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub vkCompileDeferredNV: Option<PFN_vkCompileDeferredNV>,
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub vkCreateAccelerationStructureNV: Option<PFN_vkCreateAccelerationStructureNV>,
    #[cfg(feature = "vk_huawei_invocation_mask")]
    pub vkCmdBindInvocationMaskHUAWEI: Option<PFN_vkCmdBindInvocationMaskHUAWEI>,
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub vkDestroyAccelerationStructureKHR: Option<PFN_vkDestroyAccelerationStructureKHR>,
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub vkDestroyAccelerationStructureNV: Option<PFN_vkDestroyAccelerationStructureNV>,
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub vkGetAccelerationStructureMemoryRequirementsNV:
        Option<PFN_vkGetAccelerationStructureMemoryRequirementsNV>,
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub vkBindAccelerationStructureMemoryNV: Option<PFN_vkBindAccelerationStructureMemoryNV>,
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub vkCmdCopyAccelerationStructureNV: Option<PFN_vkCmdCopyAccelerationStructureNV>,
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub vkCmdCopyAccelerationStructureKHR: Option<PFN_vkCmdCopyAccelerationStructureKHR>,
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub vkCopyAccelerationStructureKHR: Option<PFN_vkCopyAccelerationStructureKHR>,
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub vkCmdCopyAccelerationStructureToMemoryKHR:
        Option<PFN_vkCmdCopyAccelerationStructureToMemoryKHR>,
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub vkCopyAccelerationStructureToMemoryKHR: Option<PFN_vkCopyAccelerationStructureToMemoryKHR>,
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub vkCmdCopyMemoryToAccelerationStructureKHR:
        Option<PFN_vkCmdCopyMemoryToAccelerationStructureKHR>,
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub vkCopyMemoryToAccelerationStructureKHR: Option<PFN_vkCopyMemoryToAccelerationStructureKHR>,
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub vkCmdWriteAccelerationStructuresPropertiesKHR:
        Option<PFN_vkCmdWriteAccelerationStructuresPropertiesKHR>,
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub vkCmdWriteAccelerationStructuresPropertiesNV:
        Option<PFN_vkCmdWriteAccelerationStructuresPropertiesNV>,
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub vkCmdBuildAccelerationStructureNV: Option<PFN_vkCmdBuildAccelerationStructureNV>,
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub vkWriteAccelerationStructuresPropertiesKHR:
        Option<PFN_vkWriteAccelerationStructuresPropertiesKHR>,
    #[cfg(feature = "vk_khr_ray_tracing_pipeline")]
    pub vkCmdTraceRaysKHR: Option<PFN_vkCmdTraceRaysKHR>,
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub vkCmdTraceRaysNV: Option<PFN_vkCmdTraceRaysNV>,
    #[cfg(feature = "vk_khr_ray_tracing_pipeline")]
    pub vkGetRayTracingShaderGroupHandlesKHR: Option<PFN_vkGetRayTracingShaderGroupHandlesKHR>,
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub vkGetRayTracingShaderGroupHandlesNV: Option<PFN_vkGetRayTracingShaderGroupHandlesNV>,
    #[cfg(feature = "vk_khr_ray_tracing_pipeline")]
    pub vkGetRayTracingCaptureReplayShaderGroupHandlesKHR:
        Option<PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR>,
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub vkGetAccelerationStructureHandleNV: Option<PFN_vkGetAccelerationStructureHandleNV>,
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub vkCreateRayTracingPipelinesNV: Option<PFN_vkCreateRayTracingPipelinesNV>,
    #[cfg(feature = "vk_khr_ray_tracing_pipeline")]
    pub vkCreateRayTracingPipelinesKHR: Option<PFN_vkCreateRayTracingPipelinesKHR>,
    #[cfg(feature = "vk_khr_ray_tracing_pipeline")]
    pub vkCmdTraceRaysIndirectKHR: Option<PFN_vkCmdTraceRaysIndirectKHR>,
    #[cfg(all(
        feature = "vk_khr_ray_tracing_maintenance1",
        feature = "vk_khr_ray_tracing_pipeline"
    ))]
    pub vkCmdTraceRaysIndirect2KHR: Option<PFN_vkCmdTraceRaysIndirect2KHR>,
    #[cfg(feature = "vk_nv_cluster_acceleration_structure")]
    pub vkGetClusterAccelerationStructureBuildSizesNV:
        Option<PFN_vkGetClusterAccelerationStructureBuildSizesNV>,
    #[cfg(feature = "vk_nv_cluster_acceleration_structure")]
    pub vkCmdBuildClusterAccelerationStructureIndirectNV:
        Option<PFN_vkCmdBuildClusterAccelerationStructureIndirectNV>,
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub vkGetDeviceAccelerationStructureCompatibilityKHR:
        Option<PFN_vkGetDeviceAccelerationStructureCompatibilityKHR>,
    #[cfg(feature = "vk_khr_ray_tracing_pipeline")]
    pub vkGetRayTracingShaderGroupStackSizeKHR: Option<PFN_vkGetRayTracingShaderGroupStackSizeKHR>,
    #[cfg(feature = "vk_khr_ray_tracing_pipeline")]
    pub vkCmdSetRayTracingPipelineStackSizeKHR: Option<PFN_vkCmdSetRayTracingPipelineStackSizeKHR>,
    #[cfg(feature = "vk_nvx_image_view_handle")]
    pub vkGetImageViewHandleNVX: Option<PFN_vkGetImageViewHandleNVX>,
    #[cfg(feature = "vk_nvx_image_view_handle")]
    pub vkGetImageViewHandle64NVX: Option<PFN_vkGetImageViewHandle64NVX>,
    #[cfg(feature = "vk_nvx_image_view_handle")]
    pub vkGetImageViewAddressNVX: Option<PFN_vkGetImageViewAddressNVX>,
    #[cfg(feature = "vk_nvx_image_view_handle")]
    pub vkGetDeviceCombinedImageSamplerIndexNVX:
        Option<PFN_vkGetDeviceCombinedImageSamplerIndexNVX>,
    #[cfg(all(
        feature = "vk_ext_full_screen_exclusive",
        any(feature = "core_1_1", feature = "vk_khr_device_group")
    ))]
    pub vkGetDeviceGroupSurfacePresentModes2EXT:
        Option<PFN_vkGetDeviceGroupSurfacePresentModes2EXT>,
    #[cfg(feature = "vk_ext_full_screen_exclusive")]
    pub vkAcquireFullScreenExclusiveModeEXT: Option<PFN_vkAcquireFullScreenExclusiveModeEXT>,
    #[cfg(feature = "vk_ext_full_screen_exclusive")]
    pub vkReleaseFullScreenExclusiveModeEXT: Option<PFN_vkReleaseFullScreenExclusiveModeEXT>,
    #[cfg(feature = "vk_khr_performance_query")]
    pub vkAcquireProfilingLockKHR: Option<PFN_vkAcquireProfilingLockKHR>,
    #[cfg(feature = "vk_khr_performance_query")]
    pub vkReleaseProfilingLockKHR: Option<PFN_vkReleaseProfilingLockKHR>,
    #[cfg(feature = "vk_ext_image_drm_format_modifier")]
    pub vkGetImageDrmFormatModifierPropertiesEXT:
        Option<PFN_vkGetImageDrmFormatModifierPropertiesEXT>,
    #[cfg(feature = "core_1_2")]
    pub vkGetBufferOpaqueCaptureAddress: Option<PFN_vkGetBufferOpaqueCaptureAddress>,
    #[cfg(feature = "vk_khr_buffer_device_address")]
    pub vkGetBufferOpaqueCaptureAddressKHR: Option<PFN_vkGetBufferOpaqueCaptureAddressKHR>,
    #[cfg(feature = "core_1_2")]
    pub vkGetBufferDeviceAddress: Option<PFN_vkGetBufferDeviceAddress>,
    #[cfg(feature = "vk_khr_buffer_device_address")]
    pub vkGetBufferDeviceAddressKHR: Option<PFN_vkGetBufferDeviceAddressKHR>,
    #[cfg(feature = "vk_ext_buffer_device_address")]
    pub vkGetBufferDeviceAddressEXT: Option<PFN_vkGetBufferDeviceAddressEXT>,
    #[cfg(feature = "vk_intel_performance_query")]
    pub vkInitializePerformanceApiINTEL: Option<PFN_vkInitializePerformanceApiINTEL>,
    #[cfg(feature = "vk_intel_performance_query")]
    pub vkUninitializePerformanceApiINTEL: Option<PFN_vkUninitializePerformanceApiINTEL>,
    #[cfg(feature = "vk_intel_performance_query")]
    pub vkCmdSetPerformanceMarkerINTEL: Option<PFN_vkCmdSetPerformanceMarkerINTEL>,
    #[cfg(feature = "vk_intel_performance_query")]
    pub vkCmdSetPerformanceStreamMarkerINTEL: Option<PFN_vkCmdSetPerformanceStreamMarkerINTEL>,
    #[cfg(feature = "vk_intel_performance_query")]
    pub vkCmdSetPerformanceOverrideINTEL: Option<PFN_vkCmdSetPerformanceOverrideINTEL>,
    #[cfg(feature = "vk_intel_performance_query")]
    pub vkAcquirePerformanceConfigurationINTEL: Option<PFN_vkAcquirePerformanceConfigurationINTEL>,
    #[cfg(feature = "vk_intel_performance_query")]
    pub vkReleasePerformanceConfigurationINTEL: Option<PFN_vkReleasePerformanceConfigurationINTEL>,
    #[cfg(feature = "vk_intel_performance_query")]
    pub vkQueueSetPerformanceConfigurationINTEL:
        Option<PFN_vkQueueSetPerformanceConfigurationINTEL>,
    #[cfg(feature = "vk_intel_performance_query")]
    pub vkGetPerformanceParameterINTEL: Option<PFN_vkGetPerformanceParameterINTEL>,
    #[cfg(feature = "core_1_2")]
    pub vkGetDeviceMemoryOpaqueCaptureAddress: Option<PFN_vkGetDeviceMemoryOpaqueCaptureAddress>,
    #[cfg(feature = "vk_khr_buffer_device_address")]
    pub vkGetDeviceMemoryOpaqueCaptureAddressKHR:
        Option<PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR>,
    #[cfg(feature = "vk_khr_pipeline_executable_properties")]
    pub vkGetPipelineExecutablePropertiesKHR: Option<PFN_vkGetPipelineExecutablePropertiesKHR>,
    #[cfg(feature = "vk_khr_pipeline_executable_properties")]
    pub vkGetPipelineExecutableStatisticsKHR: Option<PFN_vkGetPipelineExecutableStatisticsKHR>,
    #[cfg(feature = "vk_khr_pipeline_executable_properties")]
    pub vkGetPipelineExecutableInternalRepresentationsKHR:
        Option<PFN_vkGetPipelineExecutableInternalRepresentationsKHR>,
    #[cfg(feature = "core_1_4")]
    pub vkCmdSetLineStipple: Option<PFN_vkCmdSetLineStipple>,
    #[cfg(feature = "vk_khr_line_rasterization")]
    pub vkCmdSetLineStippleKHR: Option<PFN_vkCmdSetLineStippleKHR>,
    #[cfg(feature = "vk_ext_line_rasterization")]
    pub vkCmdSetLineStippleEXT: Option<PFN_vkCmdSetLineStippleEXT>,
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub vkCreateAccelerationStructureKHR: Option<PFN_vkCreateAccelerationStructureKHR>,
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub vkCmdBuildAccelerationStructuresKHR: Option<PFN_vkCmdBuildAccelerationStructuresKHR>,
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub vkCmdBuildAccelerationStructuresIndirectKHR:
        Option<PFN_vkCmdBuildAccelerationStructuresIndirectKHR>,
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub vkBuildAccelerationStructuresKHR: Option<PFN_vkBuildAccelerationStructuresKHR>,
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub vkGetAccelerationStructureDeviceAddressKHR:
        Option<PFN_vkGetAccelerationStructureDeviceAddressKHR>,
    #[cfg(feature = "vk_khr_deferred_host_operations")]
    pub vkCreateDeferredOperationKHR: Option<PFN_vkCreateDeferredOperationKHR>,
    #[cfg(feature = "vk_khr_deferred_host_operations")]
    pub vkDestroyDeferredOperationKHR: Option<PFN_vkDestroyDeferredOperationKHR>,
    #[cfg(feature = "vk_khr_deferred_host_operations")]
    pub vkGetDeferredOperationMaxConcurrencyKHR:
        Option<PFN_vkGetDeferredOperationMaxConcurrencyKHR>,
    #[cfg(feature = "vk_khr_deferred_host_operations")]
    pub vkGetDeferredOperationResultKHR: Option<PFN_vkGetDeferredOperationResultKHR>,
    #[cfg(feature = "vk_khr_deferred_host_operations")]
    pub vkDeferredOperationJoinKHR: Option<PFN_vkDeferredOperationJoinKHR>,
    #[cfg(feature = "vk_nv_device_generated_commands_compute")]
    pub vkGetPipelineIndirectMemoryRequirementsNV:
        Option<PFN_vkGetPipelineIndirectMemoryRequirementsNV>,
    #[cfg(feature = "vk_nv_device_generated_commands_compute")]
    pub vkGetPipelineIndirectDeviceAddressNV: Option<PFN_vkGetPipelineIndirectDeviceAddressNV>,
    #[cfg(feature = "vk_amd_anti_lag")]
    pub vkAntiLagUpdateAMD: Option<PFN_vkAntiLagUpdateAMD>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdSetCullMode: Option<PFN_vkCmdSetCullMode>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetCullModeEXT: Option<PFN_vkCmdSetCullModeEXT>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdSetFrontFace: Option<PFN_vkCmdSetFrontFace>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetFrontFaceEXT: Option<PFN_vkCmdSetFrontFaceEXT>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdSetPrimitiveTopology: Option<PFN_vkCmdSetPrimitiveTopology>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetPrimitiveTopologyEXT: Option<PFN_vkCmdSetPrimitiveTopologyEXT>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdSetViewportWithCount: Option<PFN_vkCmdSetViewportWithCount>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetViewportWithCountEXT: Option<PFN_vkCmdSetViewportWithCountEXT>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdSetScissorWithCount: Option<PFN_vkCmdSetScissorWithCount>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetScissorWithCountEXT: Option<PFN_vkCmdSetScissorWithCountEXT>,
    #[cfg(feature = "core_1_4")]
    pub vkCmdBindIndexBuffer2: Option<PFN_vkCmdBindIndexBuffer2>,
    #[cfg(feature = "vk_khr_maintenance5")]
    pub vkCmdBindIndexBuffer2KHR: Option<PFN_vkCmdBindIndexBuffer2KHR>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdBindVertexBuffers2: Option<PFN_vkCmdBindVertexBuffers2>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdBindVertexBuffers2EXT: Option<PFN_vkCmdBindVertexBuffers2EXT>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdSetDepthTestEnable: Option<PFN_vkCmdSetDepthTestEnable>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetDepthTestEnableEXT: Option<PFN_vkCmdSetDepthTestEnableEXT>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdSetDepthWriteEnable: Option<PFN_vkCmdSetDepthWriteEnable>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetDepthWriteEnableEXT: Option<PFN_vkCmdSetDepthWriteEnableEXT>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdSetDepthCompareOp: Option<PFN_vkCmdSetDepthCompareOp>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetDepthCompareOpEXT: Option<PFN_vkCmdSetDepthCompareOpEXT>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdSetDepthBoundsTestEnable: Option<PFN_vkCmdSetDepthBoundsTestEnable>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetDepthBoundsTestEnableEXT: Option<PFN_vkCmdSetDepthBoundsTestEnableEXT>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdSetStencilTestEnable: Option<PFN_vkCmdSetStencilTestEnable>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetStencilTestEnableEXT: Option<PFN_vkCmdSetStencilTestEnableEXT>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdSetStencilOp: Option<PFN_vkCmdSetStencilOp>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetStencilOpEXT: Option<PFN_vkCmdSetStencilOpEXT>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state2",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetPatchControlPointsEXT: Option<PFN_vkCmdSetPatchControlPointsEXT>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdSetRasterizerDiscardEnable: Option<PFN_vkCmdSetRasterizerDiscardEnable>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state2",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetRasterizerDiscardEnableEXT: Option<PFN_vkCmdSetRasterizerDiscardEnableEXT>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdSetDepthBiasEnable: Option<PFN_vkCmdSetDepthBiasEnable>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state2",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetDepthBiasEnableEXT: Option<PFN_vkCmdSetDepthBiasEnableEXT>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state2",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetLogicOpEXT: Option<PFN_vkCmdSetLogicOpEXT>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdSetPrimitiveRestartEnable: Option<PFN_vkCmdSetPrimitiveRestartEnable>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state2",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetPrimitiveRestartEnableEXT: Option<PFN_vkCmdSetPrimitiveRestartEnableEXT>,
    #[cfg(any(
        feature = "vk_ext_shader_object",
        all(
            feature = "vk_ext_extended_dynamic_state3",
            any(feature = "core_1_1", feature = "vk_khr_maintenance2")
        )
    ))]
    pub vkCmdSetTessellationDomainOriginEXT: Option<PFN_vkCmdSetTessellationDomainOriginEXT>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state3",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetDepthClampEnableEXT: Option<PFN_vkCmdSetDepthClampEnableEXT>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state3",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetPolygonModeEXT: Option<PFN_vkCmdSetPolygonModeEXT>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state3",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetRasterizationSamplesEXT: Option<PFN_vkCmdSetRasterizationSamplesEXT>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state3",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetSampleMaskEXT: Option<PFN_vkCmdSetSampleMaskEXT>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state3",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetAlphaToCoverageEnableEXT: Option<PFN_vkCmdSetAlphaToCoverageEnableEXT>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state3",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetAlphaToOneEnableEXT: Option<PFN_vkCmdSetAlphaToOneEnableEXT>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state3",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetLogicOpEnableEXT: Option<PFN_vkCmdSetLogicOpEnableEXT>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state3",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetColorBlendEnableEXT: Option<PFN_vkCmdSetColorBlendEnableEXT>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state3",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetColorBlendEquationEXT: Option<PFN_vkCmdSetColorBlendEquationEXT>,
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state3",
        feature = "vk_ext_shader_object"
    ))]
    pub vkCmdSetColorWriteMaskEXT: Option<PFN_vkCmdSetColorWriteMaskEXT>,
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_ext_transform_feedback"
        ),
        all(
            feature = "vk_ext_shader_object",
            feature = "vk_ext_transform_feedback"
        )
    ))]
    pub vkCmdSetRasterizationStreamEXT: Option<PFN_vkCmdSetRasterizationStreamEXT>,
    #[cfg(any(
        all(
            feature = "vk_ext_conservative_rasterization",
            feature = "vk_ext_extended_dynamic_state3"
        ),
        all(
            feature = "vk_ext_conservative_rasterization",
            feature = "vk_ext_shader_object"
        )
    ))]
    pub vkCmdSetConservativeRasterizationModeEXT:
        Option<PFN_vkCmdSetConservativeRasterizationModeEXT>,
    #[cfg(any(
        all(
            feature = "vk_ext_conservative_rasterization",
            feature = "vk_ext_extended_dynamic_state3"
        ),
        all(
            feature = "vk_ext_conservative_rasterization",
            feature = "vk_ext_shader_object"
        )
    ))]
    pub vkCmdSetExtraPrimitiveOverestimationSizeEXT:
        Option<PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT>,
    #[cfg(any(
        all(
            feature = "vk_ext_depth_clip_enable",
            feature = "vk_ext_extended_dynamic_state3"
        ),
        all(feature = "vk_ext_depth_clip_enable", feature = "vk_ext_shader_object")
    ))]
    pub vkCmdSetDepthClipEnableEXT: Option<PFN_vkCmdSetDepthClipEnableEXT>,
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_ext_sample_locations"
        ),
        all(feature = "vk_ext_sample_locations", feature = "vk_ext_shader_object")
    ))]
    pub vkCmdSetSampleLocationsEnableEXT: Option<PFN_vkCmdSetSampleLocationsEnableEXT>,
    #[cfg(any(
        all(
            feature = "vk_ext_blend_operation_advanced",
            feature = "vk_ext_extended_dynamic_state3"
        ),
        all(
            feature = "vk_ext_blend_operation_advanced",
            feature = "vk_ext_shader_object"
        )
    ))]
    pub vkCmdSetColorBlendAdvancedEXT: Option<PFN_vkCmdSetColorBlendAdvancedEXT>,
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_ext_provoking_vertex"
        ),
        all(feature = "vk_ext_provoking_vertex", feature = "vk_ext_shader_object")
    ))]
    pub vkCmdSetProvokingVertexModeEXT: Option<PFN_vkCmdSetProvokingVertexModeEXT>,
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            any(
                feature = "core_1_4",
                feature = "vk_ext_line_rasterization",
                feature = "vk_khr_line_rasterization"
            )
        ),
        all(
            feature = "vk_ext_shader_object",
            any(
                feature = "core_1_4",
                feature = "vk_ext_line_rasterization",
                feature = "vk_khr_line_rasterization"
            )
        )
    ))]
    pub vkCmdSetLineRasterizationModeEXT: Option<PFN_vkCmdSetLineRasterizationModeEXT>,
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            any(
                feature = "core_1_4",
                feature = "vk_ext_line_rasterization",
                feature = "vk_khr_line_rasterization"
            )
        ),
        all(
            feature = "vk_ext_shader_object",
            any(
                feature = "core_1_4",
                feature = "vk_ext_line_rasterization",
                feature = "vk_khr_line_rasterization"
            )
        )
    ))]
    pub vkCmdSetLineStippleEnableEXT: Option<PFN_vkCmdSetLineStippleEnableEXT>,
    #[cfg(any(
        all(
            feature = "vk_ext_depth_clip_control",
            feature = "vk_ext_extended_dynamic_state3"
        ),
        all(
            feature = "vk_ext_depth_clip_control",
            feature = "vk_ext_shader_object"
        )
    ))]
    pub vkCmdSetDepthClipNegativeOneToOneEXT: Option<PFN_vkCmdSetDepthClipNegativeOneToOneEXT>,
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_nv_clip_space_w_scaling"
        ),
        all(
            feature = "vk_ext_shader_object",
            feature = "vk_nv_clip_space_w_scaling"
        )
    ))]
    pub vkCmdSetViewportWScalingEnableNV: Option<PFN_vkCmdSetViewportWScalingEnableNV>,
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_nv_viewport_swizzle"
        ),
        all(feature = "vk_ext_shader_object", feature = "vk_nv_viewport_swizzle")
    ))]
    pub vkCmdSetViewportSwizzleNV: Option<PFN_vkCmdSetViewportSwizzleNV>,
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_nv_fragment_coverage_to_color"
        ),
        all(
            feature = "vk_ext_shader_object",
            feature = "vk_nv_fragment_coverage_to_color"
        )
    ))]
    pub vkCmdSetCoverageToColorEnableNV: Option<PFN_vkCmdSetCoverageToColorEnableNV>,
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_nv_fragment_coverage_to_color"
        ),
        all(
            feature = "vk_ext_shader_object",
            feature = "vk_nv_fragment_coverage_to_color"
        )
    ))]
    pub vkCmdSetCoverageToColorLocationNV: Option<PFN_vkCmdSetCoverageToColorLocationNV>,
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_nv_framebuffer_mixed_samples"
        ),
        all(
            feature = "vk_ext_shader_object",
            feature = "vk_nv_framebuffer_mixed_samples"
        )
    ))]
    pub vkCmdSetCoverageModulationModeNV: Option<PFN_vkCmdSetCoverageModulationModeNV>,
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_nv_framebuffer_mixed_samples"
        ),
        all(
            feature = "vk_ext_shader_object",
            feature = "vk_nv_framebuffer_mixed_samples"
        )
    ))]
    pub vkCmdSetCoverageModulationTableEnableNV:
        Option<PFN_vkCmdSetCoverageModulationTableEnableNV>,
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_nv_framebuffer_mixed_samples"
        ),
        all(
            feature = "vk_ext_shader_object",
            feature = "vk_nv_framebuffer_mixed_samples"
        )
    ))]
    pub vkCmdSetCoverageModulationTableNV: Option<PFN_vkCmdSetCoverageModulationTableNV>,
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_nv_shading_rate_image"
        ),
        all(feature = "vk_ext_shader_object", feature = "vk_nv_shading_rate_image")
    ))]
    pub vkCmdSetShadingRateImageEnableNV: Option<PFN_vkCmdSetShadingRateImageEnableNV>,
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_nv_coverage_reduction_mode"
        ),
        all(
            feature = "vk_ext_shader_object",
            feature = "vk_nv_coverage_reduction_mode"
        )
    ))]
    pub vkCmdSetCoverageReductionModeNV: Option<PFN_vkCmdSetCoverageReductionModeNV>,
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_nv_representative_fragment_test"
        ),
        all(
            feature = "vk_ext_shader_object",
            feature = "vk_nv_representative_fragment_test"
        )
    ))]
    pub vkCmdSetRepresentativeFragmentTestEnableNV:
        Option<PFN_vkCmdSetRepresentativeFragmentTestEnableNV>,
    #[cfg(feature = "core_1_3")]
    pub vkCreatePrivateDataSlot: Option<PFN_vkCreatePrivateDataSlot>,
    #[cfg(feature = "vk_ext_private_data")]
    pub vkCreatePrivateDataSlotEXT: Option<PFN_vkCreatePrivateDataSlotEXT>,
    #[cfg(feature = "core_1_3")]
    pub vkDestroyPrivateDataSlot: Option<PFN_vkDestroyPrivateDataSlot>,
    #[cfg(feature = "vk_ext_private_data")]
    pub vkDestroyPrivateDataSlotEXT: Option<PFN_vkDestroyPrivateDataSlotEXT>,
    #[cfg(feature = "core_1_3")]
    pub vkSetPrivateData: Option<PFN_vkSetPrivateData>,
    #[cfg(feature = "vk_ext_private_data")]
    pub vkSetPrivateDataEXT: Option<PFN_vkSetPrivateDataEXT>,
    #[cfg(feature = "core_1_3")]
    pub vkGetPrivateData: Option<PFN_vkGetPrivateData>,
    #[cfg(feature = "vk_ext_private_data")]
    pub vkGetPrivateDataEXT: Option<PFN_vkGetPrivateDataEXT>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdCopyBuffer2: Option<PFN_vkCmdCopyBuffer2>,
    #[cfg(feature = "vk_khr_copy_commands2")]
    pub vkCmdCopyBuffer2KHR: Option<PFN_vkCmdCopyBuffer2KHR>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdCopyImage2: Option<PFN_vkCmdCopyImage2>,
    #[cfg(feature = "vk_khr_copy_commands2")]
    pub vkCmdCopyImage2KHR: Option<PFN_vkCmdCopyImage2KHR>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdBlitImage2: Option<PFN_vkCmdBlitImage2>,
    #[cfg(feature = "vk_khr_copy_commands2")]
    pub vkCmdBlitImage2KHR: Option<PFN_vkCmdBlitImage2KHR>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdCopyBufferToImage2: Option<PFN_vkCmdCopyBufferToImage2>,
    #[cfg(feature = "vk_khr_copy_commands2")]
    pub vkCmdCopyBufferToImage2KHR: Option<PFN_vkCmdCopyBufferToImage2KHR>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdCopyImageToBuffer2: Option<PFN_vkCmdCopyImageToBuffer2>,
    #[cfg(feature = "vk_khr_copy_commands2")]
    pub vkCmdCopyImageToBuffer2KHR: Option<PFN_vkCmdCopyImageToBuffer2KHR>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdResolveImage2: Option<PFN_vkCmdResolveImage2>,
    #[cfg(feature = "vk_khr_copy_commands2")]
    pub vkCmdResolveImage2KHR: Option<PFN_vkCmdResolveImage2KHR>,
    #[cfg(feature = "vk_khr_fragment_shading_rate")]
    pub vkCmdSetFragmentShadingRateKHR: Option<PFN_vkCmdSetFragmentShadingRateKHR>,
    #[cfg(feature = "vk_nv_fragment_shading_rate_enums")]
    pub vkCmdSetFragmentShadingRateEnumNV: Option<PFN_vkCmdSetFragmentShadingRateEnumNV>,
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub vkGetAccelerationStructureBuildSizesKHR:
        Option<PFN_vkGetAccelerationStructureBuildSizesKHR>,
    #[cfg(any(
        feature = "vk_ext_shader_object",
        feature = "vk_ext_vertex_input_dynamic_state"
    ))]
    pub vkCmdSetVertexInputEXT: Option<PFN_vkCmdSetVertexInputEXT>,
    #[cfg(feature = "vk_ext_color_write_enable")]
    pub vkCmdSetColorWriteEnableEXT: Option<PFN_vkCmdSetColorWriteEnableEXT>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdSetEvent2: Option<PFN_vkCmdSetEvent2>,
    #[cfg(feature = "vk_khr_synchronization2")]
    pub vkCmdSetEvent2KHR: Option<PFN_vkCmdSetEvent2KHR>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdResetEvent2: Option<PFN_vkCmdResetEvent2>,
    #[cfg(feature = "vk_khr_synchronization2")]
    pub vkCmdResetEvent2KHR: Option<PFN_vkCmdResetEvent2KHR>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdWaitEvents2: Option<PFN_vkCmdWaitEvents2>,
    #[cfg(feature = "vk_khr_synchronization2")]
    pub vkCmdWaitEvents2KHR: Option<PFN_vkCmdWaitEvents2KHR>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdPipelineBarrier2: Option<PFN_vkCmdPipelineBarrier2>,
    #[cfg(feature = "vk_khr_synchronization2")]
    pub vkCmdPipelineBarrier2KHR: Option<PFN_vkCmdPipelineBarrier2KHR>,
    #[cfg(feature = "core_1_3")]
    pub vkQueueSubmit2: Option<PFN_vkQueueSubmit2>,
    #[cfg(feature = "vk_khr_synchronization2")]
    pub vkQueueSubmit2KHR: Option<PFN_vkQueueSubmit2KHR>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdWriteTimestamp2: Option<PFN_vkCmdWriteTimestamp2>,
    #[cfg(feature = "vk_khr_synchronization2")]
    pub vkCmdWriteTimestamp2KHR: Option<PFN_vkCmdWriteTimestamp2KHR>,
    #[cfg(all(
        feature = "vk_amd_buffer_marker",
        any(feature = "core_1_3", feature = "vk_khr_synchronization2")
    ))]
    pub vkCmdWriteBufferMarker2AMD: Option<PFN_vkCmdWriteBufferMarker2AMD>,
    #[cfg(all(
        feature = "vk_nv_device_diagnostic_checkpoints",
        any(feature = "core_1_3", feature = "vk_khr_synchronization2")
    ))]
    pub vkGetQueueCheckpointData2NV: Option<PFN_vkGetQueueCheckpointData2NV>,
    #[cfg(feature = "core_1_4")]
    pub vkCopyMemoryToImage: Option<PFN_vkCopyMemoryToImage>,
    #[cfg(feature = "vk_ext_host_image_copy")]
    pub vkCopyMemoryToImageEXT: Option<PFN_vkCopyMemoryToImageEXT>,
    #[cfg(feature = "core_1_4")]
    pub vkCopyImageToMemory: Option<PFN_vkCopyImageToMemory>,
    #[cfg(feature = "vk_ext_host_image_copy")]
    pub vkCopyImageToMemoryEXT: Option<PFN_vkCopyImageToMemoryEXT>,
    #[cfg(feature = "core_1_4")]
    pub vkCopyImageToImage: Option<PFN_vkCopyImageToImage>,
    #[cfg(feature = "vk_ext_host_image_copy")]
    pub vkCopyImageToImageEXT: Option<PFN_vkCopyImageToImageEXT>,
    #[cfg(feature = "core_1_4")]
    pub vkTransitionImageLayout: Option<PFN_vkTransitionImageLayout>,
    #[cfg(feature = "vk_ext_host_image_copy")]
    pub vkTransitionImageLayoutEXT: Option<PFN_vkTransitionImageLayoutEXT>,
    #[cfg(feature = "vk_khr_video_queue")]
    pub vkCreateVideoSessionKHR: Option<PFN_vkCreateVideoSessionKHR>,
    #[cfg(feature = "vk_khr_video_queue")]
    pub vkDestroyVideoSessionKHR: Option<PFN_vkDestroyVideoSessionKHR>,
    #[cfg(feature = "vk_khr_video_queue")]
    pub vkCreateVideoSessionParametersKHR: Option<PFN_vkCreateVideoSessionParametersKHR>,
    #[cfg(feature = "vk_khr_video_queue")]
    pub vkUpdateVideoSessionParametersKHR: Option<PFN_vkUpdateVideoSessionParametersKHR>,
    #[cfg(feature = "vk_khr_video_encode_queue")]
    pub vkGetEncodedVideoSessionParametersKHR: Option<PFN_vkGetEncodedVideoSessionParametersKHR>,
    #[cfg(feature = "vk_khr_video_queue")]
    pub vkDestroyVideoSessionParametersKHR: Option<PFN_vkDestroyVideoSessionParametersKHR>,
    #[cfg(feature = "vk_khr_video_queue")]
    pub vkGetVideoSessionMemoryRequirementsKHR: Option<PFN_vkGetVideoSessionMemoryRequirementsKHR>,
    #[cfg(feature = "vk_khr_video_queue")]
    pub vkBindVideoSessionMemoryKHR: Option<PFN_vkBindVideoSessionMemoryKHR>,
    #[cfg(feature = "vk_khr_video_decode_queue")]
    pub vkCmdDecodeVideoKHR: Option<PFN_vkCmdDecodeVideoKHR>,
    #[cfg(feature = "vk_khr_video_queue")]
    pub vkCmdBeginVideoCodingKHR: Option<PFN_vkCmdBeginVideoCodingKHR>,
    #[cfg(feature = "vk_khr_video_queue")]
    pub vkCmdControlVideoCodingKHR: Option<PFN_vkCmdControlVideoCodingKHR>,
    #[cfg(feature = "vk_khr_video_queue")]
    pub vkCmdEndVideoCodingKHR: Option<PFN_vkCmdEndVideoCodingKHR>,
    #[cfg(feature = "vk_khr_video_encode_queue")]
    pub vkCmdEncodeVideoKHR: Option<PFN_vkCmdEncodeVideoKHR>,
    #[cfg(feature = "vk_nv_memory_decompression")]
    pub vkCmdDecompressMemoryNV: Option<PFN_vkCmdDecompressMemoryNV>,
    #[cfg(feature = "vk_nv_memory_decompression")]
    pub vkCmdDecompressMemoryIndirectCountNV: Option<PFN_vkCmdDecompressMemoryIndirectCountNV>,
    #[cfg(feature = "vk_nv_partitioned_acceleration_structure")]
    pub vkGetPartitionedAccelerationStructuresBuildSizesNV:
        Option<PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV>,
    #[cfg(feature = "vk_nv_partitioned_acceleration_structure")]
    pub vkCmdBuildPartitionedAccelerationStructuresNV:
        Option<PFN_vkCmdBuildPartitionedAccelerationStructuresNV>,
    #[cfg(feature = "vk_ext_memory_decompression")]
    pub vkCmdDecompressMemoryEXT: Option<PFN_vkCmdDecompressMemoryEXT>,
    #[cfg(feature = "vk_ext_memory_decompression")]
    pub vkCmdDecompressMemoryIndirectCountEXT: Option<PFN_vkCmdDecompressMemoryIndirectCountEXT>,
    #[cfg(feature = "vk_nvx_binary_import")]
    pub vkCreateCuModuleNVX: Option<PFN_vkCreateCuModuleNVX>,
    #[cfg(feature = "vk_nvx_binary_import")]
    pub vkCreateCuFunctionNVX: Option<PFN_vkCreateCuFunctionNVX>,
    #[cfg(feature = "vk_nvx_binary_import")]
    pub vkDestroyCuModuleNVX: Option<PFN_vkDestroyCuModuleNVX>,
    #[cfg(feature = "vk_nvx_binary_import")]
    pub vkDestroyCuFunctionNVX: Option<PFN_vkDestroyCuFunctionNVX>,
    #[cfg(feature = "vk_nvx_binary_import")]
    pub vkCmdCuLaunchKernelNVX: Option<PFN_vkCmdCuLaunchKernelNVX>,
    #[cfg(feature = "vk_ext_descriptor_buffer")]
    pub vkGetDescriptorSetLayoutSizeEXT: Option<PFN_vkGetDescriptorSetLayoutSizeEXT>,
    #[cfg(feature = "vk_ext_descriptor_buffer")]
    pub vkGetDescriptorSetLayoutBindingOffsetEXT:
        Option<PFN_vkGetDescriptorSetLayoutBindingOffsetEXT>,
    #[cfg(feature = "vk_ext_descriptor_buffer")]
    pub vkGetDescriptorEXT: Option<PFN_vkGetDescriptorEXT>,
    #[cfg(feature = "vk_ext_descriptor_buffer")]
    pub vkCmdBindDescriptorBuffersEXT: Option<PFN_vkCmdBindDescriptorBuffersEXT>,
    #[cfg(feature = "vk_ext_descriptor_buffer")]
    pub vkCmdSetDescriptorBufferOffsetsEXT: Option<PFN_vkCmdSetDescriptorBufferOffsetsEXT>,
    #[cfg(feature = "vk_ext_descriptor_buffer")]
    pub vkCmdBindDescriptorBufferEmbeddedSamplersEXT:
        Option<PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT>,
    #[cfg(feature = "vk_ext_descriptor_buffer")]
    pub vkGetBufferOpaqueCaptureDescriptorDataEXT:
        Option<PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT>,
    #[cfg(feature = "vk_ext_descriptor_buffer")]
    pub vkGetImageOpaqueCaptureDescriptorDataEXT:
        Option<PFN_vkGetImageOpaqueCaptureDescriptorDataEXT>,
    #[cfg(feature = "vk_ext_descriptor_buffer")]
    pub vkGetImageViewOpaqueCaptureDescriptorDataEXT:
        Option<PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT>,
    #[cfg(feature = "vk_ext_descriptor_buffer")]
    pub vkGetSamplerOpaqueCaptureDescriptorDataEXT:
        Option<PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT>,
    #[cfg(all(
        feature = "vk_ext_descriptor_buffer",
        any(
            feature = "vk_khr_acceleration_structure",
            feature = "vk_nv_ray_tracing"
        )
    ))]
    pub vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT:
        Option<PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT>,
    #[cfg(feature = "vk_ext_pageable_device_local_memory")]
    pub vkSetDeviceMemoryPriorityEXT: Option<PFN_vkSetDeviceMemoryPriorityEXT>,
    #[cfg(feature = "vk_khr_present_wait2")]
    pub vkWaitForPresent2KHR: Option<PFN_vkWaitForPresent2KHR>,
    #[cfg(feature = "vk_khr_present_wait")]
    pub vkWaitForPresentKHR: Option<PFN_vkWaitForPresentKHR>,
    #[cfg(feature = "vk_fuchsia_buffer_collection")]
    pub vkCreateBufferCollectionFUCHSIA: Option<PFN_vkCreateBufferCollectionFUCHSIA>,
    #[cfg(feature = "vk_fuchsia_buffer_collection")]
    pub vkSetBufferCollectionBufferConstraintsFUCHSIA:
        Option<PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA>,
    #[cfg(feature = "vk_fuchsia_buffer_collection")]
    pub vkSetBufferCollectionImageConstraintsFUCHSIA:
        Option<PFN_vkSetBufferCollectionImageConstraintsFUCHSIA>,
    #[cfg(feature = "vk_fuchsia_buffer_collection")]
    pub vkDestroyBufferCollectionFUCHSIA: Option<PFN_vkDestroyBufferCollectionFUCHSIA>,
    #[cfg(feature = "vk_fuchsia_buffer_collection")]
    pub vkGetBufferCollectionPropertiesFUCHSIA: Option<PFN_vkGetBufferCollectionPropertiesFUCHSIA>,
    #[cfg(feature = "vk_nv_cuda_kernel_launch")]
    pub vkCreateCudaModuleNV: Option<PFN_vkCreateCudaModuleNV>,
    #[cfg(feature = "vk_nv_cuda_kernel_launch")]
    pub vkGetCudaModuleCacheNV: Option<PFN_vkGetCudaModuleCacheNV>,
    #[cfg(feature = "vk_nv_cuda_kernel_launch")]
    pub vkCreateCudaFunctionNV: Option<PFN_vkCreateCudaFunctionNV>,
    #[cfg(feature = "vk_nv_cuda_kernel_launch")]
    pub vkDestroyCudaModuleNV: Option<PFN_vkDestroyCudaModuleNV>,
    #[cfg(feature = "vk_nv_cuda_kernel_launch")]
    pub vkDestroyCudaFunctionNV: Option<PFN_vkDestroyCudaFunctionNV>,
    #[cfg(feature = "vk_nv_cuda_kernel_launch")]
    pub vkCmdCudaLaunchKernelNV: Option<PFN_vkCmdCudaLaunchKernelNV>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdBeginRendering: Option<PFN_vkCmdBeginRendering>,
    #[cfg(feature = "vk_khr_dynamic_rendering")]
    pub vkCmdBeginRenderingKHR: Option<PFN_vkCmdBeginRenderingKHR>,
    #[cfg(feature = "core_1_3")]
    pub vkCmdEndRendering: Option<PFN_vkCmdEndRendering>,
    #[cfg(feature = "vk_khr_maintenance10")]
    pub vkCmdEndRendering2KHR: Option<PFN_vkCmdEndRendering2KHR>,
    #[cfg(feature = "vk_ext_fragment_density_map_offset")]
    pub vkCmdEndRendering2EXT: Option<PFN_vkCmdEndRendering2EXT>,
    #[cfg(feature = "vk_khr_dynamic_rendering")]
    pub vkCmdEndRenderingKHR: Option<PFN_vkCmdEndRenderingKHR>,
    #[cfg(feature = "vk_valve_descriptor_set_host_mapping")]
    pub vkGetDescriptorSetLayoutHostMappingInfoVALVE:
        Option<PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE>,
    #[cfg(feature = "vk_valve_descriptor_set_host_mapping")]
    pub vkGetDescriptorSetHostMappingVALVE: Option<PFN_vkGetDescriptorSetHostMappingVALVE>,
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub vkCreateMicromapEXT: Option<PFN_vkCreateMicromapEXT>,
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub vkCmdBuildMicromapsEXT: Option<PFN_vkCmdBuildMicromapsEXT>,
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub vkBuildMicromapsEXT: Option<PFN_vkBuildMicromapsEXT>,
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub vkDestroyMicromapEXT: Option<PFN_vkDestroyMicromapEXT>,
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub vkCmdCopyMicromapEXT: Option<PFN_vkCmdCopyMicromapEXT>,
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub vkCopyMicromapEXT: Option<PFN_vkCopyMicromapEXT>,
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub vkCmdCopyMicromapToMemoryEXT: Option<PFN_vkCmdCopyMicromapToMemoryEXT>,
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub vkCopyMicromapToMemoryEXT: Option<PFN_vkCopyMicromapToMemoryEXT>,
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub vkCmdCopyMemoryToMicromapEXT: Option<PFN_vkCmdCopyMemoryToMicromapEXT>,
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub vkCopyMemoryToMicromapEXT: Option<PFN_vkCopyMemoryToMicromapEXT>,
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub vkCmdWriteMicromapsPropertiesEXT: Option<PFN_vkCmdWriteMicromapsPropertiesEXT>,
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub vkWriteMicromapsPropertiesEXT: Option<PFN_vkWriteMicromapsPropertiesEXT>,
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub vkGetDeviceMicromapCompatibilityEXT: Option<PFN_vkGetDeviceMicromapCompatibilityEXT>,
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub vkGetMicromapBuildSizesEXT: Option<PFN_vkGetMicromapBuildSizesEXT>,
    #[cfg(feature = "vk_ext_shader_module_identifier")]
    pub vkGetShaderModuleIdentifierEXT: Option<PFN_vkGetShaderModuleIdentifierEXT>,
    #[cfg(feature = "vk_ext_shader_module_identifier")]
    pub vkGetShaderModuleCreateInfoIdentifierEXT:
        Option<PFN_vkGetShaderModuleCreateInfoIdentifierEXT>,
    #[cfg(feature = "core_1_4")]
    pub vkGetImageSubresourceLayout2: Option<PFN_vkGetImageSubresourceLayout2>,
    #[cfg(feature = "vk_khr_maintenance5")]
    pub vkGetImageSubresourceLayout2KHR: Option<PFN_vkGetImageSubresourceLayout2KHR>,
    #[cfg(any(
        feature = "vk_ext_host_image_copy",
        feature = "vk_ext_image_compression_control"
    ))]
    pub vkGetImageSubresourceLayout2EXT: Option<PFN_vkGetImageSubresourceLayout2EXT>,
    #[cfg(feature = "vk_ext_pipeline_properties")]
    pub vkGetPipelinePropertiesEXT: Option<PFN_vkGetPipelinePropertiesEXT>,
    #[cfg(feature = "vk_ext_metal_objects")]
    pub vkExportMetalObjectsEXT: Option<PFN_vkExportMetalObjectsEXT>,
    #[cfg(feature = "vk_qcom_tile_memory_heap")]
    pub vkCmdBindTileMemoryQCOM: Option<PFN_vkCmdBindTileMemoryQCOM>,
    #[cfg(feature = "vk_qcom_tile_properties")]
    pub vkGetFramebufferTilePropertiesQCOM: Option<PFN_vkGetFramebufferTilePropertiesQCOM>,
    #[cfg(feature = "vk_qcom_tile_properties")]
    pub vkGetDynamicRenderingTilePropertiesQCOM:
        Option<PFN_vkGetDynamicRenderingTilePropertiesQCOM>,
    #[cfg(feature = "vk_nv_optical_flow")]
    pub vkCreateOpticalFlowSessionNV: Option<PFN_vkCreateOpticalFlowSessionNV>,
    #[cfg(feature = "vk_nv_optical_flow")]
    pub vkDestroyOpticalFlowSessionNV: Option<PFN_vkDestroyOpticalFlowSessionNV>,
    #[cfg(feature = "vk_nv_optical_flow")]
    pub vkBindOpticalFlowSessionImageNV: Option<PFN_vkBindOpticalFlowSessionImageNV>,
    #[cfg(feature = "vk_nv_optical_flow")]
    pub vkCmdOpticalFlowExecuteNV: Option<PFN_vkCmdOpticalFlowExecuteNV>,
    #[cfg(feature = "vk_ext_device_fault")]
    pub vkGetDeviceFaultInfoEXT: Option<PFN_vkGetDeviceFaultInfoEXT>,
    #[cfg(feature = "vk_khr_device_fault")]
    pub vkGetDeviceFaultReportsKHR: Option<PFN_vkGetDeviceFaultReportsKHR>,
    #[cfg(feature = "vk_khr_device_fault")]
    pub vkGetDeviceFaultDebugInfoKHR: Option<PFN_vkGetDeviceFaultDebugInfoKHR>,
    #[cfg(feature = "vk_ext_depth_bias_control")]
    pub vkCmdSetDepthBias2EXT: Option<PFN_vkCmdSetDepthBias2EXT>,
    #[cfg(feature = "vk_khr_swapchain_maintenance1")]
    pub vkReleaseSwapchainImagesKHR: Option<PFN_vkReleaseSwapchainImagesKHR>,
    #[cfg(feature = "vk_ext_swapchain_maintenance1")]
    pub vkReleaseSwapchainImagesEXT: Option<PFN_vkReleaseSwapchainImagesEXT>,
    #[cfg(feature = "core_1_4")]
    pub vkGetDeviceImageSubresourceLayout: Option<PFN_vkGetDeviceImageSubresourceLayout>,
    #[cfg(feature = "vk_khr_maintenance5")]
    pub vkGetDeviceImageSubresourceLayoutKHR: Option<PFN_vkGetDeviceImageSubresourceLayoutKHR>,
    #[cfg(feature = "core_1_4")]
    pub vkMapMemory2: Option<PFN_vkMapMemory2>,
    #[cfg(feature = "vk_khr_map_memory2")]
    pub vkMapMemory2KHR: Option<PFN_vkMapMemory2KHR>,
    #[cfg(feature = "core_1_4")]
    pub vkUnmapMemory2: Option<PFN_vkUnmapMemory2>,
    #[cfg(feature = "vk_khr_map_memory2")]
    pub vkUnmapMemory2KHR: Option<PFN_vkUnmapMemory2KHR>,
    #[cfg(feature = "vk_ext_shader_object")]
    pub vkCreateShadersEXT: Option<PFN_vkCreateShadersEXT>,
    #[cfg(feature = "vk_ext_shader_object")]
    pub vkDestroyShaderEXT: Option<PFN_vkDestroyShaderEXT>,
    #[cfg(feature = "vk_ext_shader_object")]
    pub vkGetShaderBinaryDataEXT: Option<PFN_vkGetShaderBinaryDataEXT>,
    #[cfg(feature = "vk_ext_shader_object")]
    pub vkCmdBindShadersEXT: Option<PFN_vkCmdBindShadersEXT>,
    #[cfg(feature = "vk_ext_present_timing")]
    pub vkSetSwapchainPresentTimingQueueSizeEXT:
        Option<PFN_vkSetSwapchainPresentTimingQueueSizeEXT>,
    #[cfg(feature = "vk_ext_present_timing")]
    pub vkGetSwapchainTimingPropertiesEXT: Option<PFN_vkGetSwapchainTimingPropertiesEXT>,
    #[cfg(feature = "vk_ext_present_timing")]
    pub vkGetSwapchainTimeDomainPropertiesEXT: Option<PFN_vkGetSwapchainTimeDomainPropertiesEXT>,
    #[cfg(feature = "vk_ext_present_timing")]
    pub vkGetPastPresentationTimingEXT: Option<PFN_vkGetPastPresentationTimingEXT>,
    #[cfg(feature = "vk_qnx_external_memory_screen_buffer")]
    pub vkGetScreenBufferPropertiesQNX: Option<PFN_vkGetScreenBufferPropertiesQNX>,
    #[cfg(feature = "vk_amdx_shader_enqueue")]
    pub vkGetExecutionGraphPipelineScratchSizeAMDX:
        Option<PFN_vkGetExecutionGraphPipelineScratchSizeAMDX>,
    #[cfg(feature = "vk_amdx_shader_enqueue")]
    pub vkGetExecutionGraphPipelineNodeIndexAMDX:
        Option<PFN_vkGetExecutionGraphPipelineNodeIndexAMDX>,
    #[cfg(feature = "vk_amdx_shader_enqueue")]
    pub vkCreateExecutionGraphPipelinesAMDX: Option<PFN_vkCreateExecutionGraphPipelinesAMDX>,
    #[cfg(feature = "vk_amdx_shader_enqueue")]
    pub vkCmdInitializeGraphScratchMemoryAMDX: Option<PFN_vkCmdInitializeGraphScratchMemoryAMDX>,
    #[cfg(feature = "vk_amdx_shader_enqueue")]
    pub vkCmdDispatchGraphAMDX: Option<PFN_vkCmdDispatchGraphAMDX>,
    #[cfg(feature = "vk_amdx_shader_enqueue")]
    pub vkCmdDispatchGraphIndirectAMDX: Option<PFN_vkCmdDispatchGraphIndirectAMDX>,
    #[cfg(feature = "vk_amdx_shader_enqueue")]
    pub vkCmdDispatchGraphIndirectCountAMDX: Option<PFN_vkCmdDispatchGraphIndirectCountAMDX>,
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub vkCreateGpaSessionAMD: Option<PFN_vkCreateGpaSessionAMD>,
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub vkDestroyGpaSessionAMD: Option<PFN_vkDestroyGpaSessionAMD>,
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub vkSetGpaDeviceClockModeAMD: Option<PFN_vkSetGpaDeviceClockModeAMD>,
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub vkGetGpaDeviceClockInfoAMD: Option<PFN_vkGetGpaDeviceClockInfoAMD>,
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub vkCmdBeginGpaSessionAMD: Option<PFN_vkCmdBeginGpaSessionAMD>,
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub vkCmdEndGpaSessionAMD: Option<PFN_vkCmdEndGpaSessionAMD>,
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub vkCmdBeginGpaSampleAMD: Option<PFN_vkCmdBeginGpaSampleAMD>,
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub vkCmdEndGpaSampleAMD: Option<PFN_vkCmdEndGpaSampleAMD>,
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub vkGetGpaSessionStatusAMD: Option<PFN_vkGetGpaSessionStatusAMD>,
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub vkGetGpaSessionResultsAMD: Option<PFN_vkGetGpaSessionResultsAMD>,
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub vkResetGpaSessionAMD: Option<PFN_vkResetGpaSessionAMD>,
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub vkCmdCopyGpaSessionResultsAMD: Option<PFN_vkCmdCopyGpaSessionResultsAMD>,
    #[cfg(feature = "core_1_4")]
    pub vkCmdBindDescriptorSets2: Option<PFN_vkCmdBindDescriptorSets2>,
    #[cfg(feature = "vk_khr_maintenance6")]
    pub vkCmdBindDescriptorSets2KHR: Option<PFN_vkCmdBindDescriptorSets2KHR>,
    #[cfg(feature = "core_1_4")]
    pub vkCmdPushConstants2: Option<PFN_vkCmdPushConstants2>,
    #[cfg(feature = "vk_khr_maintenance6")]
    pub vkCmdPushConstants2KHR: Option<PFN_vkCmdPushConstants2KHR>,
    #[cfg(feature = "core_1_4")]
    pub vkCmdPushDescriptorSet2: Option<PFN_vkCmdPushDescriptorSet2>,
    #[cfg(all(feature = "vk_khr_maintenance6", feature = "vk_khr_push_descriptor"))]
    pub vkCmdPushDescriptorSet2KHR: Option<PFN_vkCmdPushDescriptorSet2KHR>,
    #[cfg(feature = "core_1_4")]
    pub vkCmdPushDescriptorSetWithTemplate2: Option<PFN_vkCmdPushDescriptorSetWithTemplate2>,
    #[cfg(all(feature = "vk_khr_maintenance6", feature = "vk_khr_push_descriptor"))]
    pub vkCmdPushDescriptorSetWithTemplate2KHR: Option<PFN_vkCmdPushDescriptorSetWithTemplate2KHR>,
    #[cfg(all(feature = "vk_ext_descriptor_buffer", feature = "vk_khr_maintenance6"))]
    pub vkCmdSetDescriptorBufferOffsets2EXT: Option<PFN_vkCmdSetDescriptorBufferOffsets2EXT>,
    #[cfg(all(feature = "vk_ext_descriptor_buffer", feature = "vk_khr_maintenance6"))]
    pub vkCmdBindDescriptorBufferEmbeddedSamplers2EXT:
        Option<PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT>,
    #[cfg(feature = "vk_nv_low_latency2")]
    pub vkSetLatencySleepModeNV: Option<PFN_vkSetLatencySleepModeNV>,
    #[cfg(feature = "vk_nv_low_latency2")]
    pub vkLatencySleepNV: Option<PFN_vkLatencySleepNV>,
    #[cfg(feature = "vk_nv_low_latency2")]
    pub vkSetLatencyMarkerNV: Option<PFN_vkSetLatencyMarkerNV>,
    #[cfg(feature = "vk_nv_low_latency2")]
    pub vkGetLatencyTimingsNV: Option<PFN_vkGetLatencyTimingsNV>,
    #[cfg(feature = "vk_nv_low_latency2")]
    pub vkQueueNotifyOutOfBandNV: Option<PFN_vkQueueNotifyOutOfBandNV>,
    #[cfg(feature = "vk_nv_low_latency")]
    pub vkSetLatencySleepModeLegacyNV: Option<PFN_vkSetLatencySleepModeLegacyNV>,
    #[cfg(feature = "vk_nv_low_latency")]
    pub vkLatencySleepLegacyNV: Option<PFN_vkLatencySleepLegacyNV>,
    #[cfg(feature = "vk_nv_low_latency")]
    pub vkSetLatencyMarkerLegacyNV: Option<PFN_vkSetLatencyMarkerLegacyNV>,
    #[cfg(feature = "vk_nv_low_latency")]
    pub vkGetLatencyTimingsLegacyNV: Option<PFN_vkGetLatencyTimingsLegacyNV>,
    #[cfg(feature = "vk_nv_low_latency")]
    pub vkQueueNotifyOutOfBandLegacyNV: Option<PFN_vkQueueNotifyOutOfBandLegacyNV>,
    #[cfg(feature = "vk_nv_low_latency")]
    pub vkGetSleepStatusLegacyNV: Option<PFN_vkGetSleepStatusLegacyNV>,
    #[cfg(feature = "vk_nv_low_latency")]
    pub vkShutdownLatencyDeviceLegacyNV: Option<PFN_vkShutdownLatencyDeviceLegacyNV>,
    #[cfg(feature = "core_1_4")]
    pub vkCmdSetRenderingAttachmentLocations: Option<PFN_vkCmdSetRenderingAttachmentLocations>,
    #[cfg(feature = "vk_khr_dynamic_rendering_local_read")]
    pub vkCmdSetRenderingAttachmentLocationsKHR:
        Option<PFN_vkCmdSetRenderingAttachmentLocationsKHR>,
    #[cfg(feature = "core_1_4")]
    pub vkCmdSetRenderingInputAttachmentIndices:
        Option<PFN_vkCmdSetRenderingInputAttachmentIndices>,
    #[cfg(feature = "vk_khr_dynamic_rendering_local_read")]
    pub vkCmdSetRenderingInputAttachmentIndicesKHR:
        Option<PFN_vkCmdSetRenderingInputAttachmentIndicesKHR>,
    #[cfg(feature = "vk_ext_depth_clamp_control")]
    pub vkCmdSetDepthClampRangeEXT: Option<PFN_vkCmdSetDepthClampRangeEXT>,
    #[cfg(feature = "vk_ext_external_memory_metal")]
    pub vkGetMemoryMetalHandleEXT: Option<PFN_vkGetMemoryMetalHandleEXT>,
    #[cfg(feature = "vk_ext_external_memory_metal")]
    pub vkGetMemoryMetalHandlePropertiesEXT: Option<PFN_vkGetMemoryMetalHandlePropertiesEXT>,
    #[cfg(feature = "vk_nv_cooperative_vector")]
    pub vkConvertCooperativeVectorMatrixNV: Option<PFN_vkConvertCooperativeVectorMatrixNV>,
    #[cfg(feature = "vk_nv_cooperative_vector")]
    pub vkCmdConvertCooperativeVectorMatrixNV: Option<PFN_vkCmdConvertCooperativeVectorMatrixNV>,
    #[cfg(feature = "vk_qcom_tile_shading")]
    pub vkCmdDispatchTileQCOM: Option<PFN_vkCmdDispatchTileQCOM>,
    #[cfg(feature = "vk_qcom_tile_shading")]
    pub vkCmdBeginPerTileExecutionQCOM: Option<PFN_vkCmdBeginPerTileExecutionQCOM>,
    #[cfg(feature = "vk_qcom_tile_shading")]
    pub vkCmdEndPerTileExecutionQCOM: Option<PFN_vkCmdEndPerTileExecutionQCOM>,
    #[cfg(feature = "vk_nv_external_compute_queue")]
    pub vkCreateExternalComputeQueueNV: Option<PFN_vkCreateExternalComputeQueueNV>,
    #[cfg(feature = "vk_nv_external_compute_queue")]
    pub vkDestroyExternalComputeQueueNV: Option<PFN_vkDestroyExternalComputeQueueNV>,
    #[cfg(feature = "vk_nv_external_compute_queue")]
    pub vkGetExternalComputeQueueDataNV: Option<PFN_vkGetExternalComputeQueueDataNV>,
    #[cfg(feature = "vk_arm_shader_instrumentation")]
    pub vkCreateShaderInstrumentationARM: Option<PFN_vkCreateShaderInstrumentationARM>,
    #[cfg(feature = "vk_arm_shader_instrumentation")]
    pub vkDestroyShaderInstrumentationARM: Option<PFN_vkDestroyShaderInstrumentationARM>,
    #[cfg(feature = "vk_arm_shader_instrumentation")]
    pub vkCmdBeginShaderInstrumentationARM: Option<PFN_vkCmdBeginShaderInstrumentationARM>,
    #[cfg(feature = "vk_arm_shader_instrumentation")]
    pub vkCmdEndShaderInstrumentationARM: Option<PFN_vkCmdEndShaderInstrumentationARM>,
    #[cfg(feature = "vk_arm_shader_instrumentation")]
    pub vkGetShaderInstrumentationValuesARM: Option<PFN_vkGetShaderInstrumentationValuesARM>,
    #[cfg(feature = "vk_arm_shader_instrumentation")]
    pub vkClearShaderInstrumentationMetricsARM: Option<PFN_vkClearShaderInstrumentationMetricsARM>,
    #[cfg(feature = "vk_arm_tensors")]
    pub vkCreateTensorARM: Option<PFN_vkCreateTensorARM>,
    #[cfg(feature = "vk_arm_tensors")]
    pub vkDestroyTensorARM: Option<PFN_vkDestroyTensorARM>,
    #[cfg(feature = "vk_arm_tensors")]
    pub vkCreateTensorViewARM: Option<PFN_vkCreateTensorViewARM>,
    #[cfg(feature = "vk_arm_tensors")]
    pub vkDestroyTensorViewARM: Option<PFN_vkDestroyTensorViewARM>,
    #[cfg(feature = "vk_arm_tensors")]
    pub vkGetTensorMemoryRequirementsARM: Option<PFN_vkGetTensorMemoryRequirementsARM>,
    #[cfg(feature = "vk_arm_tensors")]
    pub vkBindTensorMemoryARM: Option<PFN_vkBindTensorMemoryARM>,
    #[cfg(feature = "vk_arm_tensors")]
    pub vkGetDeviceTensorMemoryRequirementsARM: Option<PFN_vkGetDeviceTensorMemoryRequirementsARM>,
    #[cfg(feature = "vk_arm_tensors")]
    pub vkCmdCopyTensorARM: Option<PFN_vkCmdCopyTensorARM>,
    #[cfg(all(feature = "vk_arm_tensors", feature = "vk_ext_descriptor_buffer"))]
    pub vkGetTensorOpaqueCaptureDescriptorDataARM:
        Option<PFN_vkGetTensorOpaqueCaptureDescriptorDataARM>,
    #[cfg(all(feature = "vk_arm_tensors", feature = "vk_ext_descriptor_buffer"))]
    pub vkGetTensorViewOpaqueCaptureDescriptorDataARM:
        Option<PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM>,
    #[cfg(feature = "vk_arm_data_graph")]
    pub vkCreateDataGraphPipelinesARM: Option<PFN_vkCreateDataGraphPipelinesARM>,
    #[cfg(feature = "vk_arm_data_graph")]
    pub vkCreateDataGraphPipelineSessionARM: Option<PFN_vkCreateDataGraphPipelineSessionARM>,
    #[cfg(feature = "vk_arm_data_graph")]
    pub vkGetDataGraphPipelineSessionBindPointRequirementsARM:
        Option<PFN_vkGetDataGraphPipelineSessionBindPointRequirementsARM>,
    #[cfg(feature = "vk_arm_data_graph")]
    pub vkGetDataGraphPipelineSessionMemoryRequirementsARM:
        Option<PFN_vkGetDataGraphPipelineSessionMemoryRequirementsARM>,
    #[cfg(feature = "vk_arm_data_graph")]
    pub vkBindDataGraphPipelineSessionMemoryARM:
        Option<PFN_vkBindDataGraphPipelineSessionMemoryARM>,
    #[cfg(feature = "vk_arm_data_graph")]
    pub vkDestroyDataGraphPipelineSessionARM: Option<PFN_vkDestroyDataGraphPipelineSessionARM>,
    #[cfg(feature = "vk_arm_data_graph")]
    pub vkCmdDispatchDataGraphARM: Option<PFN_vkCmdDispatchDataGraphARM>,
    #[cfg(feature = "vk_arm_data_graph")]
    pub vkGetDataGraphPipelineAvailablePropertiesARM:
        Option<PFN_vkGetDataGraphPipelineAvailablePropertiesARM>,
    #[cfg(feature = "vk_arm_data_graph")]
    pub vkGetDataGraphPipelinePropertiesARM: Option<PFN_vkGetDataGraphPipelinePropertiesARM>,
    #[cfg(feature = "vk_ohos_external_memory")]
    pub vkGetNativeBufferPropertiesOHOS: Option<PFN_vkGetNativeBufferPropertiesOHOS>,
    #[cfg(feature = "vk_ohos_external_memory")]
    pub vkGetMemoryNativeBufferOHOS: Option<PFN_vkGetMemoryNativeBufferOHOS>,
    #[cfg(feature = "vk_qcom_queue_perf_hint")]
    pub vkQueueSetPerfHintQCOM: Option<PFN_vkQueueSetPerfHintQCOM>,
    #[cfg(feature = "vk_nv_compute_occupancy_priority")]
    pub vkCmdSetComputeOccupancyPriorityNV: Option<PFN_vkCmdSetComputeOccupancyPriorityNV>,
    #[cfg(feature = "vk_ext_descriptor_heap")]
    pub vkWriteSamplerDescriptorsEXT: Option<PFN_vkWriteSamplerDescriptorsEXT>,
    #[cfg(feature = "vk_ext_descriptor_heap")]
    pub vkWriteResourceDescriptorsEXT: Option<PFN_vkWriteResourceDescriptorsEXT>,
    #[cfg(feature = "vk_ext_descriptor_heap")]
    pub vkCmdBindSamplerHeapEXT: Option<PFN_vkCmdBindSamplerHeapEXT>,
    #[cfg(feature = "vk_ext_descriptor_heap")]
    pub vkCmdBindResourceHeapEXT: Option<PFN_vkCmdBindResourceHeapEXT>,
    #[cfg(feature = "vk_ext_descriptor_heap")]
    pub vkCmdPushDataEXT: Option<PFN_vkCmdPushDataEXT>,
    #[cfg(all(
        feature = "vk_ext_custom_border_color",
        feature = "vk_ext_descriptor_heap"
    ))]
    pub vkRegisterCustomBorderColorEXT: Option<PFN_vkRegisterCustomBorderColorEXT>,
    #[cfg(all(
        feature = "vk_ext_custom_border_color",
        feature = "vk_ext_descriptor_heap"
    ))]
    pub vkUnregisterCustomBorderColorEXT: Option<PFN_vkUnregisterCustomBorderColorEXT>,
    #[cfg(feature = "vk_ext_descriptor_heap")]
    pub vkGetImageOpaqueCaptureDataEXT: Option<PFN_vkGetImageOpaqueCaptureDataEXT>,
    #[cfg(all(feature = "vk_arm_tensors", feature = "vk_ext_descriptor_heap"))]
    pub vkGetTensorOpaqueCaptureDataARM: Option<PFN_vkGetTensorOpaqueCaptureDataARM>,
    #[cfg(feature = "vk_khr_device_address_commands")]
    pub vkCmdCopyMemoryKHR: Option<PFN_vkCmdCopyMemoryKHR>,
    #[cfg(feature = "vk_khr_device_address_commands")]
    pub vkCmdCopyMemoryToImageKHR: Option<PFN_vkCmdCopyMemoryToImageKHR>,
    #[cfg(feature = "vk_khr_device_address_commands")]
    pub vkCmdCopyImageToMemoryKHR: Option<PFN_vkCmdCopyImageToMemoryKHR>,
    #[cfg(feature = "vk_khr_device_address_commands")]
    pub vkCmdUpdateMemoryKHR: Option<PFN_vkCmdUpdateMemoryKHR>,
    #[cfg(feature = "vk_khr_device_address_commands")]
    pub vkCmdFillMemoryKHR: Option<PFN_vkCmdFillMemoryKHR>,
    #[cfg(feature = "vk_khr_device_address_commands")]
    pub vkCmdCopyQueryPoolResultsToMemoryKHR: Option<PFN_vkCmdCopyQueryPoolResultsToMemoryKHR>,
    #[cfg(all(
        feature = "vk_ext_conditional_rendering",
        feature = "vk_khr_device_address_commands"
    ))]
    pub vkCmdBeginConditionalRendering2EXT: Option<PFN_vkCmdBeginConditionalRendering2EXT>,
    #[cfg(all(
        feature = "vk_ext_transform_feedback",
        feature = "vk_khr_device_address_commands"
    ))]
    pub vkCmdBindTransformFeedbackBuffers2EXT: Option<PFN_vkCmdBindTransformFeedbackBuffers2EXT>,
    #[cfg(all(
        feature = "vk_ext_transform_feedback",
        feature = "vk_khr_device_address_commands"
    ))]
    pub vkCmdBeginTransformFeedback2EXT: Option<PFN_vkCmdBeginTransformFeedback2EXT>,
    #[cfg(all(
        feature = "vk_ext_transform_feedback",
        feature = "vk_khr_device_address_commands"
    ))]
    pub vkCmdEndTransformFeedback2EXT: Option<PFN_vkCmdEndTransformFeedback2EXT>,
    #[cfg(all(
        feature = "vk_ext_transform_feedback",
        feature = "vk_khr_device_address_commands"
    ))]
    pub vkCmdDrawIndirectByteCount2EXT: Option<PFN_vkCmdDrawIndirectByteCount2EXT>,
    #[cfg(all(
        feature = "vk_amd_buffer_marker",
        feature = "vk_khr_device_address_commands"
    ))]
    pub vkCmdWriteMarkerToMemoryAMD: Option<PFN_vkCmdWriteMarkerToMemoryAMD>,
    #[cfg(feature = "vk_khr_device_address_commands")]
    pub vkCmdBindIndexBuffer3KHR: Option<PFN_vkCmdBindIndexBuffer3KHR>,
    #[cfg(feature = "vk_khr_device_address_commands")]
    pub vkCmdBindVertexBuffers3KHR: Option<PFN_vkCmdBindVertexBuffers3KHR>,
    #[cfg(feature = "vk_khr_device_address_commands")]
    pub vkCmdDrawIndirect2KHR: Option<PFN_vkCmdDrawIndirect2KHR>,
    #[cfg(feature = "vk_khr_device_address_commands")]
    pub vkCmdDrawIndexedIndirect2KHR: Option<PFN_vkCmdDrawIndexedIndirect2KHR>,
    #[cfg(all(
        feature = "vk_khr_device_address_commands",
        any(feature = "core_1_2", feature = "vk_khr_draw_indirect_count")
    ))]
    pub vkCmdDrawIndirectCount2KHR: Option<PFN_vkCmdDrawIndirectCount2KHR>,
    #[cfg(all(
        feature = "vk_khr_device_address_commands",
        any(feature = "core_1_2", feature = "vk_khr_draw_indirect_count")
    ))]
    pub vkCmdDrawIndexedIndirectCount2KHR: Option<PFN_vkCmdDrawIndexedIndirectCount2KHR>,
    #[cfg(all(
        feature = "vk_ext_mesh_shader",
        feature = "vk_khr_device_address_commands"
    ))]
    pub vkCmdDrawMeshTasksIndirect2EXT: Option<PFN_vkCmdDrawMeshTasksIndirect2EXT>,
    #[cfg(all(
        feature = "vk_ext_mesh_shader",
        feature = "vk_khr_device_address_commands",
        any(feature = "core_1_2", feature = "vk_khr_draw_indirect_count")
    ))]
    pub vkCmdDrawMeshTasksIndirectCount2EXT: Option<PFN_vkCmdDrawMeshTasksIndirectCount2EXT>,
    #[cfg(feature = "vk_khr_device_address_commands")]
    pub vkCmdDispatchIndirect2KHR: Option<PFN_vkCmdDispatchIndirect2KHR>,
    #[cfg(all(
        feature = "vk_khr_acceleration_structure",
        feature = "vk_khr_device_address_commands"
    ))]
    pub vkCreateAccelerationStructure2KHR: Option<PFN_vkCreateAccelerationStructure2KHR>,
    #[cfg(feature = "vk_arm_scheduling_controls")]
    pub vkCmdSetDispatchParametersARM: Option<PFN_vkCmdSetDispatchParametersARM>,
}

impl CmdsDevice {
    #[cfg(feature = "core_1_0")]
    pub unsafe fn load(
        library: &libloading::Library,
        instance: VkInstance,
        device: VkDevice,
    ) -> Result<Self, LoadError> {
        let get_instance_proc_addr = unsafe { load_get_instance_proc_addr(library)? };
        let get_device_proc_addr: PFN_vkGetDeviceProcAddr = unsafe {
            load_instance_command(get_instance_proc_addr, instance, c"vkGetDeviceProcAddr")
        }
        .ok_or(LoadError::MissingBootstrap {
            name: c"vkGetDeviceProcAddr",
        })?;
        Ok(unsafe { Self::from_proc_addr(get_device_proc_addr, device) })
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn from_proc_addr(
        get_device_proc_addr: PFN_vkGetDeviceProcAddr,
        device: VkDevice,
    ) -> Self {
        Self {
            #[cfg(feature = "core_1_0")]
            vkDestroyDevice: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyDevice")
            },
            #[cfg(feature = "core_1_0")]
            vkGetDeviceQueue: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetDeviceQueue")
            },
            #[cfg(feature = "core_1_0")]
            vkQueueSubmit: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkQueueSubmit")
            },
            #[cfg(feature = "core_1_0")]
            vkQueueWaitIdle: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkQueueWaitIdle")
            },
            #[cfg(feature = "core_1_0")]
            vkDeviceWaitIdle: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDeviceWaitIdle")
            },
            #[cfg(feature = "core_1_0")]
            vkAllocateMemory: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkAllocateMemory")
            },
            #[cfg(feature = "core_1_0")]
            vkFreeMemory: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkFreeMemory")
            },
            #[cfg(feature = "core_1_0")]
            vkMapMemory: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkMapMemory")
            },
            #[cfg(feature = "core_1_0")]
            vkUnmapMemory: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkUnmapMemory")
            },
            #[cfg(feature = "core_1_0")]
            vkFlushMappedMemoryRanges: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkFlushMappedMemoryRanges")
            },
            #[cfg(feature = "core_1_0")]
            vkInvalidateMappedMemoryRanges: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkInvalidateMappedMemoryRanges",
                )
            },
            #[cfg(feature = "core_1_0")]
            vkGetDeviceMemoryCommitment: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetDeviceMemoryCommitment")
            },
            #[cfg(feature = "core_1_0")]
            vkGetBufferMemoryRequirements: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetBufferMemoryRequirements",
                )
            },
            #[cfg(feature = "core_1_0")]
            vkBindBufferMemory: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkBindBufferMemory")
            },
            #[cfg(feature = "core_1_0")]
            vkGetImageMemoryRequirements: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetImageMemoryRequirements",
                )
            },
            #[cfg(feature = "core_1_0")]
            vkBindImageMemory: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkBindImageMemory")
            },
            #[cfg(feature = "core_1_0")]
            vkGetImageSparseMemoryRequirements: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetImageSparseMemoryRequirements",
                )
            },
            #[cfg(feature = "core_1_0")]
            vkQueueBindSparse: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkQueueBindSparse")
            },
            #[cfg(feature = "core_1_0")]
            vkCreateFence: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateFence")
            },
            #[cfg(feature = "core_1_0")]
            vkDestroyFence: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyFence")
            },
            #[cfg(feature = "core_1_0")]
            vkResetFences: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkResetFences")
            },
            #[cfg(feature = "core_1_0")]
            vkGetFenceStatus: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetFenceStatus")
            },
            #[cfg(feature = "core_1_0")]
            vkWaitForFences: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkWaitForFences")
            },
            #[cfg(feature = "core_1_0")]
            vkCreateSemaphore: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateSemaphore")
            },
            #[cfg(feature = "core_1_0")]
            vkDestroySemaphore: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroySemaphore")
            },
            #[cfg(feature = "core_1_0")]
            vkCreateEvent: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateEvent")
            },
            #[cfg(feature = "core_1_0")]
            vkDestroyEvent: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyEvent")
            },
            #[cfg(feature = "core_1_0")]
            vkGetEventStatus: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetEventStatus")
            },
            #[cfg(feature = "core_1_0")]
            vkSetEvent: unsafe { load_device_command(get_device_proc_addr, device, c"vkSetEvent") },
            #[cfg(feature = "core_1_0")]
            vkResetEvent: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkResetEvent")
            },
            #[cfg(feature = "core_1_0")]
            vkCreateQueryPool: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateQueryPool")
            },
            #[cfg(feature = "core_1_0")]
            vkDestroyQueryPool: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyQueryPool")
            },
            #[cfg(feature = "core_1_0")]
            vkGetQueryPoolResults: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetQueryPoolResults")
            },
            #[cfg(feature = "core_1_2")]
            vkResetQueryPool: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkResetQueryPool")
            },
            #[cfg(feature = "vk_ext_host_query_reset")]
            vkResetQueryPoolEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkResetQueryPoolEXT")
            },
            #[cfg(feature = "core_1_0")]
            vkCreateBuffer: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateBuffer")
            },
            #[cfg(feature = "core_1_0")]
            vkDestroyBuffer: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyBuffer")
            },
            #[cfg(feature = "core_1_0")]
            vkCreateBufferView: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateBufferView")
            },
            #[cfg(feature = "core_1_0")]
            vkDestroyBufferView: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyBufferView")
            },
            #[cfg(feature = "core_1_0")]
            vkCreateImage: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateImage")
            },
            #[cfg(feature = "core_1_0")]
            vkDestroyImage: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyImage")
            },
            #[cfg(feature = "core_1_0")]
            vkGetImageSubresourceLayout: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetImageSubresourceLayout")
            },
            #[cfg(feature = "core_1_0")]
            vkCreateImageView: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateImageView")
            },
            #[cfg(feature = "core_1_0")]
            vkDestroyImageView: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyImageView")
            },
            #[cfg(feature = "core_1_0")]
            vkCreateShaderModule: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateShaderModule")
            },
            #[cfg(feature = "core_1_0")]
            vkDestroyShaderModule: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyShaderModule")
            },
            #[cfg(feature = "core_1_0")]
            vkCreatePipelineCache: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreatePipelineCache")
            },
            #[cfg(feature = "core_1_0")]
            vkDestroyPipelineCache: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyPipelineCache")
            },
            #[cfg(feature = "core_1_0")]
            vkGetPipelineCacheData: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetPipelineCacheData")
            },
            #[cfg(feature = "core_1_0")]
            vkMergePipelineCaches: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkMergePipelineCaches")
            },
            #[cfg(feature = "vk_khr_pipeline_binary")]
            vkCreatePipelineBinariesKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreatePipelineBinariesKHR")
            },
            #[cfg(feature = "vk_khr_pipeline_binary")]
            vkDestroyPipelineBinaryKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyPipelineBinaryKHR")
            },
            #[cfg(feature = "vk_khr_pipeline_binary")]
            vkGetPipelineKeyKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetPipelineKeyKHR")
            },
            #[cfg(feature = "vk_khr_pipeline_binary")]
            vkGetPipelineBinaryDataKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetPipelineBinaryDataKHR")
            },
            #[cfg(feature = "vk_khr_pipeline_binary")]
            vkReleaseCapturedPipelineDataKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkReleaseCapturedPipelineDataKHR",
                )
            },
            #[cfg(feature = "core_1_0")]
            vkCreateGraphicsPipelines: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateGraphicsPipelines")
            },
            #[cfg(feature = "core_1_0")]
            vkCreateComputePipelines: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateComputePipelines")
            },
            #[cfg(feature = "vk_huawei_subpass_shading")]
            vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI",
                )
            },
            #[cfg(feature = "core_1_0")]
            vkDestroyPipeline: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyPipeline")
            },
            #[cfg(feature = "core_1_0")]
            vkCreatePipelineLayout: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreatePipelineLayout")
            },
            #[cfg(feature = "core_1_0")]
            vkDestroyPipelineLayout: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyPipelineLayout")
            },
            #[cfg(feature = "core_1_0")]
            vkCreateSampler: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateSampler")
            },
            #[cfg(feature = "core_1_0")]
            vkDestroySampler: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroySampler")
            },
            #[cfg(feature = "core_1_0")]
            vkCreateDescriptorSetLayout: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateDescriptorSetLayout")
            },
            #[cfg(feature = "core_1_0")]
            vkDestroyDescriptorSetLayout: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkDestroyDescriptorSetLayout",
                )
            },
            #[cfg(feature = "core_1_0")]
            vkCreateDescriptorPool: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateDescriptorPool")
            },
            #[cfg(feature = "core_1_0")]
            vkDestroyDescriptorPool: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyDescriptorPool")
            },
            #[cfg(feature = "core_1_0")]
            vkResetDescriptorPool: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkResetDescriptorPool")
            },
            #[cfg(feature = "core_1_0")]
            vkAllocateDescriptorSets: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkAllocateDescriptorSets")
            },
            #[cfg(feature = "core_1_0")]
            vkFreeDescriptorSets: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkFreeDescriptorSets")
            },
            #[cfg(feature = "core_1_0")]
            vkUpdateDescriptorSets: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkUpdateDescriptorSets")
            },
            #[cfg(feature = "core_1_0")]
            vkCreateFramebuffer: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateFramebuffer")
            },
            #[cfg(feature = "core_1_0")]
            vkDestroyFramebuffer: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyFramebuffer")
            },
            #[cfg(feature = "core_1_0")]
            vkCreateRenderPass: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateRenderPass")
            },
            #[cfg(feature = "core_1_0")]
            vkDestroyRenderPass: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyRenderPass")
            },
            #[cfg(feature = "core_1_0")]
            vkGetRenderAreaGranularity: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetRenderAreaGranularity")
            },
            #[cfg(feature = "core_1_4")]
            vkGetRenderingAreaGranularity: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetRenderingAreaGranularity",
                )
            },
            #[cfg(feature = "vk_khr_maintenance5")]
            vkGetRenderingAreaGranularityKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetRenderingAreaGranularityKHR",
                )
            },
            #[cfg(feature = "core_1_0")]
            vkCreateCommandPool: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateCommandPool")
            },
            #[cfg(feature = "core_1_0")]
            vkDestroyCommandPool: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyCommandPool")
            },
            #[cfg(feature = "core_1_0")]
            vkResetCommandPool: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkResetCommandPool")
            },
            #[cfg(feature = "core_1_0")]
            vkAllocateCommandBuffers: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkAllocateCommandBuffers")
            },
            #[cfg(feature = "core_1_0")]
            vkFreeCommandBuffers: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkFreeCommandBuffers")
            },
            #[cfg(feature = "core_1_0")]
            vkBeginCommandBuffer: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkBeginCommandBuffer")
            },
            #[cfg(feature = "core_1_0")]
            vkEndCommandBuffer: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkEndCommandBuffer")
            },
            #[cfg(feature = "core_1_0")]
            vkResetCommandBuffer: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkResetCommandBuffer")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdBindPipeline: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBindPipeline")
            },
            #[cfg(feature = "vk_ext_primitive_restart_index")]
            vkCmdSetPrimitiveRestartIndexEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetPrimitiveRestartIndexEXT",
                )
            },
            #[cfg(feature = "vk_ext_attachment_feedback_loop_dynamic_state")]
            vkCmdSetAttachmentFeedbackLoopEnableEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetAttachmentFeedbackLoopEnableEXT",
                )
            },
            #[cfg(feature = "core_1_0")]
            vkCmdSetViewport: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetViewport")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdSetScissor: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetScissor")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdSetLineWidth: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetLineWidth")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdSetDepthBias: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetDepthBias")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdSetBlendConstants: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetBlendConstants")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdSetDepthBounds: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetDepthBounds")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdSetStencilCompareMask: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetStencilCompareMask")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdSetStencilWriteMask: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetStencilWriteMask")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdSetStencilReference: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetStencilReference")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdBindDescriptorSets: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBindDescriptorSets")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdBindIndexBuffer: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBindIndexBuffer")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdBindVertexBuffers: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBindVertexBuffers")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdDraw: unsafe { load_device_command(get_device_proc_addr, device, c"vkCmdDraw") },
            #[cfg(feature = "core_1_0")]
            vkCmdDrawIndexed: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDrawIndexed")
            },
            #[cfg(feature = "vk_ext_multi_draw")]
            vkCmdDrawMultiEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDrawMultiEXT")
            },
            #[cfg(feature = "vk_ext_multi_draw")]
            vkCmdDrawMultiIndexedEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDrawMultiIndexedEXT")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdDrawIndirect: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDrawIndirect")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdDrawIndexedIndirect: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDrawIndexedIndirect")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdDispatch: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDispatch")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdDispatchIndirect: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDispatchIndirect")
            },
            #[cfg(feature = "vk_huawei_subpass_shading")]
            vkCmdSubpassShadingHUAWEI: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSubpassShadingHUAWEI")
            },
            #[cfg(feature = "vk_huawei_cluster_culling_shader")]
            vkCmdDrawClusterHUAWEI: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDrawClusterHUAWEI")
            },
            #[cfg(feature = "vk_huawei_cluster_culling_shader")]
            vkCmdDrawClusterIndirectHUAWEI: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdDrawClusterIndirectHUAWEI",
                )
            },
            #[cfg(feature = "vk_nv_device_generated_commands_compute")]
            vkCmdUpdatePipelineIndirectBufferNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdUpdatePipelineIndirectBufferNV",
                )
            },
            #[cfg(feature = "core_1_0")]
            vkCmdCopyBuffer: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdCopyBuffer")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdCopyImage: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdCopyImage")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdBlitImage: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBlitImage")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdCopyBufferToImage: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdCopyBufferToImage")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdCopyImageToBuffer: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdCopyImageToBuffer")
            },
            #[cfg(feature = "vk_nv_copy_memory_indirect")]
            vkCmdCopyMemoryIndirectNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdCopyMemoryIndirectNV")
            },
            #[cfg(feature = "vk_khr_copy_memory_indirect")]
            vkCmdCopyMemoryIndirectKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdCopyMemoryIndirectKHR")
            },
            #[cfg(feature = "vk_nv_copy_memory_indirect")]
            vkCmdCopyMemoryToImageIndirectNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdCopyMemoryToImageIndirectNV",
                )
            },
            #[cfg(feature = "vk_khr_copy_memory_indirect")]
            vkCmdCopyMemoryToImageIndirectKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdCopyMemoryToImageIndirectKHR",
                )
            },
            #[cfg(feature = "core_1_0")]
            vkCmdUpdateBuffer: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdUpdateBuffer")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdFillBuffer: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdFillBuffer")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdClearColorImage: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdClearColorImage")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdClearDepthStencilImage: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdClearDepthStencilImage")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdClearAttachments: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdClearAttachments")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdResolveImage: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdResolveImage")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdSetEvent: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetEvent")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdResetEvent: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdResetEvent")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdWaitEvents: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdWaitEvents")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdPipelineBarrier: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdPipelineBarrier")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdBeginQuery: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBeginQuery")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdEndQuery: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdEndQuery")
            },
            #[cfg(feature = "vk_ext_conditional_rendering")]
            vkCmdBeginConditionalRenderingEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdBeginConditionalRenderingEXT",
                )
            },
            #[cfg(feature = "vk_ext_conditional_rendering")]
            vkCmdEndConditionalRenderingEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdEndConditionalRenderingEXT",
                )
            },
            #[cfg(all(
                feature = "vk_ext_custom_resolve",
                any(feature = "core_1_3", feature = "vk_khr_dynamic_rendering")
            ))]
            vkCmdBeginCustomResolveEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBeginCustomResolveEXT")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdResetQueryPool: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdResetQueryPool")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdWriteTimestamp: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdWriteTimestamp")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdCopyQueryPoolResults: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdCopyQueryPoolResults")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdPushConstants: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdPushConstants")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdBeginRenderPass: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBeginRenderPass")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdNextSubpass: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdNextSubpass")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdEndRenderPass: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdEndRenderPass")
            },
            #[cfg(feature = "core_1_0")]
            vkCmdExecuteCommands: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdExecuteCommands")
            },
            #[cfg(feature = "vk_khr_display_swapchain")]
            vkCreateSharedSwapchainsKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateSharedSwapchainsKHR")
            },
            #[cfg(feature = "vk_khr_swapchain")]
            vkCreateSwapchainKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateSwapchainKHR")
            },
            #[cfg(feature = "vk_khr_swapchain")]
            vkDestroySwapchainKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroySwapchainKHR")
            },
            #[cfg(feature = "vk_khr_swapchain")]
            vkGetSwapchainImagesKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetSwapchainImagesKHR")
            },
            #[cfg(feature = "vk_khr_swapchain")]
            vkAcquireNextImageKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkAcquireNextImageKHR")
            },
            #[cfg(feature = "vk_khr_swapchain")]
            vkQueuePresentKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkQueuePresentKHR")
            },
            #[cfg(feature = "vk_ext_debug_marker")]
            vkDebugMarkerSetObjectNameEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkDebugMarkerSetObjectNameEXT",
                )
            },
            #[cfg(feature = "vk_ext_debug_marker")]
            vkDebugMarkerSetObjectTagEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkDebugMarkerSetObjectTagEXT",
                )
            },
            #[cfg(feature = "vk_ext_debug_marker")]
            vkCmdDebugMarkerBeginEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDebugMarkerBeginEXT")
            },
            #[cfg(feature = "vk_ext_debug_marker")]
            vkCmdDebugMarkerEndEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDebugMarkerEndEXT")
            },
            #[cfg(feature = "vk_ext_debug_marker")]
            vkCmdDebugMarkerInsertEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDebugMarkerInsertEXT")
            },
            #[cfg(feature = "vk_nv_external_memory_win32")]
            vkGetMemoryWin32HandleNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetMemoryWin32HandleNV")
            },
            #[cfg(feature = "vk_nv_device_generated_commands")]
            vkCmdExecuteGeneratedCommandsNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdExecuteGeneratedCommandsNV",
                )
            },
            #[cfg(feature = "vk_nv_device_generated_commands")]
            vkCmdPreprocessGeneratedCommandsNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdPreprocessGeneratedCommandsNV",
                )
            },
            #[cfg(feature = "vk_nv_device_generated_commands")]
            vkCmdBindPipelineShaderGroupNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdBindPipelineShaderGroupNV",
                )
            },
            #[cfg(feature = "vk_nv_device_generated_commands")]
            vkGetGeneratedCommandsMemoryRequirementsNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetGeneratedCommandsMemoryRequirementsNV",
                )
            },
            #[cfg(feature = "vk_nv_device_generated_commands")]
            vkCreateIndirectCommandsLayoutNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCreateIndirectCommandsLayoutNV",
                )
            },
            #[cfg(feature = "vk_nv_device_generated_commands")]
            vkDestroyIndirectCommandsLayoutNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkDestroyIndirectCommandsLayoutNV",
                )
            },
            #[cfg(feature = "vk_ext_device_generated_commands")]
            vkCmdExecuteGeneratedCommandsEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdExecuteGeneratedCommandsEXT",
                )
            },
            #[cfg(feature = "vk_ext_device_generated_commands")]
            vkCmdPreprocessGeneratedCommandsEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdPreprocessGeneratedCommandsEXT",
                )
            },
            #[cfg(feature = "vk_ext_device_generated_commands")]
            vkGetGeneratedCommandsMemoryRequirementsEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetGeneratedCommandsMemoryRequirementsEXT",
                )
            },
            #[cfg(feature = "vk_ext_device_generated_commands")]
            vkCreateIndirectCommandsLayoutEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCreateIndirectCommandsLayoutEXT",
                )
            },
            #[cfg(feature = "vk_ext_device_generated_commands")]
            vkDestroyIndirectCommandsLayoutEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkDestroyIndirectCommandsLayoutEXT",
                )
            },
            #[cfg(feature = "vk_ext_device_generated_commands")]
            vkCreateIndirectExecutionSetEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCreateIndirectExecutionSetEXT",
                )
            },
            #[cfg(feature = "vk_ext_device_generated_commands")]
            vkDestroyIndirectExecutionSetEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkDestroyIndirectExecutionSetEXT",
                )
            },
            #[cfg(feature = "vk_ext_device_generated_commands")]
            vkUpdateIndirectExecutionSetPipelineEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkUpdateIndirectExecutionSetPipelineEXT",
                )
            },
            #[cfg(feature = "vk_ext_device_generated_commands")]
            vkUpdateIndirectExecutionSetShaderEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkUpdateIndirectExecutionSetShaderEXT",
                )
            },
            #[cfg(feature = "core_1_4")]
            vkCmdPushDescriptorSet: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdPushDescriptorSet")
            },
            #[cfg(feature = "vk_khr_push_descriptor")]
            vkCmdPushDescriptorSetKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdPushDescriptorSetKHR")
            },
            #[cfg(feature = "core_1_1")]
            vkTrimCommandPool: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkTrimCommandPool")
            },
            #[cfg(feature = "vk_khr_maintenance1")]
            vkTrimCommandPoolKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkTrimCommandPoolKHR")
            },
            #[cfg(feature = "vk_khr_external_memory_win32")]
            vkGetMemoryWin32HandleKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetMemoryWin32HandleKHR")
            },
            #[cfg(feature = "vk_khr_external_memory_win32")]
            vkGetMemoryWin32HandlePropertiesKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetMemoryWin32HandlePropertiesKHR",
                )
            },
            #[cfg(feature = "vk_khr_external_memory_fd")]
            vkGetMemoryFdKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetMemoryFdKHR")
            },
            #[cfg(feature = "vk_khr_external_memory_fd")]
            vkGetMemoryFdPropertiesKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetMemoryFdPropertiesKHR")
            },
            #[cfg(feature = "vk_fuchsia_external_memory")]
            vkGetMemoryZirconHandleFUCHSIA: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetMemoryZirconHandleFUCHSIA",
                )
            },
            #[cfg(feature = "vk_fuchsia_external_memory")]
            vkGetMemoryZirconHandlePropertiesFUCHSIA: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetMemoryZirconHandlePropertiesFUCHSIA",
                )
            },
            #[cfg(feature = "vk_nv_external_memory_rdma")]
            vkGetMemoryRemoteAddressNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetMemoryRemoteAddressNV")
            },
            #[cfg(feature = "vk_khr_external_semaphore_win32")]
            vkGetSemaphoreWin32HandleKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetSemaphoreWin32HandleKHR",
                )
            },
            #[cfg(feature = "vk_khr_external_semaphore_win32")]
            vkImportSemaphoreWin32HandleKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkImportSemaphoreWin32HandleKHR",
                )
            },
            #[cfg(feature = "vk_khr_external_semaphore_fd")]
            vkGetSemaphoreFdKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetSemaphoreFdKHR")
            },
            #[cfg(feature = "vk_khr_external_semaphore_fd")]
            vkImportSemaphoreFdKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkImportSemaphoreFdKHR")
            },
            #[cfg(feature = "vk_fuchsia_external_semaphore")]
            vkGetSemaphoreZirconHandleFUCHSIA: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetSemaphoreZirconHandleFUCHSIA",
                )
            },
            #[cfg(feature = "vk_fuchsia_external_semaphore")]
            vkImportSemaphoreZirconHandleFUCHSIA: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkImportSemaphoreZirconHandleFUCHSIA",
                )
            },
            #[cfg(feature = "vk_khr_external_fence_win32")]
            vkGetFenceWin32HandleKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetFenceWin32HandleKHR")
            },
            #[cfg(feature = "vk_khr_external_fence_win32")]
            vkImportFenceWin32HandleKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkImportFenceWin32HandleKHR")
            },
            #[cfg(feature = "vk_khr_external_fence_fd")]
            vkGetFenceFdKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetFenceFdKHR")
            },
            #[cfg(feature = "vk_khr_external_fence_fd")]
            vkImportFenceFdKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkImportFenceFdKHR")
            },
            #[cfg(feature = "vk_ext_display_control")]
            vkDisplayPowerControlEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDisplayPowerControlEXT")
            },
            #[cfg(feature = "vk_ext_display_control")]
            vkRegisterDeviceEventEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkRegisterDeviceEventEXT")
            },
            #[cfg(feature = "vk_ext_display_control")]
            vkRegisterDisplayEventEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkRegisterDisplayEventEXT")
            },
            #[cfg(feature = "vk_ext_display_control")]
            vkGetSwapchainCounterEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetSwapchainCounterEXT")
            },
            #[cfg(feature = "core_1_1")]
            vkGetDeviceGroupPeerMemoryFeatures: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDeviceGroupPeerMemoryFeatures",
                )
            },
            #[cfg(feature = "vk_khr_device_group")]
            vkGetDeviceGroupPeerMemoryFeaturesKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDeviceGroupPeerMemoryFeaturesKHR",
                )
            },
            #[cfg(feature = "core_1_1")]
            vkBindBufferMemory2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkBindBufferMemory2")
            },
            #[cfg(feature = "vk_khr_bind_memory2")]
            vkBindBufferMemory2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkBindBufferMemory2KHR")
            },
            #[cfg(feature = "core_1_1")]
            vkBindImageMemory2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkBindImageMemory2")
            },
            #[cfg(feature = "vk_khr_bind_memory2")]
            vkBindImageMemory2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkBindImageMemory2KHR")
            },
            #[cfg(feature = "core_1_1")]
            vkCmdSetDeviceMask: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetDeviceMask")
            },
            #[cfg(feature = "vk_khr_device_group")]
            vkCmdSetDeviceMaskKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetDeviceMaskKHR")
            },
            #[cfg(any(
                all(feature = "core_1_1", feature = "vk_khr_swapchain"),
                all(feature = "vk_khr_device_group", feature = "vk_khr_surface")
            ))]
            vkGetDeviceGroupPresentCapabilitiesKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDeviceGroupPresentCapabilitiesKHR",
                )
            },
            #[cfg(any(
                all(feature = "core_1_1", feature = "vk_khr_swapchain"),
                all(feature = "vk_khr_device_group", feature = "vk_khr_surface")
            ))]
            vkGetDeviceGroupSurfacePresentModesKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDeviceGroupSurfacePresentModesKHR",
                )
            },
            #[cfg(any(
                all(feature = "core_1_1", feature = "vk_khr_swapchain"),
                all(feature = "vk_khr_device_group", feature = "vk_khr_swapchain")
            ))]
            vkAcquireNextImage2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkAcquireNextImage2KHR")
            },
            #[cfg(feature = "core_1_1")]
            vkCmdDispatchBase: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDispatchBase")
            },
            #[cfg(feature = "vk_khr_device_group")]
            vkCmdDispatchBaseKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDispatchBaseKHR")
            },
            #[cfg(feature = "core_1_1")]
            vkCreateDescriptorUpdateTemplate: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCreateDescriptorUpdateTemplate",
                )
            },
            #[cfg(feature = "vk_khr_descriptor_update_template")]
            vkCreateDescriptorUpdateTemplateKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCreateDescriptorUpdateTemplateKHR",
                )
            },
            #[cfg(feature = "core_1_1")]
            vkDestroyDescriptorUpdateTemplate: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkDestroyDescriptorUpdateTemplate",
                )
            },
            #[cfg(feature = "vk_khr_descriptor_update_template")]
            vkDestroyDescriptorUpdateTemplateKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkDestroyDescriptorUpdateTemplateKHR",
                )
            },
            #[cfg(feature = "core_1_1")]
            vkUpdateDescriptorSetWithTemplate: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkUpdateDescriptorSetWithTemplate",
                )
            },
            #[cfg(feature = "vk_khr_descriptor_update_template")]
            vkUpdateDescriptorSetWithTemplateKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkUpdateDescriptorSetWithTemplateKHR",
                )
            },
            #[cfg(feature = "core_1_4")]
            vkCmdPushDescriptorSetWithTemplate: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdPushDescriptorSetWithTemplate",
                )
            },
            #[cfg(any(
                all(
                    feature = "vk_khr_descriptor_update_template",
                    feature = "vk_khr_push_descriptor"
                ),
                all(
                    feature = "vk_khr_push_descriptor",
                    any(feature = "core_1_1", feature = "vk_khr_descriptor_update_template")
                )
            ))]
            vkCmdPushDescriptorSetWithTemplateKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdPushDescriptorSetWithTemplateKHR",
                )
            },
            #[cfg(feature = "vk_ext_hdr_metadata")]
            vkSetHdrMetadataEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkSetHdrMetadataEXT")
            },
            #[cfg(feature = "vk_khr_shared_presentable_image")]
            vkGetSwapchainStatusKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetSwapchainStatusKHR")
            },
            #[cfg(feature = "vk_google_display_timing")]
            vkGetRefreshCycleDurationGOOGLE: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetRefreshCycleDurationGOOGLE",
                )
            },
            #[cfg(feature = "vk_google_display_timing")]
            vkGetPastPresentationTimingGOOGLE: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetPastPresentationTimingGOOGLE",
                )
            },
            #[cfg(feature = "vk_nv_clip_space_w_scaling")]
            vkCmdSetViewportWScalingNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetViewportWScalingNV")
            },
            #[cfg(feature = "vk_ext_discard_rectangles")]
            vkCmdSetDiscardRectangleEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetDiscardRectangleEXT")
            },
            #[cfg(feature = "vk_ext_discard_rectangles")]
            vkCmdSetDiscardRectangleEnableEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetDiscardRectangleEnableEXT",
                )
            },
            #[cfg(feature = "vk_ext_discard_rectangles")]
            vkCmdSetDiscardRectangleModeEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetDiscardRectangleModeEXT",
                )
            },
            #[cfg(feature = "vk_ext_sample_locations")]
            vkCmdSetSampleLocationsEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetSampleLocationsEXT")
            },
            #[cfg(feature = "core_1_1")]
            vkGetBufferMemoryRequirements2: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetBufferMemoryRequirements2",
                )
            },
            #[cfg(feature = "vk_khr_get_memory_requirements2")]
            vkGetBufferMemoryRequirements2KHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetBufferMemoryRequirements2KHR",
                )
            },
            #[cfg(feature = "core_1_1")]
            vkGetImageMemoryRequirements2: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetImageMemoryRequirements2",
                )
            },
            #[cfg(feature = "vk_khr_get_memory_requirements2")]
            vkGetImageMemoryRequirements2KHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetImageMemoryRequirements2KHR",
                )
            },
            #[cfg(feature = "core_1_1")]
            vkGetImageSparseMemoryRequirements2: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetImageSparseMemoryRequirements2",
                )
            },
            #[cfg(feature = "vk_khr_get_memory_requirements2")]
            vkGetImageSparseMemoryRequirements2KHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetImageSparseMemoryRequirements2KHR",
                )
            },
            #[cfg(feature = "core_1_3")]
            vkGetDeviceBufferMemoryRequirements: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDeviceBufferMemoryRequirements",
                )
            },
            #[cfg(feature = "vk_khr_maintenance4")]
            vkGetDeviceBufferMemoryRequirementsKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDeviceBufferMemoryRequirementsKHR",
                )
            },
            #[cfg(feature = "core_1_3")]
            vkGetDeviceImageMemoryRequirements: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDeviceImageMemoryRequirements",
                )
            },
            #[cfg(feature = "vk_khr_maintenance4")]
            vkGetDeviceImageMemoryRequirementsKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDeviceImageMemoryRequirementsKHR",
                )
            },
            #[cfg(feature = "core_1_3")]
            vkGetDeviceImageSparseMemoryRequirements: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDeviceImageSparseMemoryRequirements",
                )
            },
            #[cfg(feature = "vk_khr_maintenance4")]
            vkGetDeviceImageSparseMemoryRequirementsKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDeviceImageSparseMemoryRequirementsKHR",
                )
            },
            #[cfg(feature = "core_1_1")]
            vkCreateSamplerYcbcrConversion: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCreateSamplerYcbcrConversion",
                )
            },
            #[cfg(feature = "vk_khr_sampler_ycbcr_conversion")]
            vkCreateSamplerYcbcrConversionKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCreateSamplerYcbcrConversionKHR",
                )
            },
            #[cfg(feature = "core_1_1")]
            vkDestroySamplerYcbcrConversion: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkDestroySamplerYcbcrConversion",
                )
            },
            #[cfg(feature = "vk_khr_sampler_ycbcr_conversion")]
            vkDestroySamplerYcbcrConversionKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkDestroySamplerYcbcrConversionKHR",
                )
            },
            #[cfg(feature = "core_1_1")]
            vkGetDeviceQueue2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetDeviceQueue2")
            },
            #[cfg(feature = "vk_ext_validation_cache")]
            vkCreateValidationCacheEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateValidationCacheEXT")
            },
            #[cfg(feature = "vk_ext_validation_cache")]
            vkDestroyValidationCacheEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyValidationCacheEXT")
            },
            #[cfg(feature = "vk_ext_validation_cache")]
            vkGetValidationCacheDataEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetValidationCacheDataEXT")
            },
            #[cfg(feature = "vk_ext_validation_cache")]
            vkMergeValidationCachesEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkMergeValidationCachesEXT")
            },
            #[cfg(feature = "core_1_1")]
            vkGetDescriptorSetLayoutSupport: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDescriptorSetLayoutSupport",
                )
            },
            #[cfg(feature = "vk_khr_maintenance3")]
            vkGetDescriptorSetLayoutSupportKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDescriptorSetLayoutSupportKHR",
                )
            },
            #[cfg(feature = "vk_amd_shader_info")]
            vkGetShaderInfoAMD: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetShaderInfoAMD")
            },
            #[cfg(feature = "vk_amd_display_native_hdr")]
            vkSetLocalDimmingAMD: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkSetLocalDimmingAMD")
            },
            #[cfg(feature = "vk_khr_calibrated_timestamps")]
            vkGetCalibratedTimestampsKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetCalibratedTimestampsKHR",
                )
            },
            #[cfg(feature = "vk_ext_calibrated_timestamps")]
            vkGetCalibratedTimestampsEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetCalibratedTimestampsEXT",
                )
            },
            #[cfg(feature = "vk_ext_debug_utils")]
            vkSetDebugUtilsObjectNameEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkSetDebugUtilsObjectNameEXT",
                )
            },
            #[cfg(feature = "vk_ext_debug_utils")]
            vkSetDebugUtilsObjectTagEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkSetDebugUtilsObjectTagEXT")
            },
            #[cfg(feature = "vk_ext_debug_utils")]
            vkQueueBeginDebugUtilsLabelEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkQueueBeginDebugUtilsLabelEXT",
                )
            },
            #[cfg(feature = "vk_ext_debug_utils")]
            vkQueueEndDebugUtilsLabelEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkQueueEndDebugUtilsLabelEXT",
                )
            },
            #[cfg(feature = "vk_ext_debug_utils")]
            vkQueueInsertDebugUtilsLabelEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkQueueInsertDebugUtilsLabelEXT",
                )
            },
            #[cfg(feature = "vk_ext_debug_utils")]
            vkCmdBeginDebugUtilsLabelEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdBeginDebugUtilsLabelEXT",
                )
            },
            #[cfg(feature = "vk_ext_debug_utils")]
            vkCmdEndDebugUtilsLabelEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdEndDebugUtilsLabelEXT")
            },
            #[cfg(feature = "vk_ext_debug_utils")]
            vkCmdInsertDebugUtilsLabelEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdInsertDebugUtilsLabelEXT",
                )
            },
            #[cfg(feature = "vk_ext_external_memory_host")]
            vkGetMemoryHostPointerPropertiesEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetMemoryHostPointerPropertiesEXT",
                )
            },
            #[cfg(feature = "vk_amd_buffer_marker")]
            vkCmdWriteBufferMarkerAMD: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdWriteBufferMarkerAMD")
            },
            #[cfg(feature = "core_1_2")]
            vkCreateRenderPass2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateRenderPass2")
            },
            #[cfg(feature = "vk_khr_create_renderpass2")]
            vkCreateRenderPass2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateRenderPass2KHR")
            },
            #[cfg(feature = "core_1_2")]
            vkCmdBeginRenderPass2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBeginRenderPass2")
            },
            #[cfg(feature = "vk_khr_create_renderpass2")]
            vkCmdBeginRenderPass2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBeginRenderPass2KHR")
            },
            #[cfg(feature = "core_1_2")]
            vkCmdNextSubpass2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdNextSubpass2")
            },
            #[cfg(feature = "vk_khr_create_renderpass2")]
            vkCmdNextSubpass2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdNextSubpass2KHR")
            },
            #[cfg(feature = "core_1_2")]
            vkCmdEndRenderPass2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdEndRenderPass2")
            },
            #[cfg(feature = "vk_khr_create_renderpass2")]
            vkCmdEndRenderPass2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdEndRenderPass2KHR")
            },
            #[cfg(feature = "core_1_2")]
            vkGetSemaphoreCounterValue: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetSemaphoreCounterValue")
            },
            #[cfg(feature = "vk_khr_timeline_semaphore")]
            vkGetSemaphoreCounterValueKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetSemaphoreCounterValueKHR",
                )
            },
            #[cfg(feature = "core_1_2")]
            vkWaitSemaphores: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkWaitSemaphores")
            },
            #[cfg(feature = "vk_khr_timeline_semaphore")]
            vkWaitSemaphoresKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkWaitSemaphoresKHR")
            },
            #[cfg(feature = "core_1_2")]
            vkSignalSemaphore: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkSignalSemaphore")
            },
            #[cfg(feature = "vk_khr_timeline_semaphore")]
            vkSignalSemaphoreKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkSignalSemaphoreKHR")
            },
            #[cfg(feature = "vk_android_external_memory_android_hardware_buffer")]
            vkGetAndroidHardwareBufferPropertiesANDROID: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetAndroidHardwareBufferPropertiesANDROID",
                )
            },
            #[cfg(feature = "vk_android_external_memory_android_hardware_buffer")]
            vkGetMemoryAndroidHardwareBufferANDROID: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetMemoryAndroidHardwareBufferANDROID",
                )
            },
            #[cfg(feature = "core_1_2")]
            vkCmdDrawIndirectCount: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDrawIndirectCount")
            },
            #[cfg(feature = "vk_khr_draw_indirect_count")]
            vkCmdDrawIndirectCountKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDrawIndirectCountKHR")
            },
            #[cfg(feature = "vk_amd_draw_indirect_count")]
            vkCmdDrawIndirectCountAMD: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDrawIndirectCountAMD")
            },
            #[cfg(feature = "core_1_2")]
            vkCmdDrawIndexedIndirectCount: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdDrawIndexedIndirectCount",
                )
            },
            #[cfg(feature = "vk_khr_draw_indirect_count")]
            vkCmdDrawIndexedIndirectCountKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdDrawIndexedIndirectCountKHR",
                )
            },
            #[cfg(feature = "vk_amd_draw_indirect_count")]
            vkCmdDrawIndexedIndirectCountAMD: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdDrawIndexedIndirectCountAMD",
                )
            },
            #[cfg(feature = "vk_nv_device_diagnostic_checkpoints")]
            vkCmdSetCheckpointNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetCheckpointNV")
            },
            #[cfg(feature = "vk_nv_device_diagnostic_checkpoints")]
            vkGetQueueCheckpointDataNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetQueueCheckpointDataNV")
            },
            #[cfg(feature = "vk_ext_transform_feedback")]
            vkCmdBindTransformFeedbackBuffersEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdBindTransformFeedbackBuffersEXT",
                )
            },
            #[cfg(feature = "vk_ext_transform_feedback")]
            vkCmdBeginTransformFeedbackEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdBeginTransformFeedbackEXT",
                )
            },
            #[cfg(feature = "vk_ext_transform_feedback")]
            vkCmdEndTransformFeedbackEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdEndTransformFeedbackEXT",
                )
            },
            #[cfg(feature = "vk_ext_transform_feedback")]
            vkCmdBeginQueryIndexedEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBeginQueryIndexedEXT")
            },
            #[cfg(feature = "vk_ext_transform_feedback")]
            vkCmdEndQueryIndexedEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdEndQueryIndexedEXT")
            },
            #[cfg(feature = "vk_ext_transform_feedback")]
            vkCmdDrawIndirectByteCountEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdDrawIndirectByteCountEXT",
                )
            },
            #[cfg(feature = "vk_nv_scissor_exclusive")]
            vkCmdSetExclusiveScissorNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetExclusiveScissorNV")
            },
            #[cfg(feature = "vk_nv_scissor_exclusive")]
            vkCmdSetExclusiveScissorEnableNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetExclusiveScissorEnableNV",
                )
            },
            #[cfg(feature = "vk_nv_shading_rate_image")]
            vkCmdBindShadingRateImageNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBindShadingRateImageNV")
            },
            #[cfg(feature = "vk_nv_shading_rate_image")]
            vkCmdSetViewportShadingRatePaletteNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetViewportShadingRatePaletteNV",
                )
            },
            #[cfg(feature = "vk_nv_shading_rate_image")]
            vkCmdSetCoarseSampleOrderNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetCoarseSampleOrderNV")
            },
            #[cfg(feature = "vk_nv_mesh_shader")]
            vkCmdDrawMeshTasksNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDrawMeshTasksNV")
            },
            #[cfg(feature = "vk_nv_mesh_shader")]
            vkCmdDrawMeshTasksIndirectNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdDrawMeshTasksIndirectNV",
                )
            },
            #[cfg(all(
                feature = "vk_nv_mesh_shader",
                any(
                    feature = "core_1_2",
                    feature = "vk_amd_draw_indirect_count",
                    feature = "vk_khr_draw_indirect_count"
                )
            ))]
            vkCmdDrawMeshTasksIndirectCountNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdDrawMeshTasksIndirectCountNV",
                )
            },
            #[cfg(feature = "vk_ext_mesh_shader")]
            vkCmdDrawMeshTasksEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDrawMeshTasksEXT")
            },
            #[cfg(feature = "vk_ext_mesh_shader")]
            vkCmdDrawMeshTasksIndirectEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdDrawMeshTasksIndirectEXT",
                )
            },
            #[cfg(all(
                feature = "vk_ext_mesh_shader",
                any(
                    feature = "core_1_2",
                    feature = "vk_amd_draw_indirect_count",
                    feature = "vk_khr_draw_indirect_count"
                )
            ))]
            vkCmdDrawMeshTasksIndirectCountEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdDrawMeshTasksIndirectCountEXT",
                )
            },
            #[cfg(feature = "vk_nv_ray_tracing")]
            vkCompileDeferredNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCompileDeferredNV")
            },
            #[cfg(feature = "vk_nv_ray_tracing")]
            vkCreateAccelerationStructureNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCreateAccelerationStructureNV",
                )
            },
            #[cfg(feature = "vk_huawei_invocation_mask")]
            vkCmdBindInvocationMaskHUAWEI: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdBindInvocationMaskHUAWEI",
                )
            },
            #[cfg(feature = "vk_khr_acceleration_structure")]
            vkDestroyAccelerationStructureKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkDestroyAccelerationStructureKHR",
                )
            },
            #[cfg(feature = "vk_nv_ray_tracing")]
            vkDestroyAccelerationStructureNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkDestroyAccelerationStructureNV",
                )
            },
            #[cfg(feature = "vk_nv_ray_tracing")]
            vkGetAccelerationStructureMemoryRequirementsNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetAccelerationStructureMemoryRequirementsNV",
                )
            },
            #[cfg(feature = "vk_nv_ray_tracing")]
            vkBindAccelerationStructureMemoryNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkBindAccelerationStructureMemoryNV",
                )
            },
            #[cfg(feature = "vk_nv_ray_tracing")]
            vkCmdCopyAccelerationStructureNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdCopyAccelerationStructureNV",
                )
            },
            #[cfg(feature = "vk_khr_acceleration_structure")]
            vkCmdCopyAccelerationStructureKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdCopyAccelerationStructureKHR",
                )
            },
            #[cfg(feature = "vk_khr_acceleration_structure")]
            vkCopyAccelerationStructureKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCopyAccelerationStructureKHR",
                )
            },
            #[cfg(feature = "vk_khr_acceleration_structure")]
            vkCmdCopyAccelerationStructureToMemoryKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdCopyAccelerationStructureToMemoryKHR",
                )
            },
            #[cfg(feature = "vk_khr_acceleration_structure")]
            vkCopyAccelerationStructureToMemoryKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCopyAccelerationStructureToMemoryKHR",
                )
            },
            #[cfg(feature = "vk_khr_acceleration_structure")]
            vkCmdCopyMemoryToAccelerationStructureKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdCopyMemoryToAccelerationStructureKHR",
                )
            },
            #[cfg(feature = "vk_khr_acceleration_structure")]
            vkCopyMemoryToAccelerationStructureKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCopyMemoryToAccelerationStructureKHR",
                )
            },
            #[cfg(feature = "vk_khr_acceleration_structure")]
            vkCmdWriteAccelerationStructuresPropertiesKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdWriteAccelerationStructuresPropertiesKHR",
                )
            },
            #[cfg(feature = "vk_nv_ray_tracing")]
            vkCmdWriteAccelerationStructuresPropertiesNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdWriteAccelerationStructuresPropertiesNV",
                )
            },
            #[cfg(feature = "vk_nv_ray_tracing")]
            vkCmdBuildAccelerationStructureNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdBuildAccelerationStructureNV",
                )
            },
            #[cfg(feature = "vk_khr_acceleration_structure")]
            vkWriteAccelerationStructuresPropertiesKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkWriteAccelerationStructuresPropertiesKHR",
                )
            },
            #[cfg(feature = "vk_khr_ray_tracing_pipeline")]
            vkCmdTraceRaysKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdTraceRaysKHR")
            },
            #[cfg(feature = "vk_nv_ray_tracing")]
            vkCmdTraceRaysNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdTraceRaysNV")
            },
            #[cfg(feature = "vk_khr_ray_tracing_pipeline")]
            vkGetRayTracingShaderGroupHandlesKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetRayTracingShaderGroupHandlesKHR",
                )
            },
            #[cfg(feature = "vk_nv_ray_tracing")]
            vkGetRayTracingShaderGroupHandlesNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetRayTracingShaderGroupHandlesNV",
                )
            },
            #[cfg(feature = "vk_khr_ray_tracing_pipeline")]
            vkGetRayTracingCaptureReplayShaderGroupHandlesKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetRayTracingCaptureReplayShaderGroupHandlesKHR",
                )
            },
            #[cfg(feature = "vk_nv_ray_tracing")]
            vkGetAccelerationStructureHandleNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetAccelerationStructureHandleNV",
                )
            },
            #[cfg(feature = "vk_nv_ray_tracing")]
            vkCreateRayTracingPipelinesNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCreateRayTracingPipelinesNV",
                )
            },
            #[cfg(feature = "vk_khr_ray_tracing_pipeline")]
            vkCreateRayTracingPipelinesKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCreateRayTracingPipelinesKHR",
                )
            },
            #[cfg(feature = "vk_khr_ray_tracing_pipeline")]
            vkCmdTraceRaysIndirectKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdTraceRaysIndirectKHR")
            },
            #[cfg(all(
                feature = "vk_khr_ray_tracing_maintenance1",
                feature = "vk_khr_ray_tracing_pipeline"
            ))]
            vkCmdTraceRaysIndirect2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdTraceRaysIndirect2KHR")
            },
            #[cfg(feature = "vk_nv_cluster_acceleration_structure")]
            vkGetClusterAccelerationStructureBuildSizesNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetClusterAccelerationStructureBuildSizesNV",
                )
            },
            #[cfg(feature = "vk_nv_cluster_acceleration_structure")]
            vkCmdBuildClusterAccelerationStructureIndirectNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdBuildClusterAccelerationStructureIndirectNV",
                )
            },
            #[cfg(feature = "vk_khr_acceleration_structure")]
            vkGetDeviceAccelerationStructureCompatibilityKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDeviceAccelerationStructureCompatibilityKHR",
                )
            },
            #[cfg(feature = "vk_khr_ray_tracing_pipeline")]
            vkGetRayTracingShaderGroupStackSizeKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetRayTracingShaderGroupStackSizeKHR",
                )
            },
            #[cfg(feature = "vk_khr_ray_tracing_pipeline")]
            vkCmdSetRayTracingPipelineStackSizeKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetRayTracingPipelineStackSizeKHR",
                )
            },
            #[cfg(feature = "vk_nvx_image_view_handle")]
            vkGetImageViewHandleNVX: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetImageViewHandleNVX")
            },
            #[cfg(feature = "vk_nvx_image_view_handle")]
            vkGetImageViewHandle64NVX: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetImageViewHandle64NVX")
            },
            #[cfg(feature = "vk_nvx_image_view_handle")]
            vkGetImageViewAddressNVX: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetImageViewAddressNVX")
            },
            #[cfg(feature = "vk_nvx_image_view_handle")]
            vkGetDeviceCombinedImageSamplerIndexNVX: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDeviceCombinedImageSamplerIndexNVX",
                )
            },
            #[cfg(all(
                feature = "vk_ext_full_screen_exclusive",
                any(feature = "core_1_1", feature = "vk_khr_device_group")
            ))]
            vkGetDeviceGroupSurfacePresentModes2EXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDeviceGroupSurfacePresentModes2EXT",
                )
            },
            #[cfg(feature = "vk_ext_full_screen_exclusive")]
            vkAcquireFullScreenExclusiveModeEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkAcquireFullScreenExclusiveModeEXT",
                )
            },
            #[cfg(feature = "vk_ext_full_screen_exclusive")]
            vkReleaseFullScreenExclusiveModeEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkReleaseFullScreenExclusiveModeEXT",
                )
            },
            #[cfg(feature = "vk_khr_performance_query")]
            vkAcquireProfilingLockKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkAcquireProfilingLockKHR")
            },
            #[cfg(feature = "vk_khr_performance_query")]
            vkReleaseProfilingLockKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkReleaseProfilingLockKHR")
            },
            #[cfg(feature = "vk_ext_image_drm_format_modifier")]
            vkGetImageDrmFormatModifierPropertiesEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetImageDrmFormatModifierPropertiesEXT",
                )
            },
            #[cfg(feature = "core_1_2")]
            vkGetBufferOpaqueCaptureAddress: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetBufferOpaqueCaptureAddress",
                )
            },
            #[cfg(feature = "vk_khr_buffer_device_address")]
            vkGetBufferOpaqueCaptureAddressKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetBufferOpaqueCaptureAddressKHR",
                )
            },
            #[cfg(feature = "core_1_2")]
            vkGetBufferDeviceAddress: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetBufferDeviceAddress")
            },
            #[cfg(feature = "vk_khr_buffer_device_address")]
            vkGetBufferDeviceAddressKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetBufferDeviceAddressKHR")
            },
            #[cfg(feature = "vk_ext_buffer_device_address")]
            vkGetBufferDeviceAddressEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetBufferDeviceAddressEXT")
            },
            #[cfg(feature = "vk_intel_performance_query")]
            vkInitializePerformanceApiINTEL: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkInitializePerformanceApiINTEL",
                )
            },
            #[cfg(feature = "vk_intel_performance_query")]
            vkUninitializePerformanceApiINTEL: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkUninitializePerformanceApiINTEL",
                )
            },
            #[cfg(feature = "vk_intel_performance_query")]
            vkCmdSetPerformanceMarkerINTEL: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetPerformanceMarkerINTEL",
                )
            },
            #[cfg(feature = "vk_intel_performance_query")]
            vkCmdSetPerformanceStreamMarkerINTEL: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetPerformanceStreamMarkerINTEL",
                )
            },
            #[cfg(feature = "vk_intel_performance_query")]
            vkCmdSetPerformanceOverrideINTEL: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetPerformanceOverrideINTEL",
                )
            },
            #[cfg(feature = "vk_intel_performance_query")]
            vkAcquirePerformanceConfigurationINTEL: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkAcquirePerformanceConfigurationINTEL",
                )
            },
            #[cfg(feature = "vk_intel_performance_query")]
            vkReleasePerformanceConfigurationINTEL: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkReleasePerformanceConfigurationINTEL",
                )
            },
            #[cfg(feature = "vk_intel_performance_query")]
            vkQueueSetPerformanceConfigurationINTEL: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkQueueSetPerformanceConfigurationINTEL",
                )
            },
            #[cfg(feature = "vk_intel_performance_query")]
            vkGetPerformanceParameterINTEL: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetPerformanceParameterINTEL",
                )
            },
            #[cfg(feature = "core_1_2")]
            vkGetDeviceMemoryOpaqueCaptureAddress: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDeviceMemoryOpaqueCaptureAddress",
                )
            },
            #[cfg(feature = "vk_khr_buffer_device_address")]
            vkGetDeviceMemoryOpaqueCaptureAddressKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDeviceMemoryOpaqueCaptureAddressKHR",
                )
            },
            #[cfg(feature = "vk_khr_pipeline_executable_properties")]
            vkGetPipelineExecutablePropertiesKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetPipelineExecutablePropertiesKHR",
                )
            },
            #[cfg(feature = "vk_khr_pipeline_executable_properties")]
            vkGetPipelineExecutableStatisticsKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetPipelineExecutableStatisticsKHR",
                )
            },
            #[cfg(feature = "vk_khr_pipeline_executable_properties")]
            vkGetPipelineExecutableInternalRepresentationsKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetPipelineExecutableInternalRepresentationsKHR",
                )
            },
            #[cfg(feature = "core_1_4")]
            vkCmdSetLineStipple: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetLineStipple")
            },
            #[cfg(feature = "vk_khr_line_rasterization")]
            vkCmdSetLineStippleKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetLineStippleKHR")
            },
            #[cfg(feature = "vk_ext_line_rasterization")]
            vkCmdSetLineStippleEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetLineStippleEXT")
            },
            #[cfg(feature = "vk_khr_acceleration_structure")]
            vkCreateAccelerationStructureKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCreateAccelerationStructureKHR",
                )
            },
            #[cfg(feature = "vk_khr_acceleration_structure")]
            vkCmdBuildAccelerationStructuresKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdBuildAccelerationStructuresKHR",
                )
            },
            #[cfg(feature = "vk_khr_acceleration_structure")]
            vkCmdBuildAccelerationStructuresIndirectKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdBuildAccelerationStructuresIndirectKHR",
                )
            },
            #[cfg(feature = "vk_khr_acceleration_structure")]
            vkBuildAccelerationStructuresKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkBuildAccelerationStructuresKHR",
                )
            },
            #[cfg(feature = "vk_khr_acceleration_structure")]
            vkGetAccelerationStructureDeviceAddressKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetAccelerationStructureDeviceAddressKHR",
                )
            },
            #[cfg(feature = "vk_khr_deferred_host_operations")]
            vkCreateDeferredOperationKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCreateDeferredOperationKHR",
                )
            },
            #[cfg(feature = "vk_khr_deferred_host_operations")]
            vkDestroyDeferredOperationKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkDestroyDeferredOperationKHR",
                )
            },
            #[cfg(feature = "vk_khr_deferred_host_operations")]
            vkGetDeferredOperationMaxConcurrencyKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDeferredOperationMaxConcurrencyKHR",
                )
            },
            #[cfg(feature = "vk_khr_deferred_host_operations")]
            vkGetDeferredOperationResultKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDeferredOperationResultKHR",
                )
            },
            #[cfg(feature = "vk_khr_deferred_host_operations")]
            vkDeferredOperationJoinKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDeferredOperationJoinKHR")
            },
            #[cfg(feature = "vk_nv_device_generated_commands_compute")]
            vkGetPipelineIndirectMemoryRequirementsNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetPipelineIndirectMemoryRequirementsNV",
                )
            },
            #[cfg(feature = "vk_nv_device_generated_commands_compute")]
            vkGetPipelineIndirectDeviceAddressNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetPipelineIndirectDeviceAddressNV",
                )
            },
            #[cfg(feature = "vk_amd_anti_lag")]
            vkAntiLagUpdateAMD: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkAntiLagUpdateAMD")
            },
            #[cfg(feature = "core_1_3")]
            vkCmdSetCullMode: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetCullMode")
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetCullModeEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetCullModeEXT")
            },
            #[cfg(feature = "core_1_3")]
            vkCmdSetFrontFace: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetFrontFace")
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetFrontFaceEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetFrontFaceEXT")
            },
            #[cfg(feature = "core_1_3")]
            vkCmdSetPrimitiveTopology: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetPrimitiveTopology")
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetPrimitiveTopologyEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetPrimitiveTopologyEXT",
                )
            },
            #[cfg(feature = "core_1_3")]
            vkCmdSetViewportWithCount: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetViewportWithCount")
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetViewportWithCountEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetViewportWithCountEXT",
                )
            },
            #[cfg(feature = "core_1_3")]
            vkCmdSetScissorWithCount: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetScissorWithCount")
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetScissorWithCountEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetScissorWithCountEXT")
            },
            #[cfg(feature = "core_1_4")]
            vkCmdBindIndexBuffer2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBindIndexBuffer2")
            },
            #[cfg(feature = "vk_khr_maintenance5")]
            vkCmdBindIndexBuffer2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBindIndexBuffer2KHR")
            },
            #[cfg(feature = "core_1_3")]
            vkCmdBindVertexBuffers2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBindVertexBuffers2")
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdBindVertexBuffers2EXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBindVertexBuffers2EXT")
            },
            #[cfg(feature = "core_1_3")]
            vkCmdSetDepthTestEnable: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetDepthTestEnable")
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetDepthTestEnableEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetDepthTestEnableEXT")
            },
            #[cfg(feature = "core_1_3")]
            vkCmdSetDepthWriteEnable: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetDepthWriteEnable")
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetDepthWriteEnableEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetDepthWriteEnableEXT")
            },
            #[cfg(feature = "core_1_3")]
            vkCmdSetDepthCompareOp: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetDepthCompareOp")
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetDepthCompareOpEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetDepthCompareOpEXT")
            },
            #[cfg(feature = "core_1_3")]
            vkCmdSetDepthBoundsTestEnable: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetDepthBoundsTestEnable",
                )
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetDepthBoundsTestEnableEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetDepthBoundsTestEnableEXT",
                )
            },
            #[cfg(feature = "core_1_3")]
            vkCmdSetStencilTestEnable: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetStencilTestEnable")
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetStencilTestEnableEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetStencilTestEnableEXT",
                )
            },
            #[cfg(feature = "core_1_3")]
            vkCmdSetStencilOp: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetStencilOp")
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetStencilOpEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetStencilOpEXT")
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state2",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetPatchControlPointsEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetPatchControlPointsEXT",
                )
            },
            #[cfg(feature = "core_1_3")]
            vkCmdSetRasterizerDiscardEnable: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetRasterizerDiscardEnable",
                )
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state2",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetRasterizerDiscardEnableEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetRasterizerDiscardEnableEXT",
                )
            },
            #[cfg(feature = "core_1_3")]
            vkCmdSetDepthBiasEnable: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetDepthBiasEnable")
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state2",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetDepthBiasEnableEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetDepthBiasEnableEXT")
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state2",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetLogicOpEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetLogicOpEXT")
            },
            #[cfg(feature = "core_1_3")]
            vkCmdSetPrimitiveRestartEnable: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetPrimitiveRestartEnable",
                )
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state2",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetPrimitiveRestartEnableEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetPrimitiveRestartEnableEXT",
                )
            },
            #[cfg(any(
                feature = "vk_ext_shader_object",
                all(
                    feature = "vk_ext_extended_dynamic_state3",
                    any(feature = "core_1_1", feature = "vk_khr_maintenance2")
                )
            ))]
            vkCmdSetTessellationDomainOriginEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetTessellationDomainOriginEXT",
                )
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state3",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetDepthClampEnableEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetDepthClampEnableEXT")
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state3",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetPolygonModeEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetPolygonModeEXT")
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state3",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetRasterizationSamplesEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetRasterizationSamplesEXT",
                )
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state3",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetSampleMaskEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetSampleMaskEXT")
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state3",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetAlphaToCoverageEnableEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetAlphaToCoverageEnableEXT",
                )
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state3",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetAlphaToOneEnableEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetAlphaToOneEnableEXT")
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state3",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetLogicOpEnableEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetLogicOpEnableEXT")
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state3",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetColorBlendEnableEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetColorBlendEnableEXT")
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state3",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetColorBlendEquationEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetColorBlendEquationEXT",
                )
            },
            #[cfg(any(
                feature = "vk_ext_extended_dynamic_state3",
                feature = "vk_ext_shader_object"
            ))]
            vkCmdSetColorWriteMaskEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetColorWriteMaskEXT")
            },
            #[cfg(any(
                all(
                    feature = "vk_ext_extended_dynamic_state3",
                    feature = "vk_ext_transform_feedback"
                ),
                all(
                    feature = "vk_ext_shader_object",
                    feature = "vk_ext_transform_feedback"
                )
            ))]
            vkCmdSetRasterizationStreamEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetRasterizationStreamEXT",
                )
            },
            #[cfg(any(
                all(
                    feature = "vk_ext_conservative_rasterization",
                    feature = "vk_ext_extended_dynamic_state3"
                ),
                all(
                    feature = "vk_ext_conservative_rasterization",
                    feature = "vk_ext_shader_object"
                )
            ))]
            vkCmdSetConservativeRasterizationModeEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetConservativeRasterizationModeEXT",
                )
            },
            #[cfg(any(
                all(
                    feature = "vk_ext_conservative_rasterization",
                    feature = "vk_ext_extended_dynamic_state3"
                ),
                all(
                    feature = "vk_ext_conservative_rasterization",
                    feature = "vk_ext_shader_object"
                )
            ))]
            vkCmdSetExtraPrimitiveOverestimationSizeEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetExtraPrimitiveOverestimationSizeEXT",
                )
            },
            #[cfg(any(
                all(
                    feature = "vk_ext_depth_clip_enable",
                    feature = "vk_ext_extended_dynamic_state3"
                ),
                all(feature = "vk_ext_depth_clip_enable", feature = "vk_ext_shader_object")
            ))]
            vkCmdSetDepthClipEnableEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetDepthClipEnableEXT")
            },
            #[cfg(any(
                all(
                    feature = "vk_ext_extended_dynamic_state3",
                    feature = "vk_ext_sample_locations"
                ),
                all(feature = "vk_ext_sample_locations", feature = "vk_ext_shader_object")
            ))]
            vkCmdSetSampleLocationsEnableEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetSampleLocationsEnableEXT",
                )
            },
            #[cfg(any(
                all(
                    feature = "vk_ext_blend_operation_advanced",
                    feature = "vk_ext_extended_dynamic_state3"
                ),
                all(
                    feature = "vk_ext_blend_operation_advanced",
                    feature = "vk_ext_shader_object"
                )
            ))]
            vkCmdSetColorBlendAdvancedEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetColorBlendAdvancedEXT",
                )
            },
            #[cfg(any(
                all(
                    feature = "vk_ext_extended_dynamic_state3",
                    feature = "vk_ext_provoking_vertex"
                ),
                all(feature = "vk_ext_provoking_vertex", feature = "vk_ext_shader_object")
            ))]
            vkCmdSetProvokingVertexModeEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetProvokingVertexModeEXT",
                )
            },
            #[cfg(any(
                all(
                    feature = "vk_ext_extended_dynamic_state3",
                    any(
                        feature = "core_1_4",
                        feature = "vk_ext_line_rasterization",
                        feature = "vk_khr_line_rasterization"
                    )
                ),
                all(
                    feature = "vk_ext_shader_object",
                    any(
                        feature = "core_1_4",
                        feature = "vk_ext_line_rasterization",
                        feature = "vk_khr_line_rasterization"
                    )
                )
            ))]
            vkCmdSetLineRasterizationModeEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetLineRasterizationModeEXT",
                )
            },
            #[cfg(any(
                all(
                    feature = "vk_ext_extended_dynamic_state3",
                    any(
                        feature = "core_1_4",
                        feature = "vk_ext_line_rasterization",
                        feature = "vk_khr_line_rasterization"
                    )
                ),
                all(
                    feature = "vk_ext_shader_object",
                    any(
                        feature = "core_1_4",
                        feature = "vk_ext_line_rasterization",
                        feature = "vk_khr_line_rasterization"
                    )
                )
            ))]
            vkCmdSetLineStippleEnableEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetLineStippleEnableEXT",
                )
            },
            #[cfg(any(
                all(
                    feature = "vk_ext_depth_clip_control",
                    feature = "vk_ext_extended_dynamic_state3"
                ),
                all(
                    feature = "vk_ext_depth_clip_control",
                    feature = "vk_ext_shader_object"
                )
            ))]
            vkCmdSetDepthClipNegativeOneToOneEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetDepthClipNegativeOneToOneEXT",
                )
            },
            #[cfg(any(
                all(
                    feature = "vk_ext_extended_dynamic_state3",
                    feature = "vk_nv_clip_space_w_scaling"
                ),
                all(
                    feature = "vk_ext_shader_object",
                    feature = "vk_nv_clip_space_w_scaling"
                )
            ))]
            vkCmdSetViewportWScalingEnableNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetViewportWScalingEnableNV",
                )
            },
            #[cfg(any(
                all(
                    feature = "vk_ext_extended_dynamic_state3",
                    feature = "vk_nv_viewport_swizzle"
                ),
                all(feature = "vk_ext_shader_object", feature = "vk_nv_viewport_swizzle")
            ))]
            vkCmdSetViewportSwizzleNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetViewportSwizzleNV")
            },
            #[cfg(any(
                all(
                    feature = "vk_ext_extended_dynamic_state3",
                    feature = "vk_nv_fragment_coverage_to_color"
                ),
                all(
                    feature = "vk_ext_shader_object",
                    feature = "vk_nv_fragment_coverage_to_color"
                )
            ))]
            vkCmdSetCoverageToColorEnableNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetCoverageToColorEnableNV",
                )
            },
            #[cfg(any(
                all(
                    feature = "vk_ext_extended_dynamic_state3",
                    feature = "vk_nv_fragment_coverage_to_color"
                ),
                all(
                    feature = "vk_ext_shader_object",
                    feature = "vk_nv_fragment_coverage_to_color"
                )
            ))]
            vkCmdSetCoverageToColorLocationNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetCoverageToColorLocationNV",
                )
            },
            #[cfg(any(
                all(
                    feature = "vk_ext_extended_dynamic_state3",
                    feature = "vk_nv_framebuffer_mixed_samples"
                ),
                all(
                    feature = "vk_ext_shader_object",
                    feature = "vk_nv_framebuffer_mixed_samples"
                )
            ))]
            vkCmdSetCoverageModulationModeNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetCoverageModulationModeNV",
                )
            },
            #[cfg(any(
                all(
                    feature = "vk_ext_extended_dynamic_state3",
                    feature = "vk_nv_framebuffer_mixed_samples"
                ),
                all(
                    feature = "vk_ext_shader_object",
                    feature = "vk_nv_framebuffer_mixed_samples"
                )
            ))]
            vkCmdSetCoverageModulationTableEnableNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetCoverageModulationTableEnableNV",
                )
            },
            #[cfg(any(
                all(
                    feature = "vk_ext_extended_dynamic_state3",
                    feature = "vk_nv_framebuffer_mixed_samples"
                ),
                all(
                    feature = "vk_ext_shader_object",
                    feature = "vk_nv_framebuffer_mixed_samples"
                )
            ))]
            vkCmdSetCoverageModulationTableNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetCoverageModulationTableNV",
                )
            },
            #[cfg(any(
                all(
                    feature = "vk_ext_extended_dynamic_state3",
                    feature = "vk_nv_shading_rate_image"
                ),
                all(feature = "vk_ext_shader_object", feature = "vk_nv_shading_rate_image")
            ))]
            vkCmdSetShadingRateImageEnableNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetShadingRateImageEnableNV",
                )
            },
            #[cfg(any(
                all(
                    feature = "vk_ext_extended_dynamic_state3",
                    feature = "vk_nv_coverage_reduction_mode"
                ),
                all(
                    feature = "vk_ext_shader_object",
                    feature = "vk_nv_coverage_reduction_mode"
                )
            ))]
            vkCmdSetCoverageReductionModeNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetCoverageReductionModeNV",
                )
            },
            #[cfg(any(
                all(
                    feature = "vk_ext_extended_dynamic_state3",
                    feature = "vk_nv_representative_fragment_test"
                ),
                all(
                    feature = "vk_ext_shader_object",
                    feature = "vk_nv_representative_fragment_test"
                )
            ))]
            vkCmdSetRepresentativeFragmentTestEnableNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetRepresentativeFragmentTestEnableNV",
                )
            },
            #[cfg(feature = "core_1_3")]
            vkCreatePrivateDataSlot: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreatePrivateDataSlot")
            },
            #[cfg(feature = "vk_ext_private_data")]
            vkCreatePrivateDataSlotEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreatePrivateDataSlotEXT")
            },
            #[cfg(feature = "core_1_3")]
            vkDestroyPrivateDataSlot: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyPrivateDataSlot")
            },
            #[cfg(feature = "vk_ext_private_data")]
            vkDestroyPrivateDataSlotEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyPrivateDataSlotEXT")
            },
            #[cfg(feature = "core_1_3")]
            vkSetPrivateData: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkSetPrivateData")
            },
            #[cfg(feature = "vk_ext_private_data")]
            vkSetPrivateDataEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkSetPrivateDataEXT")
            },
            #[cfg(feature = "core_1_3")]
            vkGetPrivateData: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetPrivateData")
            },
            #[cfg(feature = "vk_ext_private_data")]
            vkGetPrivateDataEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetPrivateDataEXT")
            },
            #[cfg(feature = "core_1_3")]
            vkCmdCopyBuffer2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdCopyBuffer2")
            },
            #[cfg(feature = "vk_khr_copy_commands2")]
            vkCmdCopyBuffer2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdCopyBuffer2KHR")
            },
            #[cfg(feature = "core_1_3")]
            vkCmdCopyImage2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdCopyImage2")
            },
            #[cfg(feature = "vk_khr_copy_commands2")]
            vkCmdCopyImage2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdCopyImage2KHR")
            },
            #[cfg(feature = "core_1_3")]
            vkCmdBlitImage2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBlitImage2")
            },
            #[cfg(feature = "vk_khr_copy_commands2")]
            vkCmdBlitImage2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBlitImage2KHR")
            },
            #[cfg(feature = "core_1_3")]
            vkCmdCopyBufferToImage2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdCopyBufferToImage2")
            },
            #[cfg(feature = "vk_khr_copy_commands2")]
            vkCmdCopyBufferToImage2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdCopyBufferToImage2KHR")
            },
            #[cfg(feature = "core_1_3")]
            vkCmdCopyImageToBuffer2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdCopyImageToBuffer2")
            },
            #[cfg(feature = "vk_khr_copy_commands2")]
            vkCmdCopyImageToBuffer2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdCopyImageToBuffer2KHR")
            },
            #[cfg(feature = "core_1_3")]
            vkCmdResolveImage2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdResolveImage2")
            },
            #[cfg(feature = "vk_khr_copy_commands2")]
            vkCmdResolveImage2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdResolveImage2KHR")
            },
            #[cfg(feature = "vk_khr_fragment_shading_rate")]
            vkCmdSetFragmentShadingRateKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetFragmentShadingRateKHR",
                )
            },
            #[cfg(feature = "vk_nv_fragment_shading_rate_enums")]
            vkCmdSetFragmentShadingRateEnumNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetFragmentShadingRateEnumNV",
                )
            },
            #[cfg(feature = "vk_khr_acceleration_structure")]
            vkGetAccelerationStructureBuildSizesKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetAccelerationStructureBuildSizesKHR",
                )
            },
            #[cfg(any(
                feature = "vk_ext_shader_object",
                feature = "vk_ext_vertex_input_dynamic_state"
            ))]
            vkCmdSetVertexInputEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetVertexInputEXT")
            },
            #[cfg(feature = "vk_ext_color_write_enable")]
            vkCmdSetColorWriteEnableEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetColorWriteEnableEXT")
            },
            #[cfg(feature = "core_1_3")]
            vkCmdSetEvent2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetEvent2")
            },
            #[cfg(feature = "vk_khr_synchronization2")]
            vkCmdSetEvent2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetEvent2KHR")
            },
            #[cfg(feature = "core_1_3")]
            vkCmdResetEvent2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdResetEvent2")
            },
            #[cfg(feature = "vk_khr_synchronization2")]
            vkCmdResetEvent2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdResetEvent2KHR")
            },
            #[cfg(feature = "core_1_3")]
            vkCmdWaitEvents2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdWaitEvents2")
            },
            #[cfg(feature = "vk_khr_synchronization2")]
            vkCmdWaitEvents2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdWaitEvents2KHR")
            },
            #[cfg(feature = "core_1_3")]
            vkCmdPipelineBarrier2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdPipelineBarrier2")
            },
            #[cfg(feature = "vk_khr_synchronization2")]
            vkCmdPipelineBarrier2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdPipelineBarrier2KHR")
            },
            #[cfg(feature = "core_1_3")]
            vkQueueSubmit2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkQueueSubmit2")
            },
            #[cfg(feature = "vk_khr_synchronization2")]
            vkQueueSubmit2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkQueueSubmit2KHR")
            },
            #[cfg(feature = "core_1_3")]
            vkCmdWriteTimestamp2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdWriteTimestamp2")
            },
            #[cfg(feature = "vk_khr_synchronization2")]
            vkCmdWriteTimestamp2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdWriteTimestamp2KHR")
            },
            #[cfg(all(
                feature = "vk_amd_buffer_marker",
                any(feature = "core_1_3", feature = "vk_khr_synchronization2")
            ))]
            vkCmdWriteBufferMarker2AMD: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdWriteBufferMarker2AMD")
            },
            #[cfg(all(
                feature = "vk_nv_device_diagnostic_checkpoints",
                any(feature = "core_1_3", feature = "vk_khr_synchronization2")
            ))]
            vkGetQueueCheckpointData2NV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetQueueCheckpointData2NV")
            },
            #[cfg(feature = "core_1_4")]
            vkCopyMemoryToImage: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCopyMemoryToImage")
            },
            #[cfg(feature = "vk_ext_host_image_copy")]
            vkCopyMemoryToImageEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCopyMemoryToImageEXT")
            },
            #[cfg(feature = "core_1_4")]
            vkCopyImageToMemory: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCopyImageToMemory")
            },
            #[cfg(feature = "vk_ext_host_image_copy")]
            vkCopyImageToMemoryEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCopyImageToMemoryEXT")
            },
            #[cfg(feature = "core_1_4")]
            vkCopyImageToImage: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCopyImageToImage")
            },
            #[cfg(feature = "vk_ext_host_image_copy")]
            vkCopyImageToImageEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCopyImageToImageEXT")
            },
            #[cfg(feature = "core_1_4")]
            vkTransitionImageLayout: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkTransitionImageLayout")
            },
            #[cfg(feature = "vk_ext_host_image_copy")]
            vkTransitionImageLayoutEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkTransitionImageLayoutEXT")
            },
            #[cfg(feature = "vk_khr_video_queue")]
            vkCreateVideoSessionKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateVideoSessionKHR")
            },
            #[cfg(feature = "vk_khr_video_queue")]
            vkDestroyVideoSessionKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyVideoSessionKHR")
            },
            #[cfg(feature = "vk_khr_video_queue")]
            vkCreateVideoSessionParametersKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCreateVideoSessionParametersKHR",
                )
            },
            #[cfg(feature = "vk_khr_video_queue")]
            vkUpdateVideoSessionParametersKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkUpdateVideoSessionParametersKHR",
                )
            },
            #[cfg(feature = "vk_khr_video_encode_queue")]
            vkGetEncodedVideoSessionParametersKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetEncodedVideoSessionParametersKHR",
                )
            },
            #[cfg(feature = "vk_khr_video_queue")]
            vkDestroyVideoSessionParametersKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkDestroyVideoSessionParametersKHR",
                )
            },
            #[cfg(feature = "vk_khr_video_queue")]
            vkGetVideoSessionMemoryRequirementsKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetVideoSessionMemoryRequirementsKHR",
                )
            },
            #[cfg(feature = "vk_khr_video_queue")]
            vkBindVideoSessionMemoryKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkBindVideoSessionMemoryKHR")
            },
            #[cfg(feature = "vk_khr_video_decode_queue")]
            vkCmdDecodeVideoKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDecodeVideoKHR")
            },
            #[cfg(feature = "vk_khr_video_queue")]
            vkCmdBeginVideoCodingKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBeginVideoCodingKHR")
            },
            #[cfg(feature = "vk_khr_video_queue")]
            vkCmdControlVideoCodingKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdControlVideoCodingKHR")
            },
            #[cfg(feature = "vk_khr_video_queue")]
            vkCmdEndVideoCodingKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdEndVideoCodingKHR")
            },
            #[cfg(feature = "vk_khr_video_encode_queue")]
            vkCmdEncodeVideoKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdEncodeVideoKHR")
            },
            #[cfg(feature = "vk_nv_memory_decompression")]
            vkCmdDecompressMemoryNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDecompressMemoryNV")
            },
            #[cfg(feature = "vk_nv_memory_decompression")]
            vkCmdDecompressMemoryIndirectCountNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdDecompressMemoryIndirectCountNV",
                )
            },
            #[cfg(feature = "vk_nv_partitioned_acceleration_structure")]
            vkGetPartitionedAccelerationStructuresBuildSizesNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetPartitionedAccelerationStructuresBuildSizesNV",
                )
            },
            #[cfg(feature = "vk_nv_partitioned_acceleration_structure")]
            vkCmdBuildPartitionedAccelerationStructuresNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdBuildPartitionedAccelerationStructuresNV",
                )
            },
            #[cfg(feature = "vk_ext_memory_decompression")]
            vkCmdDecompressMemoryEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDecompressMemoryEXT")
            },
            #[cfg(feature = "vk_ext_memory_decompression")]
            vkCmdDecompressMemoryIndirectCountEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdDecompressMemoryIndirectCountEXT",
                )
            },
            #[cfg(feature = "vk_nvx_binary_import")]
            vkCreateCuModuleNVX: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateCuModuleNVX")
            },
            #[cfg(feature = "vk_nvx_binary_import")]
            vkCreateCuFunctionNVX: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateCuFunctionNVX")
            },
            #[cfg(feature = "vk_nvx_binary_import")]
            vkDestroyCuModuleNVX: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyCuModuleNVX")
            },
            #[cfg(feature = "vk_nvx_binary_import")]
            vkDestroyCuFunctionNVX: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyCuFunctionNVX")
            },
            #[cfg(feature = "vk_nvx_binary_import")]
            vkCmdCuLaunchKernelNVX: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdCuLaunchKernelNVX")
            },
            #[cfg(feature = "vk_ext_descriptor_buffer")]
            vkGetDescriptorSetLayoutSizeEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDescriptorSetLayoutSizeEXT",
                )
            },
            #[cfg(feature = "vk_ext_descriptor_buffer")]
            vkGetDescriptorSetLayoutBindingOffsetEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDescriptorSetLayoutBindingOffsetEXT",
                )
            },
            #[cfg(feature = "vk_ext_descriptor_buffer")]
            vkGetDescriptorEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetDescriptorEXT")
            },
            #[cfg(feature = "vk_ext_descriptor_buffer")]
            vkCmdBindDescriptorBuffersEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdBindDescriptorBuffersEXT",
                )
            },
            #[cfg(feature = "vk_ext_descriptor_buffer")]
            vkCmdSetDescriptorBufferOffsetsEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetDescriptorBufferOffsetsEXT",
                )
            },
            #[cfg(feature = "vk_ext_descriptor_buffer")]
            vkCmdBindDescriptorBufferEmbeddedSamplersEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdBindDescriptorBufferEmbeddedSamplersEXT",
                )
            },
            #[cfg(feature = "vk_ext_descriptor_buffer")]
            vkGetBufferOpaqueCaptureDescriptorDataEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetBufferOpaqueCaptureDescriptorDataEXT",
                )
            },
            #[cfg(feature = "vk_ext_descriptor_buffer")]
            vkGetImageOpaqueCaptureDescriptorDataEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetImageOpaqueCaptureDescriptorDataEXT",
                )
            },
            #[cfg(feature = "vk_ext_descriptor_buffer")]
            vkGetImageViewOpaqueCaptureDescriptorDataEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetImageViewOpaqueCaptureDescriptorDataEXT",
                )
            },
            #[cfg(feature = "vk_ext_descriptor_buffer")]
            vkGetSamplerOpaqueCaptureDescriptorDataEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetSamplerOpaqueCaptureDescriptorDataEXT",
                )
            },
            #[cfg(all(
                feature = "vk_ext_descriptor_buffer",
                any(
                    feature = "vk_khr_acceleration_structure",
                    feature = "vk_nv_ray_tracing"
                )
            ))]
            vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT",
                )
            },
            #[cfg(feature = "vk_ext_pageable_device_local_memory")]
            vkSetDeviceMemoryPriorityEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkSetDeviceMemoryPriorityEXT",
                )
            },
            #[cfg(feature = "vk_khr_present_wait2")]
            vkWaitForPresent2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkWaitForPresent2KHR")
            },
            #[cfg(feature = "vk_khr_present_wait")]
            vkWaitForPresentKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkWaitForPresentKHR")
            },
            #[cfg(feature = "vk_fuchsia_buffer_collection")]
            vkCreateBufferCollectionFUCHSIA: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCreateBufferCollectionFUCHSIA",
                )
            },
            #[cfg(feature = "vk_fuchsia_buffer_collection")]
            vkSetBufferCollectionBufferConstraintsFUCHSIA: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkSetBufferCollectionBufferConstraintsFUCHSIA",
                )
            },
            #[cfg(feature = "vk_fuchsia_buffer_collection")]
            vkSetBufferCollectionImageConstraintsFUCHSIA: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkSetBufferCollectionImageConstraintsFUCHSIA",
                )
            },
            #[cfg(feature = "vk_fuchsia_buffer_collection")]
            vkDestroyBufferCollectionFUCHSIA: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkDestroyBufferCollectionFUCHSIA",
                )
            },
            #[cfg(feature = "vk_fuchsia_buffer_collection")]
            vkGetBufferCollectionPropertiesFUCHSIA: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetBufferCollectionPropertiesFUCHSIA",
                )
            },
            #[cfg(feature = "vk_nv_cuda_kernel_launch")]
            vkCreateCudaModuleNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateCudaModuleNV")
            },
            #[cfg(feature = "vk_nv_cuda_kernel_launch")]
            vkGetCudaModuleCacheNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetCudaModuleCacheNV")
            },
            #[cfg(feature = "vk_nv_cuda_kernel_launch")]
            vkCreateCudaFunctionNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateCudaFunctionNV")
            },
            #[cfg(feature = "vk_nv_cuda_kernel_launch")]
            vkDestroyCudaModuleNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyCudaModuleNV")
            },
            #[cfg(feature = "vk_nv_cuda_kernel_launch")]
            vkDestroyCudaFunctionNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyCudaFunctionNV")
            },
            #[cfg(feature = "vk_nv_cuda_kernel_launch")]
            vkCmdCudaLaunchKernelNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdCudaLaunchKernelNV")
            },
            #[cfg(feature = "core_1_3")]
            vkCmdBeginRendering: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBeginRendering")
            },
            #[cfg(feature = "vk_khr_dynamic_rendering")]
            vkCmdBeginRenderingKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBeginRenderingKHR")
            },
            #[cfg(feature = "core_1_3")]
            vkCmdEndRendering: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdEndRendering")
            },
            #[cfg(feature = "vk_khr_maintenance10")]
            vkCmdEndRendering2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdEndRendering2KHR")
            },
            #[cfg(feature = "vk_ext_fragment_density_map_offset")]
            vkCmdEndRendering2EXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdEndRendering2EXT")
            },
            #[cfg(feature = "vk_khr_dynamic_rendering")]
            vkCmdEndRenderingKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdEndRenderingKHR")
            },
            #[cfg(feature = "vk_valve_descriptor_set_host_mapping")]
            vkGetDescriptorSetLayoutHostMappingInfoVALVE: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDescriptorSetLayoutHostMappingInfoVALVE",
                )
            },
            #[cfg(feature = "vk_valve_descriptor_set_host_mapping")]
            vkGetDescriptorSetHostMappingVALVE: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDescriptorSetHostMappingVALVE",
                )
            },
            #[cfg(feature = "vk_ext_opacity_micromap")]
            vkCreateMicromapEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateMicromapEXT")
            },
            #[cfg(feature = "vk_ext_opacity_micromap")]
            vkCmdBuildMicromapsEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBuildMicromapsEXT")
            },
            #[cfg(feature = "vk_ext_opacity_micromap")]
            vkBuildMicromapsEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkBuildMicromapsEXT")
            },
            #[cfg(feature = "vk_ext_opacity_micromap")]
            vkDestroyMicromapEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyMicromapEXT")
            },
            #[cfg(feature = "vk_ext_opacity_micromap")]
            vkCmdCopyMicromapEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdCopyMicromapEXT")
            },
            #[cfg(feature = "vk_ext_opacity_micromap")]
            vkCopyMicromapEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCopyMicromapEXT")
            },
            #[cfg(feature = "vk_ext_opacity_micromap")]
            vkCmdCopyMicromapToMemoryEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdCopyMicromapToMemoryEXT",
                )
            },
            #[cfg(feature = "vk_ext_opacity_micromap")]
            vkCopyMicromapToMemoryEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCopyMicromapToMemoryEXT")
            },
            #[cfg(feature = "vk_ext_opacity_micromap")]
            vkCmdCopyMemoryToMicromapEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdCopyMemoryToMicromapEXT",
                )
            },
            #[cfg(feature = "vk_ext_opacity_micromap")]
            vkCopyMemoryToMicromapEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCopyMemoryToMicromapEXT")
            },
            #[cfg(feature = "vk_ext_opacity_micromap")]
            vkCmdWriteMicromapsPropertiesEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdWriteMicromapsPropertiesEXT",
                )
            },
            #[cfg(feature = "vk_ext_opacity_micromap")]
            vkWriteMicromapsPropertiesEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkWriteMicromapsPropertiesEXT",
                )
            },
            #[cfg(feature = "vk_ext_opacity_micromap")]
            vkGetDeviceMicromapCompatibilityEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDeviceMicromapCompatibilityEXT",
                )
            },
            #[cfg(feature = "vk_ext_opacity_micromap")]
            vkGetMicromapBuildSizesEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetMicromapBuildSizesEXT")
            },
            #[cfg(feature = "vk_ext_shader_module_identifier")]
            vkGetShaderModuleIdentifierEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetShaderModuleIdentifierEXT",
                )
            },
            #[cfg(feature = "vk_ext_shader_module_identifier")]
            vkGetShaderModuleCreateInfoIdentifierEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetShaderModuleCreateInfoIdentifierEXT",
                )
            },
            #[cfg(feature = "core_1_4")]
            vkGetImageSubresourceLayout2: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetImageSubresourceLayout2",
                )
            },
            #[cfg(feature = "vk_khr_maintenance5")]
            vkGetImageSubresourceLayout2KHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetImageSubresourceLayout2KHR",
                )
            },
            #[cfg(any(
                feature = "vk_ext_host_image_copy",
                feature = "vk_ext_image_compression_control"
            ))]
            vkGetImageSubresourceLayout2EXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetImageSubresourceLayout2EXT",
                )
            },
            #[cfg(feature = "vk_ext_pipeline_properties")]
            vkGetPipelinePropertiesEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetPipelinePropertiesEXT")
            },
            #[cfg(feature = "vk_ext_metal_objects")]
            vkExportMetalObjectsEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkExportMetalObjectsEXT")
            },
            #[cfg(feature = "vk_qcom_tile_memory_heap")]
            vkCmdBindTileMemoryQCOM: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBindTileMemoryQCOM")
            },
            #[cfg(feature = "vk_qcom_tile_properties")]
            vkGetFramebufferTilePropertiesQCOM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetFramebufferTilePropertiesQCOM",
                )
            },
            #[cfg(feature = "vk_qcom_tile_properties")]
            vkGetDynamicRenderingTilePropertiesQCOM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDynamicRenderingTilePropertiesQCOM",
                )
            },
            #[cfg(feature = "vk_nv_optical_flow")]
            vkCreateOpticalFlowSessionNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCreateOpticalFlowSessionNV",
                )
            },
            #[cfg(feature = "vk_nv_optical_flow")]
            vkDestroyOpticalFlowSessionNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkDestroyOpticalFlowSessionNV",
                )
            },
            #[cfg(feature = "vk_nv_optical_flow")]
            vkBindOpticalFlowSessionImageNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkBindOpticalFlowSessionImageNV",
                )
            },
            #[cfg(feature = "vk_nv_optical_flow")]
            vkCmdOpticalFlowExecuteNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdOpticalFlowExecuteNV")
            },
            #[cfg(feature = "vk_ext_device_fault")]
            vkGetDeviceFaultInfoEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetDeviceFaultInfoEXT")
            },
            #[cfg(feature = "vk_khr_device_fault")]
            vkGetDeviceFaultReportsKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetDeviceFaultReportsKHR")
            },
            #[cfg(feature = "vk_khr_device_fault")]
            vkGetDeviceFaultDebugInfoKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDeviceFaultDebugInfoKHR",
                )
            },
            #[cfg(feature = "vk_ext_depth_bias_control")]
            vkCmdSetDepthBias2EXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetDepthBias2EXT")
            },
            #[cfg(feature = "vk_khr_swapchain_maintenance1")]
            vkReleaseSwapchainImagesKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkReleaseSwapchainImagesKHR")
            },
            #[cfg(feature = "vk_ext_swapchain_maintenance1")]
            vkReleaseSwapchainImagesEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkReleaseSwapchainImagesEXT")
            },
            #[cfg(feature = "core_1_4")]
            vkGetDeviceImageSubresourceLayout: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDeviceImageSubresourceLayout",
                )
            },
            #[cfg(feature = "vk_khr_maintenance5")]
            vkGetDeviceImageSubresourceLayoutKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDeviceImageSubresourceLayoutKHR",
                )
            },
            #[cfg(feature = "core_1_4")]
            vkMapMemory2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkMapMemory2")
            },
            #[cfg(feature = "vk_khr_map_memory2")]
            vkMapMemory2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkMapMemory2KHR")
            },
            #[cfg(feature = "core_1_4")]
            vkUnmapMemory2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkUnmapMemory2")
            },
            #[cfg(feature = "vk_khr_map_memory2")]
            vkUnmapMemory2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkUnmapMemory2KHR")
            },
            #[cfg(feature = "vk_ext_shader_object")]
            vkCreateShadersEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateShadersEXT")
            },
            #[cfg(feature = "vk_ext_shader_object")]
            vkDestroyShaderEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyShaderEXT")
            },
            #[cfg(feature = "vk_ext_shader_object")]
            vkGetShaderBinaryDataEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetShaderBinaryDataEXT")
            },
            #[cfg(feature = "vk_ext_shader_object")]
            vkCmdBindShadersEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBindShadersEXT")
            },
            #[cfg(feature = "vk_ext_present_timing")]
            vkSetSwapchainPresentTimingQueueSizeEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkSetSwapchainPresentTimingQueueSizeEXT",
                )
            },
            #[cfg(feature = "vk_ext_present_timing")]
            vkGetSwapchainTimingPropertiesEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetSwapchainTimingPropertiesEXT",
                )
            },
            #[cfg(feature = "vk_ext_present_timing")]
            vkGetSwapchainTimeDomainPropertiesEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetSwapchainTimeDomainPropertiesEXT",
                )
            },
            #[cfg(feature = "vk_ext_present_timing")]
            vkGetPastPresentationTimingEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetPastPresentationTimingEXT",
                )
            },
            #[cfg(feature = "vk_qnx_external_memory_screen_buffer")]
            vkGetScreenBufferPropertiesQNX: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetScreenBufferPropertiesQNX",
                )
            },
            #[cfg(feature = "vk_amdx_shader_enqueue")]
            vkGetExecutionGraphPipelineScratchSizeAMDX: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetExecutionGraphPipelineScratchSizeAMDX",
                )
            },
            #[cfg(feature = "vk_amdx_shader_enqueue")]
            vkGetExecutionGraphPipelineNodeIndexAMDX: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetExecutionGraphPipelineNodeIndexAMDX",
                )
            },
            #[cfg(feature = "vk_amdx_shader_enqueue")]
            vkCreateExecutionGraphPipelinesAMDX: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCreateExecutionGraphPipelinesAMDX",
                )
            },
            #[cfg(feature = "vk_amdx_shader_enqueue")]
            vkCmdInitializeGraphScratchMemoryAMDX: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdInitializeGraphScratchMemoryAMDX",
                )
            },
            #[cfg(feature = "vk_amdx_shader_enqueue")]
            vkCmdDispatchGraphAMDX: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDispatchGraphAMDX")
            },
            #[cfg(feature = "vk_amdx_shader_enqueue")]
            vkCmdDispatchGraphIndirectAMDX: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdDispatchGraphIndirectAMDX",
                )
            },
            #[cfg(feature = "vk_amdx_shader_enqueue")]
            vkCmdDispatchGraphIndirectCountAMDX: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdDispatchGraphIndirectCountAMDX",
                )
            },
            #[cfg(feature = "vk_amd_gpa_interface")]
            vkCreateGpaSessionAMD: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateGpaSessionAMD")
            },
            #[cfg(feature = "vk_amd_gpa_interface")]
            vkDestroyGpaSessionAMD: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyGpaSessionAMD")
            },
            #[cfg(feature = "vk_amd_gpa_interface")]
            vkSetGpaDeviceClockModeAMD: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkSetGpaDeviceClockModeAMD")
            },
            #[cfg(feature = "vk_amd_gpa_interface")]
            vkGetGpaDeviceClockInfoAMD: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetGpaDeviceClockInfoAMD")
            },
            #[cfg(feature = "vk_amd_gpa_interface")]
            vkCmdBeginGpaSessionAMD: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBeginGpaSessionAMD")
            },
            #[cfg(feature = "vk_amd_gpa_interface")]
            vkCmdEndGpaSessionAMD: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdEndGpaSessionAMD")
            },
            #[cfg(feature = "vk_amd_gpa_interface")]
            vkCmdBeginGpaSampleAMD: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBeginGpaSampleAMD")
            },
            #[cfg(feature = "vk_amd_gpa_interface")]
            vkCmdEndGpaSampleAMD: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdEndGpaSampleAMD")
            },
            #[cfg(feature = "vk_amd_gpa_interface")]
            vkGetGpaSessionStatusAMD: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetGpaSessionStatusAMD")
            },
            #[cfg(feature = "vk_amd_gpa_interface")]
            vkGetGpaSessionResultsAMD: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetGpaSessionResultsAMD")
            },
            #[cfg(feature = "vk_amd_gpa_interface")]
            vkResetGpaSessionAMD: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkResetGpaSessionAMD")
            },
            #[cfg(feature = "vk_amd_gpa_interface")]
            vkCmdCopyGpaSessionResultsAMD: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdCopyGpaSessionResultsAMD",
                )
            },
            #[cfg(feature = "core_1_4")]
            vkCmdBindDescriptorSets2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBindDescriptorSets2")
            },
            #[cfg(feature = "vk_khr_maintenance6")]
            vkCmdBindDescriptorSets2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBindDescriptorSets2KHR")
            },
            #[cfg(feature = "core_1_4")]
            vkCmdPushConstants2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdPushConstants2")
            },
            #[cfg(feature = "vk_khr_maintenance6")]
            vkCmdPushConstants2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdPushConstants2KHR")
            },
            #[cfg(feature = "core_1_4")]
            vkCmdPushDescriptorSet2: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdPushDescriptorSet2")
            },
            #[cfg(all(feature = "vk_khr_maintenance6", feature = "vk_khr_push_descriptor"))]
            vkCmdPushDescriptorSet2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdPushDescriptorSet2KHR")
            },
            #[cfg(feature = "core_1_4")]
            vkCmdPushDescriptorSetWithTemplate2: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdPushDescriptorSetWithTemplate2",
                )
            },
            #[cfg(all(feature = "vk_khr_maintenance6", feature = "vk_khr_push_descriptor"))]
            vkCmdPushDescriptorSetWithTemplate2KHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdPushDescriptorSetWithTemplate2KHR",
                )
            },
            #[cfg(all(feature = "vk_ext_descriptor_buffer", feature = "vk_khr_maintenance6"))]
            vkCmdSetDescriptorBufferOffsets2EXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetDescriptorBufferOffsets2EXT",
                )
            },
            #[cfg(all(feature = "vk_ext_descriptor_buffer", feature = "vk_khr_maintenance6"))]
            vkCmdBindDescriptorBufferEmbeddedSamplers2EXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdBindDescriptorBufferEmbeddedSamplers2EXT",
                )
            },
            #[cfg(feature = "vk_nv_low_latency2")]
            vkSetLatencySleepModeNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkSetLatencySleepModeNV")
            },
            #[cfg(feature = "vk_nv_low_latency2")]
            vkLatencySleepNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkLatencySleepNV")
            },
            #[cfg(feature = "vk_nv_low_latency2")]
            vkSetLatencyMarkerNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkSetLatencyMarkerNV")
            },
            #[cfg(feature = "vk_nv_low_latency2")]
            vkGetLatencyTimingsNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetLatencyTimingsNV")
            },
            #[cfg(feature = "vk_nv_low_latency2")]
            vkQueueNotifyOutOfBandNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkQueueNotifyOutOfBandNV")
            },
            #[cfg(feature = "vk_nv_low_latency")]
            vkSetLatencySleepModeLegacyNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkSetLatencySleepModeLegacyNV",
                )
            },
            #[cfg(feature = "vk_nv_low_latency")]
            vkLatencySleepLegacyNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkLatencySleepLegacyNV")
            },
            #[cfg(feature = "vk_nv_low_latency")]
            vkSetLatencyMarkerLegacyNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkSetLatencyMarkerLegacyNV")
            },
            #[cfg(feature = "vk_nv_low_latency")]
            vkGetLatencyTimingsLegacyNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetLatencyTimingsLegacyNV")
            },
            #[cfg(feature = "vk_nv_low_latency")]
            vkQueueNotifyOutOfBandLegacyNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkQueueNotifyOutOfBandLegacyNV",
                )
            },
            #[cfg(feature = "vk_nv_low_latency")]
            vkGetSleepStatusLegacyNV: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetSleepStatusLegacyNV")
            },
            #[cfg(feature = "vk_nv_low_latency")]
            vkShutdownLatencyDeviceLegacyNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkShutdownLatencyDeviceLegacyNV",
                )
            },
            #[cfg(feature = "core_1_4")]
            vkCmdSetRenderingAttachmentLocations: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetRenderingAttachmentLocations",
                )
            },
            #[cfg(feature = "vk_khr_dynamic_rendering_local_read")]
            vkCmdSetRenderingAttachmentLocationsKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetRenderingAttachmentLocationsKHR",
                )
            },
            #[cfg(feature = "core_1_4")]
            vkCmdSetRenderingInputAttachmentIndices: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetRenderingInputAttachmentIndices",
                )
            },
            #[cfg(feature = "vk_khr_dynamic_rendering_local_read")]
            vkCmdSetRenderingInputAttachmentIndicesKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetRenderingInputAttachmentIndicesKHR",
                )
            },
            #[cfg(feature = "vk_ext_depth_clamp_control")]
            vkCmdSetDepthClampRangeEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdSetDepthClampRangeEXT")
            },
            #[cfg(feature = "vk_ext_external_memory_metal")]
            vkGetMemoryMetalHandleEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetMemoryMetalHandleEXT")
            },
            #[cfg(feature = "vk_ext_external_memory_metal")]
            vkGetMemoryMetalHandlePropertiesEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetMemoryMetalHandlePropertiesEXT",
                )
            },
            #[cfg(feature = "vk_nv_cooperative_vector")]
            vkConvertCooperativeVectorMatrixNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkConvertCooperativeVectorMatrixNV",
                )
            },
            #[cfg(feature = "vk_nv_cooperative_vector")]
            vkCmdConvertCooperativeVectorMatrixNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdConvertCooperativeVectorMatrixNV",
                )
            },
            #[cfg(feature = "vk_qcom_tile_shading")]
            vkCmdDispatchTileQCOM: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDispatchTileQCOM")
            },
            #[cfg(feature = "vk_qcom_tile_shading")]
            vkCmdBeginPerTileExecutionQCOM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdBeginPerTileExecutionQCOM",
                )
            },
            #[cfg(feature = "vk_qcom_tile_shading")]
            vkCmdEndPerTileExecutionQCOM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdEndPerTileExecutionQCOM",
                )
            },
            #[cfg(feature = "vk_nv_external_compute_queue")]
            vkCreateExternalComputeQueueNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCreateExternalComputeQueueNV",
                )
            },
            #[cfg(feature = "vk_nv_external_compute_queue")]
            vkDestroyExternalComputeQueueNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkDestroyExternalComputeQueueNV",
                )
            },
            #[cfg(feature = "vk_nv_external_compute_queue")]
            vkGetExternalComputeQueueDataNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetExternalComputeQueueDataNV",
                )
            },
            #[cfg(feature = "vk_arm_shader_instrumentation")]
            vkCreateShaderInstrumentationARM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCreateShaderInstrumentationARM",
                )
            },
            #[cfg(feature = "vk_arm_shader_instrumentation")]
            vkDestroyShaderInstrumentationARM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkDestroyShaderInstrumentationARM",
                )
            },
            #[cfg(feature = "vk_arm_shader_instrumentation")]
            vkCmdBeginShaderInstrumentationARM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdBeginShaderInstrumentationARM",
                )
            },
            #[cfg(feature = "vk_arm_shader_instrumentation")]
            vkCmdEndShaderInstrumentationARM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdEndShaderInstrumentationARM",
                )
            },
            #[cfg(feature = "vk_arm_shader_instrumentation")]
            vkGetShaderInstrumentationValuesARM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetShaderInstrumentationValuesARM",
                )
            },
            #[cfg(feature = "vk_arm_shader_instrumentation")]
            vkClearShaderInstrumentationMetricsARM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkClearShaderInstrumentationMetricsARM",
                )
            },
            #[cfg(feature = "vk_arm_tensors")]
            vkCreateTensorARM: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateTensorARM")
            },
            #[cfg(feature = "vk_arm_tensors")]
            vkDestroyTensorARM: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyTensorARM")
            },
            #[cfg(feature = "vk_arm_tensors")]
            vkCreateTensorViewARM: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCreateTensorViewARM")
            },
            #[cfg(feature = "vk_arm_tensors")]
            vkDestroyTensorViewARM: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkDestroyTensorViewARM")
            },
            #[cfg(feature = "vk_arm_tensors")]
            vkGetTensorMemoryRequirementsARM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetTensorMemoryRequirementsARM",
                )
            },
            #[cfg(feature = "vk_arm_tensors")]
            vkBindTensorMemoryARM: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkBindTensorMemoryARM")
            },
            #[cfg(feature = "vk_arm_tensors")]
            vkGetDeviceTensorMemoryRequirementsARM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDeviceTensorMemoryRequirementsARM",
                )
            },
            #[cfg(feature = "vk_arm_tensors")]
            vkCmdCopyTensorARM: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdCopyTensorARM")
            },
            #[cfg(all(feature = "vk_arm_tensors", feature = "vk_ext_descriptor_buffer"))]
            vkGetTensorOpaqueCaptureDescriptorDataARM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetTensorOpaqueCaptureDescriptorDataARM",
                )
            },
            #[cfg(all(feature = "vk_arm_tensors", feature = "vk_ext_descriptor_buffer"))]
            vkGetTensorViewOpaqueCaptureDescriptorDataARM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetTensorViewOpaqueCaptureDescriptorDataARM",
                )
            },
            #[cfg(feature = "vk_arm_data_graph")]
            vkCreateDataGraphPipelinesARM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCreateDataGraphPipelinesARM",
                )
            },
            #[cfg(feature = "vk_arm_data_graph")]
            vkCreateDataGraphPipelineSessionARM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCreateDataGraphPipelineSessionARM",
                )
            },
            #[cfg(feature = "vk_arm_data_graph")]
            vkGetDataGraphPipelineSessionBindPointRequirementsARM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDataGraphPipelineSessionBindPointRequirementsARM",
                )
            },
            #[cfg(feature = "vk_arm_data_graph")]
            vkGetDataGraphPipelineSessionMemoryRequirementsARM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDataGraphPipelineSessionMemoryRequirementsARM",
                )
            },
            #[cfg(feature = "vk_arm_data_graph")]
            vkBindDataGraphPipelineSessionMemoryARM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkBindDataGraphPipelineSessionMemoryARM",
                )
            },
            #[cfg(feature = "vk_arm_data_graph")]
            vkDestroyDataGraphPipelineSessionARM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkDestroyDataGraphPipelineSessionARM",
                )
            },
            #[cfg(feature = "vk_arm_data_graph")]
            vkCmdDispatchDataGraphARM: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDispatchDataGraphARM")
            },
            #[cfg(feature = "vk_arm_data_graph")]
            vkGetDataGraphPipelineAvailablePropertiesARM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDataGraphPipelineAvailablePropertiesARM",
                )
            },
            #[cfg(feature = "vk_arm_data_graph")]
            vkGetDataGraphPipelinePropertiesARM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetDataGraphPipelinePropertiesARM",
                )
            },
            #[cfg(feature = "vk_ohos_external_memory")]
            vkGetNativeBufferPropertiesOHOS: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetNativeBufferPropertiesOHOS",
                )
            },
            #[cfg(feature = "vk_ohos_external_memory")]
            vkGetMemoryNativeBufferOHOS: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkGetMemoryNativeBufferOHOS")
            },
            #[cfg(feature = "vk_qcom_queue_perf_hint")]
            vkQueueSetPerfHintQCOM: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkQueueSetPerfHintQCOM")
            },
            #[cfg(feature = "vk_nv_compute_occupancy_priority")]
            vkCmdSetComputeOccupancyPriorityNV: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetComputeOccupancyPriorityNV",
                )
            },
            #[cfg(feature = "vk_ext_descriptor_heap")]
            vkWriteSamplerDescriptorsEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkWriteSamplerDescriptorsEXT",
                )
            },
            #[cfg(feature = "vk_ext_descriptor_heap")]
            vkWriteResourceDescriptorsEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkWriteResourceDescriptorsEXT",
                )
            },
            #[cfg(feature = "vk_ext_descriptor_heap")]
            vkCmdBindSamplerHeapEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBindSamplerHeapEXT")
            },
            #[cfg(feature = "vk_ext_descriptor_heap")]
            vkCmdBindResourceHeapEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBindResourceHeapEXT")
            },
            #[cfg(feature = "vk_ext_descriptor_heap")]
            vkCmdPushDataEXT: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdPushDataEXT")
            },
            #[cfg(all(
                feature = "vk_ext_custom_border_color",
                feature = "vk_ext_descriptor_heap"
            ))]
            vkRegisterCustomBorderColorEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkRegisterCustomBorderColorEXT",
                )
            },
            #[cfg(all(
                feature = "vk_ext_custom_border_color",
                feature = "vk_ext_descriptor_heap"
            ))]
            vkUnregisterCustomBorderColorEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkUnregisterCustomBorderColorEXT",
                )
            },
            #[cfg(feature = "vk_ext_descriptor_heap")]
            vkGetImageOpaqueCaptureDataEXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetImageOpaqueCaptureDataEXT",
                )
            },
            #[cfg(all(feature = "vk_arm_tensors", feature = "vk_ext_descriptor_heap"))]
            vkGetTensorOpaqueCaptureDataARM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkGetTensorOpaqueCaptureDataARM",
                )
            },
            #[cfg(feature = "vk_khr_device_address_commands")]
            vkCmdCopyMemoryKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdCopyMemoryKHR")
            },
            #[cfg(feature = "vk_khr_device_address_commands")]
            vkCmdCopyMemoryToImageKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdCopyMemoryToImageKHR")
            },
            #[cfg(feature = "vk_khr_device_address_commands")]
            vkCmdCopyImageToMemoryKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdCopyImageToMemoryKHR")
            },
            #[cfg(feature = "vk_khr_device_address_commands")]
            vkCmdUpdateMemoryKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdUpdateMemoryKHR")
            },
            #[cfg(feature = "vk_khr_device_address_commands")]
            vkCmdFillMemoryKHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdFillMemoryKHR")
            },
            #[cfg(feature = "vk_khr_device_address_commands")]
            vkCmdCopyQueryPoolResultsToMemoryKHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdCopyQueryPoolResultsToMemoryKHR",
                )
            },
            #[cfg(all(
                feature = "vk_ext_conditional_rendering",
                feature = "vk_khr_device_address_commands"
            ))]
            vkCmdBeginConditionalRendering2EXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdBeginConditionalRendering2EXT",
                )
            },
            #[cfg(all(
                feature = "vk_ext_transform_feedback",
                feature = "vk_khr_device_address_commands"
            ))]
            vkCmdBindTransformFeedbackBuffers2EXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdBindTransformFeedbackBuffers2EXT",
                )
            },
            #[cfg(all(
                feature = "vk_ext_transform_feedback",
                feature = "vk_khr_device_address_commands"
            ))]
            vkCmdBeginTransformFeedback2EXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdBeginTransformFeedback2EXT",
                )
            },
            #[cfg(all(
                feature = "vk_ext_transform_feedback",
                feature = "vk_khr_device_address_commands"
            ))]
            vkCmdEndTransformFeedback2EXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdEndTransformFeedback2EXT",
                )
            },
            #[cfg(all(
                feature = "vk_ext_transform_feedback",
                feature = "vk_khr_device_address_commands"
            ))]
            vkCmdDrawIndirectByteCount2EXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdDrawIndirectByteCount2EXT",
                )
            },
            #[cfg(all(
                feature = "vk_amd_buffer_marker",
                feature = "vk_khr_device_address_commands"
            ))]
            vkCmdWriteMarkerToMemoryAMD: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdWriteMarkerToMemoryAMD")
            },
            #[cfg(feature = "vk_khr_device_address_commands")]
            vkCmdBindIndexBuffer3KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBindIndexBuffer3KHR")
            },
            #[cfg(feature = "vk_khr_device_address_commands")]
            vkCmdBindVertexBuffers3KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdBindVertexBuffers3KHR")
            },
            #[cfg(feature = "vk_khr_device_address_commands")]
            vkCmdDrawIndirect2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDrawIndirect2KHR")
            },
            #[cfg(feature = "vk_khr_device_address_commands")]
            vkCmdDrawIndexedIndirect2KHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdDrawIndexedIndirect2KHR",
                )
            },
            #[cfg(all(
                feature = "vk_khr_device_address_commands",
                any(feature = "core_1_2", feature = "vk_khr_draw_indirect_count")
            ))]
            vkCmdDrawIndirectCount2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDrawIndirectCount2KHR")
            },
            #[cfg(all(
                feature = "vk_khr_device_address_commands",
                any(feature = "core_1_2", feature = "vk_khr_draw_indirect_count")
            ))]
            vkCmdDrawIndexedIndirectCount2KHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdDrawIndexedIndirectCount2KHR",
                )
            },
            #[cfg(all(
                feature = "vk_ext_mesh_shader",
                feature = "vk_khr_device_address_commands"
            ))]
            vkCmdDrawMeshTasksIndirect2EXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdDrawMeshTasksIndirect2EXT",
                )
            },
            #[cfg(all(
                feature = "vk_ext_mesh_shader",
                feature = "vk_khr_device_address_commands",
                any(feature = "core_1_2", feature = "vk_khr_draw_indirect_count")
            ))]
            vkCmdDrawMeshTasksIndirectCount2EXT: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdDrawMeshTasksIndirectCount2EXT",
                )
            },
            #[cfg(feature = "vk_khr_device_address_commands")]
            vkCmdDispatchIndirect2KHR: unsafe {
                load_device_command(get_device_proc_addr, device, c"vkCmdDispatchIndirect2KHR")
            },
            #[cfg(all(
                feature = "vk_khr_acceleration_structure",
                feature = "vk_khr_device_address_commands"
            ))]
            vkCreateAccelerationStructure2KHR: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCreateAccelerationStructure2KHR",
                )
            },
            #[cfg(feature = "vk_arm_scheduling_controls")]
            vkCmdSetDispatchParametersARM: unsafe {
                load_device_command(
                    get_device_proc_addr,
                    device,
                    c"vkCmdSetDispatchParametersARM",
                )
            },
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkDestroyDevice(
        &self,
        device: VkDevice,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyDevice
                .expect("Vulkan command vkDestroyDevice is not loaded"))(
                device, pAllocator
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkGetDeviceQueue(
        &self,
        device: VkDevice,
        queueFamilyIndex: u32,
        queueIndex: u32,
        pQueue: *mut VkQueue,
    ) {
        unsafe {
            (self
                .vkGetDeviceQueue
                .expect("Vulkan command vkGetDeviceQueue is not loaded"))(
                device,
                queueFamilyIndex,
                queueIndex,
                pQueue,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkQueueSubmit(
        &self,
        queue: VkQueue,
        submitCount: u32,
        pSubmits: *const VkSubmitInfo,
        fence: VkFence,
    ) -> VkResult {
        unsafe {
            (self
                .vkQueueSubmit
                .expect("Vulkan command vkQueueSubmit is not loaded"))(
                queue,
                submitCount,
                pSubmits,
                fence,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkQueueWaitIdle(&self, queue: VkQueue) -> VkResult {
        unsafe {
            (self
                .vkQueueWaitIdle
                .expect("Vulkan command vkQueueWaitIdle is not loaded"))(queue)
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkDeviceWaitIdle(&self, device: VkDevice) -> VkResult {
        unsafe {
            (self
                .vkDeviceWaitIdle
                .expect("Vulkan command vkDeviceWaitIdle is not loaded"))(device)
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkAllocateMemory(
        &self,
        device: VkDevice,
        pAllocateInfo: *const VkMemoryAllocateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pMemory: *mut VkDeviceMemory,
    ) -> VkResult {
        unsafe {
            (self
                .vkAllocateMemory
                .expect("Vulkan command vkAllocateMemory is not loaded"))(
                device,
                pAllocateInfo,
                pAllocator,
                pMemory,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkFreeMemory(
        &self,
        device: VkDevice,
        memory: VkDeviceMemory,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkFreeMemory
                .expect("Vulkan command vkFreeMemory is not loaded"))(
                device, memory, pAllocator
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkMapMemory(
        &self,
        device: VkDevice,
        memory: VkDeviceMemory,
        offset: VkDeviceSize,
        size: VkDeviceSize,
        flags: VkMemoryMapFlags,
        ppData: *mut *mut c_void,
    ) -> VkResult {
        unsafe {
            (self
                .vkMapMemory
                .expect("Vulkan command vkMapMemory is not loaded"))(
                device, memory, offset, size, flags, ppData,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkUnmapMemory(&self, device: VkDevice, memory: VkDeviceMemory) {
        unsafe {
            (self
                .vkUnmapMemory
                .expect("Vulkan command vkUnmapMemory is not loaded"))(device, memory)
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkFlushMappedMemoryRanges(
        &self,
        device: VkDevice,
        memoryRangeCount: u32,
        pMemoryRanges: *const VkMappedMemoryRange,
    ) -> VkResult {
        unsafe {
            (self
                .vkFlushMappedMemoryRanges
                .expect("Vulkan command vkFlushMappedMemoryRanges is not loaded"))(
                device,
                memoryRangeCount,
                pMemoryRanges,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkInvalidateMappedMemoryRanges(
        &self,
        device: VkDevice,
        memoryRangeCount: u32,
        pMemoryRanges: *const VkMappedMemoryRange,
    ) -> VkResult {
        unsafe {
            (self
                .vkInvalidateMappedMemoryRanges
                .expect("Vulkan command vkInvalidateMappedMemoryRanges is not loaded"))(
                device,
                memoryRangeCount,
                pMemoryRanges,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkGetDeviceMemoryCommitment(
        &self,
        device: VkDevice,
        memory: VkDeviceMemory,
        pCommittedMemoryInBytes: *mut VkDeviceSize,
    ) {
        unsafe {
            (self
                .vkGetDeviceMemoryCommitment
                .expect("Vulkan command vkGetDeviceMemoryCommitment is not loaded"))(
                device,
                memory,
                pCommittedMemoryInBytes,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkGetBufferMemoryRequirements(
        &self,
        device: VkDevice,
        buffer: VkBuffer,
        pMemoryRequirements: *mut VkMemoryRequirements,
    ) {
        unsafe {
            (self
                .vkGetBufferMemoryRequirements
                .expect("Vulkan command vkGetBufferMemoryRequirements is not loaded"))(
                device,
                buffer,
                pMemoryRequirements,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkBindBufferMemory(
        &self,
        device: VkDevice,
        buffer: VkBuffer,
        memory: VkDeviceMemory,
        memoryOffset: VkDeviceSize,
    ) -> VkResult {
        unsafe {
            (self
                .vkBindBufferMemory
                .expect("Vulkan command vkBindBufferMemory is not loaded"))(
                device,
                buffer,
                memory,
                memoryOffset,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkGetImageMemoryRequirements(
        &self,
        device: VkDevice,
        image: VkImage,
        pMemoryRequirements: *mut VkMemoryRequirements,
    ) {
        unsafe {
            (self
                .vkGetImageMemoryRequirements
                .expect("Vulkan command vkGetImageMemoryRequirements is not loaded"))(
                device,
                image,
                pMemoryRequirements,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkBindImageMemory(
        &self,
        device: VkDevice,
        image: VkImage,
        memory: VkDeviceMemory,
        memoryOffset: VkDeviceSize,
    ) -> VkResult {
        unsafe {
            (self
                .vkBindImageMemory
                .expect("Vulkan command vkBindImageMemory is not loaded"))(
                device,
                image,
                memory,
                memoryOffset,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkGetImageSparseMemoryRequirements(
        &self,
        device: VkDevice,
        image: VkImage,
        pSparseMemoryRequirementCount: *mut u32,
        pSparseMemoryRequirements: *mut VkSparseImageMemoryRequirements,
    ) {
        unsafe {
            (self
                .vkGetImageSparseMemoryRequirements
                .expect("Vulkan command vkGetImageSparseMemoryRequirements is not loaded"))(
                device,
                image,
                pSparseMemoryRequirementCount,
                pSparseMemoryRequirements,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkQueueBindSparse(
        &self,
        queue: VkQueue,
        bindInfoCount: u32,
        pBindInfo: *const VkBindSparseInfo,
        fence: VkFence,
    ) -> VkResult {
        unsafe {
            (self
                .vkQueueBindSparse
                .expect("Vulkan command vkQueueBindSparse is not loaded"))(
                queue,
                bindInfoCount,
                pBindInfo,
                fence,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCreateFence(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkFenceCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pFence: *mut VkFence,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateFence
                .expect("Vulkan command vkCreateFence is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pFence,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkDestroyFence(
        &self,
        device: VkDevice,
        fence: VkFence,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyFence
                .expect("Vulkan command vkDestroyFence is not loaded"))(
                device, fence, pAllocator
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkResetFences(
        &self,
        device: VkDevice,
        fenceCount: u32,
        pFences: *const VkFence,
    ) -> VkResult {
        unsafe {
            (self
                .vkResetFences
                .expect("Vulkan command vkResetFences is not loaded"))(
                device, fenceCount, pFences
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkGetFenceStatus(&self, device: VkDevice, fence: VkFence) -> VkResult {
        unsafe {
            (self
                .vkGetFenceStatus
                .expect("Vulkan command vkGetFenceStatus is not loaded"))(device, fence)
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkWaitForFences(
        &self,
        device: VkDevice,
        fenceCount: u32,
        pFences: *const VkFence,
        waitAll: VkBool32,
        timeout: u64,
    ) -> VkResult {
        unsafe {
            (self
                .vkWaitForFences
                .expect("Vulkan command vkWaitForFences is not loaded"))(
                device, fenceCount, pFences, waitAll, timeout,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCreateSemaphore(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkSemaphoreCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pSemaphore: *mut VkSemaphore,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateSemaphore
                .expect("Vulkan command vkCreateSemaphore is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pSemaphore,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkDestroySemaphore(
        &self,
        device: VkDevice,
        semaphore: VkSemaphore,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroySemaphore
                .expect("Vulkan command vkDestroySemaphore is not loaded"))(
                device, semaphore, pAllocator,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCreateEvent(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkEventCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pEvent: *mut VkEvent,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateEvent
                .expect("Vulkan command vkCreateEvent is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pEvent,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkDestroyEvent(
        &self,
        device: VkDevice,
        event: VkEvent,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyEvent
                .expect("Vulkan command vkDestroyEvent is not loaded"))(
                device, event, pAllocator
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkGetEventStatus(&self, device: VkDevice, event: VkEvent) -> VkResult {
        unsafe {
            (self
                .vkGetEventStatus
                .expect("Vulkan command vkGetEventStatus is not loaded"))(device, event)
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkSetEvent(&self, device: VkDevice, event: VkEvent) -> VkResult {
        unsafe {
            (self
                .vkSetEvent
                .expect("Vulkan command vkSetEvent is not loaded"))(device, event)
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkResetEvent(&self, device: VkDevice, event: VkEvent) -> VkResult {
        unsafe {
            (self
                .vkResetEvent
                .expect("Vulkan command vkResetEvent is not loaded"))(device, event)
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCreateQueryPool(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkQueryPoolCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pQueryPool: *mut VkQueryPool,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateQueryPool
                .expect("Vulkan command vkCreateQueryPool is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pQueryPool,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkDestroyQueryPool(
        &self,
        device: VkDevice,
        queryPool: VkQueryPool,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyQueryPool
                .expect("Vulkan command vkDestroyQueryPool is not loaded"))(
                device, queryPool, pAllocator,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkGetQueryPoolResults(
        &self,
        device: VkDevice,
        queryPool: VkQueryPool,
        firstQuery: u32,
        queryCount: u32,
        dataSize: usize,
        pData: *mut c_void,
        stride: VkDeviceSize,
        flags: VkQueryResultFlags,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetQueryPoolResults
                .expect("Vulkan command vkGetQueryPoolResults is not loaded"))(
                device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags,
            )
        }
    }
    #[cfg(feature = "core_1_2")]
    pub unsafe fn vkResetQueryPool(
        &self,
        device: VkDevice,
        queryPool: VkQueryPool,
        firstQuery: u32,
        queryCount: u32,
    ) {
        unsafe {
            (self
                .vkResetQueryPool
                .expect("Vulkan command vkResetQueryPool is not loaded"))(
                device, queryPool, firstQuery, queryCount,
            )
        }
    }
    #[cfg(feature = "vk_ext_host_query_reset")]
    pub unsafe fn vkResetQueryPoolEXT(
        &self,
        device: VkDevice,
        queryPool: VkQueryPool,
        firstQuery: u32,
        queryCount: u32,
    ) {
        unsafe {
            (self
                .vkResetQueryPoolEXT
                .expect("Vulkan command vkResetQueryPoolEXT is not loaded"))(
                device, queryPool, firstQuery, queryCount,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCreateBuffer(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkBufferCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pBuffer: *mut VkBuffer,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateBuffer
                .expect("Vulkan command vkCreateBuffer is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pBuffer,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkDestroyBuffer(
        &self,
        device: VkDevice,
        buffer: VkBuffer,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyBuffer
                .expect("Vulkan command vkDestroyBuffer is not loaded"))(
                device, buffer, pAllocator
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCreateBufferView(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkBufferViewCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pView: *mut VkBufferView,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateBufferView
                .expect("Vulkan command vkCreateBufferView is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pView,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkDestroyBufferView(
        &self,
        device: VkDevice,
        bufferView: VkBufferView,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyBufferView
                .expect("Vulkan command vkDestroyBufferView is not loaded"))(
                device, bufferView, pAllocator,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCreateImage(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkImageCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pImage: *mut VkImage,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateImage
                .expect("Vulkan command vkCreateImage is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pImage,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkDestroyImage(
        &self,
        device: VkDevice,
        image: VkImage,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyImage
                .expect("Vulkan command vkDestroyImage is not loaded"))(
                device, image, pAllocator
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkGetImageSubresourceLayout(
        &self,
        device: VkDevice,
        image: VkImage,
        pSubresource: *const VkImageSubresource,
        pLayout: *mut VkSubresourceLayout,
    ) {
        unsafe {
            (self
                .vkGetImageSubresourceLayout
                .expect("Vulkan command vkGetImageSubresourceLayout is not loaded"))(
                device,
                image,
                pSubresource,
                pLayout,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCreateImageView(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkImageViewCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pView: *mut VkImageView,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateImageView
                .expect("Vulkan command vkCreateImageView is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pView,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkDestroyImageView(
        &self,
        device: VkDevice,
        imageView: VkImageView,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyImageView
                .expect("Vulkan command vkDestroyImageView is not loaded"))(
                device, imageView, pAllocator,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCreateShaderModule(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkShaderModuleCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pShaderModule: *mut VkShaderModule,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateShaderModule
                .expect("Vulkan command vkCreateShaderModule is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pShaderModule,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkDestroyShaderModule(
        &self,
        device: VkDevice,
        shaderModule: VkShaderModule,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyShaderModule
                .expect("Vulkan command vkDestroyShaderModule is not loaded"))(
                device,
                shaderModule,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCreatePipelineCache(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkPipelineCacheCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pPipelineCache: *mut VkPipelineCache,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreatePipelineCache
                .expect("Vulkan command vkCreatePipelineCache is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pPipelineCache,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkDestroyPipelineCache(
        &self,
        device: VkDevice,
        pipelineCache: VkPipelineCache,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyPipelineCache
                .expect("Vulkan command vkDestroyPipelineCache is not loaded"))(
                device,
                pipelineCache,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkGetPipelineCacheData(
        &self,
        device: VkDevice,
        pipelineCache: VkPipelineCache,
        pDataSize: *mut usize,
        pData: *mut c_void,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPipelineCacheData
                .expect("Vulkan command vkGetPipelineCacheData is not loaded"))(
                device,
                pipelineCache,
                pDataSize,
                pData,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkMergePipelineCaches(
        &self,
        device: VkDevice,
        dstCache: VkPipelineCache,
        srcCacheCount: u32,
        pSrcCaches: *const VkPipelineCache,
    ) -> VkResult {
        unsafe {
            (self
                .vkMergePipelineCaches
                .expect("Vulkan command vkMergePipelineCaches is not loaded"))(
                device,
                dstCache,
                srcCacheCount,
                pSrcCaches,
            )
        }
    }
    #[cfg(feature = "vk_khr_pipeline_binary")]
    pub unsafe fn vkCreatePipelineBinariesKHR(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkPipelineBinaryCreateInfoKHR,
        pAllocator: *const VkAllocationCallbacks,
        pBinaries: *mut VkPipelineBinaryHandlesInfoKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreatePipelineBinariesKHR
                .expect("Vulkan command vkCreatePipelineBinariesKHR is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pBinaries,
            )
        }
    }
    #[cfg(feature = "vk_khr_pipeline_binary")]
    pub unsafe fn vkDestroyPipelineBinaryKHR(
        &self,
        device: VkDevice,
        pipelineBinary: VkPipelineBinaryKHR,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyPipelineBinaryKHR
                .expect("Vulkan command vkDestroyPipelineBinaryKHR is not loaded"))(
                device,
                pipelineBinary,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_khr_pipeline_binary")]
    pub unsafe fn vkGetPipelineKeyKHR(
        &self,
        device: VkDevice,
        pPipelineCreateInfo: *const VkPipelineCreateInfoKHR,
        pPipelineKey: *mut VkPipelineBinaryKeyKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPipelineKeyKHR
                .expect("Vulkan command vkGetPipelineKeyKHR is not loaded"))(
                device,
                pPipelineCreateInfo,
                pPipelineKey,
            )
        }
    }
    #[cfg(feature = "vk_khr_pipeline_binary")]
    pub unsafe fn vkGetPipelineBinaryDataKHR(
        &self,
        device: VkDevice,
        pInfo: *const VkPipelineBinaryDataInfoKHR,
        pPipelineBinaryKey: *mut VkPipelineBinaryKeyKHR,
        pPipelineBinaryDataSize: *mut usize,
        pPipelineBinaryData: *mut c_void,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPipelineBinaryDataKHR
                .expect("Vulkan command vkGetPipelineBinaryDataKHR is not loaded"))(
                device,
                pInfo,
                pPipelineBinaryKey,
                pPipelineBinaryDataSize,
                pPipelineBinaryData,
            )
        }
    }
    #[cfg(feature = "vk_khr_pipeline_binary")]
    pub unsafe fn vkReleaseCapturedPipelineDataKHR(
        &self,
        device: VkDevice,
        pInfo: *const VkReleaseCapturedPipelineDataInfoKHR,
        pAllocator: *const VkAllocationCallbacks,
    ) -> VkResult {
        unsafe {
            (self
                .vkReleaseCapturedPipelineDataKHR
                .expect("Vulkan command vkReleaseCapturedPipelineDataKHR is not loaded"))(
                device, pInfo, pAllocator,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCreateGraphicsPipelines(
        &self,
        device: VkDevice,
        pipelineCache: VkPipelineCache,
        createInfoCount: u32,
        pCreateInfos: *const VkGraphicsPipelineCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pPipelines: *mut VkPipeline,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateGraphicsPipelines
                .expect("Vulkan command vkCreateGraphicsPipelines is not loaded"))(
                device,
                pipelineCache,
                createInfoCount,
                pCreateInfos,
                pAllocator,
                pPipelines,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCreateComputePipelines(
        &self,
        device: VkDevice,
        pipelineCache: VkPipelineCache,
        createInfoCount: u32,
        pCreateInfos: *const VkComputePipelineCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pPipelines: *mut VkPipeline,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateComputePipelines
                .expect("Vulkan command vkCreateComputePipelines is not loaded"))(
                device,
                pipelineCache,
                createInfoCount,
                pCreateInfos,
                pAllocator,
                pPipelines,
            )
        }
    }
    #[cfg(feature = "vk_huawei_subpass_shading")]
    pub unsafe fn vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
        &self,
        device: VkDevice,
        renderpass: VkRenderPass,
        pMaxWorkgroupSize: *mut VkExtent2D,
    ) -> VkResult {
        unsafe {
            (self.vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI.expect(
                "Vulkan command vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI is not loaded",
            ))(device, renderpass, pMaxWorkgroupSize)
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkDestroyPipeline(
        &self,
        device: VkDevice,
        pipeline: VkPipeline,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyPipeline
                .expect("Vulkan command vkDestroyPipeline is not loaded"))(
                device, pipeline, pAllocator,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCreatePipelineLayout(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkPipelineLayoutCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pPipelineLayout: *mut VkPipelineLayout,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreatePipelineLayout
                .expect("Vulkan command vkCreatePipelineLayout is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pPipelineLayout,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkDestroyPipelineLayout(
        &self,
        device: VkDevice,
        pipelineLayout: VkPipelineLayout,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyPipelineLayout
                .expect("Vulkan command vkDestroyPipelineLayout is not loaded"))(
                device,
                pipelineLayout,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCreateSampler(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkSamplerCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pSampler: *mut VkSampler,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateSampler
                .expect("Vulkan command vkCreateSampler is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pSampler,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkDestroySampler(
        &self,
        device: VkDevice,
        sampler: VkSampler,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroySampler
                .expect("Vulkan command vkDestroySampler is not loaded"))(
                device, sampler, pAllocator,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCreateDescriptorSetLayout(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkDescriptorSetLayoutCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pSetLayout: *mut VkDescriptorSetLayout,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateDescriptorSetLayout
                .expect("Vulkan command vkCreateDescriptorSetLayout is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pSetLayout,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkDestroyDescriptorSetLayout(
        &self,
        device: VkDevice,
        descriptorSetLayout: VkDescriptorSetLayout,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyDescriptorSetLayout
                .expect("Vulkan command vkDestroyDescriptorSetLayout is not loaded"))(
                device,
                descriptorSetLayout,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCreateDescriptorPool(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkDescriptorPoolCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pDescriptorPool: *mut VkDescriptorPool,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateDescriptorPool
                .expect("Vulkan command vkCreateDescriptorPool is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pDescriptorPool,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkDestroyDescriptorPool(
        &self,
        device: VkDevice,
        descriptorPool: VkDescriptorPool,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyDescriptorPool
                .expect("Vulkan command vkDestroyDescriptorPool is not loaded"))(
                device,
                descriptorPool,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkResetDescriptorPool(
        &self,
        device: VkDevice,
        descriptorPool: VkDescriptorPool,
        flags: VkDescriptorPoolResetFlags,
    ) -> VkResult {
        unsafe {
            (self
                .vkResetDescriptorPool
                .expect("Vulkan command vkResetDescriptorPool is not loaded"))(
                device,
                descriptorPool,
                flags,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkAllocateDescriptorSets(
        &self,
        device: VkDevice,
        pAllocateInfo: *const VkDescriptorSetAllocateInfo,
        pDescriptorSets: *mut VkDescriptorSet,
    ) -> VkResult {
        unsafe {
            (self
                .vkAllocateDescriptorSets
                .expect("Vulkan command vkAllocateDescriptorSets is not loaded"))(
                device,
                pAllocateInfo,
                pDescriptorSets,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkFreeDescriptorSets(
        &self,
        device: VkDevice,
        descriptorPool: VkDescriptorPool,
        descriptorSetCount: u32,
        pDescriptorSets: *const VkDescriptorSet,
    ) -> VkResult {
        unsafe {
            (self
                .vkFreeDescriptorSets
                .expect("Vulkan command vkFreeDescriptorSets is not loaded"))(
                device,
                descriptorPool,
                descriptorSetCount,
                pDescriptorSets,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkUpdateDescriptorSets(
        &self,
        device: VkDevice,
        descriptorWriteCount: u32,
        pDescriptorWrites: *const VkWriteDescriptorSet,
        descriptorCopyCount: u32,
        pDescriptorCopies: *const VkCopyDescriptorSet,
    ) {
        unsafe {
            (self
                .vkUpdateDescriptorSets
                .expect("Vulkan command vkUpdateDescriptorSets is not loaded"))(
                device,
                descriptorWriteCount,
                pDescriptorWrites,
                descriptorCopyCount,
                pDescriptorCopies,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCreateFramebuffer(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkFramebufferCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pFramebuffer: *mut VkFramebuffer,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateFramebuffer
                .expect("Vulkan command vkCreateFramebuffer is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pFramebuffer,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkDestroyFramebuffer(
        &self,
        device: VkDevice,
        framebuffer: VkFramebuffer,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyFramebuffer
                .expect("Vulkan command vkDestroyFramebuffer is not loaded"))(
                device,
                framebuffer,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCreateRenderPass(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkRenderPassCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pRenderPass: *mut VkRenderPass,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateRenderPass
                .expect("Vulkan command vkCreateRenderPass is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pRenderPass,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkDestroyRenderPass(
        &self,
        device: VkDevice,
        renderPass: VkRenderPass,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyRenderPass
                .expect("Vulkan command vkDestroyRenderPass is not loaded"))(
                device, renderPass, pAllocator,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkGetRenderAreaGranularity(
        &self,
        device: VkDevice,
        renderPass: VkRenderPass,
        pGranularity: *mut VkExtent2D,
    ) {
        unsafe {
            (self
                .vkGetRenderAreaGranularity
                .expect("Vulkan command vkGetRenderAreaGranularity is not loaded"))(
                device,
                renderPass,
                pGranularity,
            )
        }
    }
    #[cfg(feature = "core_1_4")]
    pub unsafe fn vkGetRenderingAreaGranularity(
        &self,
        device: VkDevice,
        pRenderingAreaInfo: *const VkRenderingAreaInfo,
        pGranularity: *mut VkExtent2D,
    ) {
        unsafe {
            (self
                .vkGetRenderingAreaGranularity
                .expect("Vulkan command vkGetRenderingAreaGranularity is not loaded"))(
                device,
                pRenderingAreaInfo,
                pGranularity,
            )
        }
    }
    #[cfg(feature = "vk_khr_maintenance5")]
    pub unsafe fn vkGetRenderingAreaGranularityKHR(
        &self,
        device: VkDevice,
        pRenderingAreaInfo: *const VkRenderingAreaInfo,
        pGranularity: *mut VkExtent2D,
    ) {
        unsafe {
            (self
                .vkGetRenderingAreaGranularityKHR
                .expect("Vulkan command vkGetRenderingAreaGranularityKHR is not loaded"))(
                device,
                pRenderingAreaInfo,
                pGranularity,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCreateCommandPool(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkCommandPoolCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pCommandPool: *mut VkCommandPool,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateCommandPool
                .expect("Vulkan command vkCreateCommandPool is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pCommandPool,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkDestroyCommandPool(
        &self,
        device: VkDevice,
        commandPool: VkCommandPool,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyCommandPool
                .expect("Vulkan command vkDestroyCommandPool is not loaded"))(
                device,
                commandPool,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkResetCommandPool(
        &self,
        device: VkDevice,
        commandPool: VkCommandPool,
        flags: VkCommandPoolResetFlags,
    ) -> VkResult {
        unsafe {
            (self
                .vkResetCommandPool
                .expect("Vulkan command vkResetCommandPool is not loaded"))(
                device,
                commandPool,
                flags,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkAllocateCommandBuffers(
        &self,
        device: VkDevice,
        pAllocateInfo: *const VkCommandBufferAllocateInfo,
        pCommandBuffers: *mut VkCommandBuffer,
    ) -> VkResult {
        unsafe {
            (self
                .vkAllocateCommandBuffers
                .expect("Vulkan command vkAllocateCommandBuffers is not loaded"))(
                device,
                pAllocateInfo,
                pCommandBuffers,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkFreeCommandBuffers(
        &self,
        device: VkDevice,
        commandPool: VkCommandPool,
        commandBufferCount: u32,
        pCommandBuffers: *const VkCommandBuffer,
    ) {
        unsafe {
            (self
                .vkFreeCommandBuffers
                .expect("Vulkan command vkFreeCommandBuffers is not loaded"))(
                device,
                commandPool,
                commandBufferCount,
                pCommandBuffers,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkBeginCommandBuffer(
        &self,
        commandBuffer: VkCommandBuffer,
        pBeginInfo: *const VkCommandBufferBeginInfo,
    ) -> VkResult {
        unsafe {
            (self
                .vkBeginCommandBuffer
                .expect("Vulkan command vkBeginCommandBuffer is not loaded"))(
                commandBuffer,
                pBeginInfo,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkEndCommandBuffer(&self, commandBuffer: VkCommandBuffer) -> VkResult {
        unsafe {
            (self
                .vkEndCommandBuffer
                .expect("Vulkan command vkEndCommandBuffer is not loaded"))(
                commandBuffer
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkResetCommandBuffer(
        &self,
        commandBuffer: VkCommandBuffer,
        flags: VkCommandBufferResetFlags,
    ) -> VkResult {
        unsafe {
            (self
                .vkResetCommandBuffer
                .expect("Vulkan command vkResetCommandBuffer is not loaded"))(
                commandBuffer, flags
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdBindPipeline(
        &self,
        commandBuffer: VkCommandBuffer,
        pipelineBindPoint: VkPipelineBindPoint,
        pipeline: VkPipeline,
    ) {
        unsafe {
            (self
                .vkCmdBindPipeline
                .expect("Vulkan command vkCmdBindPipeline is not loaded"))(
                commandBuffer,
                pipelineBindPoint,
                pipeline,
            )
        }
    }
    #[cfg(feature = "vk_ext_primitive_restart_index")]
    pub unsafe fn vkCmdSetPrimitiveRestartIndexEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        primitiveRestartIndex: u32,
    ) {
        unsafe {
            (self
                .vkCmdSetPrimitiveRestartIndexEXT
                .expect("Vulkan command vkCmdSetPrimitiveRestartIndexEXT is not loaded"))(
                commandBuffer,
                primitiveRestartIndex,
            )
        }
    }
    #[cfg(feature = "vk_ext_attachment_feedback_loop_dynamic_state")]
    pub unsafe fn vkCmdSetAttachmentFeedbackLoopEnableEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        aspectMask: VkImageAspectFlags,
    ) {
        unsafe {
            (self
                .vkCmdSetAttachmentFeedbackLoopEnableEXT
                .expect("Vulkan command vkCmdSetAttachmentFeedbackLoopEnableEXT is not loaded"))(
                commandBuffer,
                aspectMask,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdSetViewport(
        &self,
        commandBuffer: VkCommandBuffer,
        firstViewport: u32,
        viewportCount: u32,
        pViewports: *const VkViewport,
    ) {
        unsafe {
            (self
                .vkCmdSetViewport
                .expect("Vulkan command vkCmdSetViewport is not loaded"))(
                commandBuffer,
                firstViewport,
                viewportCount,
                pViewports,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdSetScissor(
        &self,
        commandBuffer: VkCommandBuffer,
        firstScissor: u32,
        scissorCount: u32,
        pScissors: *const VkRect2D,
    ) {
        unsafe {
            (self
                .vkCmdSetScissor
                .expect("Vulkan command vkCmdSetScissor is not loaded"))(
                commandBuffer,
                firstScissor,
                scissorCount,
                pScissors,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdSetLineWidth(&self, commandBuffer: VkCommandBuffer, lineWidth: f32) {
        unsafe {
            (self
                .vkCmdSetLineWidth
                .expect("Vulkan command vkCmdSetLineWidth is not loaded"))(
                commandBuffer, lineWidth
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdSetDepthBias(
        &self,
        commandBuffer: VkCommandBuffer,
        depthBiasConstantFactor: f32,
        depthBiasClamp: f32,
        depthBiasSlopeFactor: f32,
    ) {
        unsafe {
            (self
                .vkCmdSetDepthBias
                .expect("Vulkan command vkCmdSetDepthBias is not loaded"))(
                commandBuffer,
                depthBiasConstantFactor,
                depthBiasClamp,
                depthBiasSlopeFactor,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdSetBlendConstants(
        &self,
        commandBuffer: VkCommandBuffer,
        blendConstants: *const f32,
    ) {
        unsafe {
            (self
                .vkCmdSetBlendConstants
                .expect("Vulkan command vkCmdSetBlendConstants is not loaded"))(
                commandBuffer,
                blendConstants,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdSetDepthBounds(
        &self,
        commandBuffer: VkCommandBuffer,
        minDepthBounds: f32,
        maxDepthBounds: f32,
    ) {
        unsafe {
            (self
                .vkCmdSetDepthBounds
                .expect("Vulkan command vkCmdSetDepthBounds is not loaded"))(
                commandBuffer,
                minDepthBounds,
                maxDepthBounds,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdSetStencilCompareMask(
        &self,
        commandBuffer: VkCommandBuffer,
        faceMask: VkStencilFaceFlags,
        compareMask: u32,
    ) {
        unsafe {
            (self
                .vkCmdSetStencilCompareMask
                .expect("Vulkan command vkCmdSetStencilCompareMask is not loaded"))(
                commandBuffer,
                faceMask,
                compareMask,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdSetStencilWriteMask(
        &self,
        commandBuffer: VkCommandBuffer,
        faceMask: VkStencilFaceFlags,
        writeMask: u32,
    ) {
        unsafe {
            (self
                .vkCmdSetStencilWriteMask
                .expect("Vulkan command vkCmdSetStencilWriteMask is not loaded"))(
                commandBuffer,
                faceMask,
                writeMask,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdSetStencilReference(
        &self,
        commandBuffer: VkCommandBuffer,
        faceMask: VkStencilFaceFlags,
        reference: u32,
    ) {
        unsafe {
            (self
                .vkCmdSetStencilReference
                .expect("Vulkan command vkCmdSetStencilReference is not loaded"))(
                commandBuffer,
                faceMask,
                reference,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdBindDescriptorSets(
        &self,
        commandBuffer: VkCommandBuffer,
        pipelineBindPoint: VkPipelineBindPoint,
        layout: VkPipelineLayout,
        firstSet: u32,
        descriptorSetCount: u32,
        pDescriptorSets: *const VkDescriptorSet,
        dynamicOffsetCount: u32,
        pDynamicOffsets: *const u32,
    ) {
        unsafe {
            (self
                .vkCmdBindDescriptorSets
                .expect("Vulkan command vkCmdBindDescriptorSets is not loaded"))(
                commandBuffer,
                pipelineBindPoint,
                layout,
                firstSet,
                descriptorSetCount,
                pDescriptorSets,
                dynamicOffsetCount,
                pDynamicOffsets,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdBindIndexBuffer(
        &self,
        commandBuffer: VkCommandBuffer,
        buffer: VkBuffer,
        offset: VkDeviceSize,
        indexType: VkIndexType,
    ) {
        unsafe {
            (self
                .vkCmdBindIndexBuffer
                .expect("Vulkan command vkCmdBindIndexBuffer is not loaded"))(
                commandBuffer,
                buffer,
                offset,
                indexType,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdBindVertexBuffers(
        &self,
        commandBuffer: VkCommandBuffer,
        firstBinding: u32,
        bindingCount: u32,
        pBuffers: *const VkBuffer,
        pOffsets: *const VkDeviceSize,
    ) {
        unsafe {
            (self
                .vkCmdBindVertexBuffers
                .expect("Vulkan command vkCmdBindVertexBuffers is not loaded"))(
                commandBuffer,
                firstBinding,
                bindingCount,
                pBuffers,
                pOffsets,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdDraw(
        &self,
        commandBuffer: VkCommandBuffer,
        vertexCount: u32,
        instanceCount: u32,
        firstVertex: u32,
        firstInstance: u32,
    ) {
        unsafe {
            (self
                .vkCmdDraw
                .expect("Vulkan command vkCmdDraw is not loaded"))(
                commandBuffer,
                vertexCount,
                instanceCount,
                firstVertex,
                firstInstance,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdDrawIndexed(
        &self,
        commandBuffer: VkCommandBuffer,
        indexCount: u32,
        instanceCount: u32,
        firstIndex: u32,
        vertexOffset: i32,
        firstInstance: u32,
    ) {
        unsafe {
            (self
                .vkCmdDrawIndexed
                .expect("Vulkan command vkCmdDrawIndexed is not loaded"))(
                commandBuffer,
                indexCount,
                instanceCount,
                firstIndex,
                vertexOffset,
                firstInstance,
            )
        }
    }
    #[cfg(feature = "vk_ext_multi_draw")]
    pub unsafe fn vkCmdDrawMultiEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        drawCount: u32,
        pVertexInfo: *const VkMultiDrawInfoEXT,
        instanceCount: u32,
        firstInstance: u32,
        stride: u32,
    ) {
        unsafe {
            (self
                .vkCmdDrawMultiEXT
                .expect("Vulkan command vkCmdDrawMultiEXT is not loaded"))(
                commandBuffer,
                drawCount,
                pVertexInfo,
                instanceCount,
                firstInstance,
                stride,
            )
        }
    }
    #[cfg(feature = "vk_ext_multi_draw")]
    pub unsafe fn vkCmdDrawMultiIndexedEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        drawCount: u32,
        pIndexInfo: *const VkMultiDrawIndexedInfoEXT,
        instanceCount: u32,
        firstInstance: u32,
        stride: u32,
        pVertexOffset: *const i32,
    ) {
        unsafe {
            (self
                .vkCmdDrawMultiIndexedEXT
                .expect("Vulkan command vkCmdDrawMultiIndexedEXT is not loaded"))(
                commandBuffer,
                drawCount,
                pIndexInfo,
                instanceCount,
                firstInstance,
                stride,
                pVertexOffset,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdDrawIndirect(
        &self,
        commandBuffer: VkCommandBuffer,
        buffer: VkBuffer,
        offset: VkDeviceSize,
        drawCount: u32,
        stride: u32,
    ) {
        unsafe {
            (self
                .vkCmdDrawIndirect
                .expect("Vulkan command vkCmdDrawIndirect is not loaded"))(
                commandBuffer,
                buffer,
                offset,
                drawCount,
                stride,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdDrawIndexedIndirect(
        &self,
        commandBuffer: VkCommandBuffer,
        buffer: VkBuffer,
        offset: VkDeviceSize,
        drawCount: u32,
        stride: u32,
    ) {
        unsafe {
            (self
                .vkCmdDrawIndexedIndirect
                .expect("Vulkan command vkCmdDrawIndexedIndirect is not loaded"))(
                commandBuffer,
                buffer,
                offset,
                drawCount,
                stride,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdDispatch(
        &self,
        commandBuffer: VkCommandBuffer,
        groupCountX: u32,
        groupCountY: u32,
        groupCountZ: u32,
    ) {
        unsafe {
            (self
                .vkCmdDispatch
                .expect("Vulkan command vkCmdDispatch is not loaded"))(
                commandBuffer,
                groupCountX,
                groupCountY,
                groupCountZ,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdDispatchIndirect(
        &self,
        commandBuffer: VkCommandBuffer,
        buffer: VkBuffer,
        offset: VkDeviceSize,
    ) {
        unsafe {
            (self
                .vkCmdDispatchIndirect
                .expect("Vulkan command vkCmdDispatchIndirect is not loaded"))(
                commandBuffer,
                buffer,
                offset,
            )
        }
    }
    #[cfg(feature = "vk_huawei_subpass_shading")]
    pub unsafe fn vkCmdSubpassShadingHUAWEI(&self, commandBuffer: VkCommandBuffer) {
        unsafe {
            (self
                .vkCmdSubpassShadingHUAWEI
                .expect("Vulkan command vkCmdSubpassShadingHUAWEI is not loaded"))(
                commandBuffer
            )
        }
    }
    #[cfg(feature = "vk_huawei_cluster_culling_shader")]
    pub unsafe fn vkCmdDrawClusterHUAWEI(
        &self,
        commandBuffer: VkCommandBuffer,
        groupCountX: u32,
        groupCountY: u32,
        groupCountZ: u32,
    ) {
        unsafe {
            (self
                .vkCmdDrawClusterHUAWEI
                .expect("Vulkan command vkCmdDrawClusterHUAWEI is not loaded"))(
                commandBuffer,
                groupCountX,
                groupCountY,
                groupCountZ,
            )
        }
    }
    #[cfg(feature = "vk_huawei_cluster_culling_shader")]
    pub unsafe fn vkCmdDrawClusterIndirectHUAWEI(
        &self,
        commandBuffer: VkCommandBuffer,
        buffer: VkBuffer,
        offset: VkDeviceSize,
    ) {
        unsafe {
            (self
                .vkCmdDrawClusterIndirectHUAWEI
                .expect("Vulkan command vkCmdDrawClusterIndirectHUAWEI is not loaded"))(
                commandBuffer,
                buffer,
                offset,
            )
        }
    }
    #[cfg(feature = "vk_nv_device_generated_commands_compute")]
    pub unsafe fn vkCmdUpdatePipelineIndirectBufferNV(
        &self,
        commandBuffer: VkCommandBuffer,
        pipelineBindPoint: VkPipelineBindPoint,
        pipeline: VkPipeline,
    ) {
        unsafe {
            (self
                .vkCmdUpdatePipelineIndirectBufferNV
                .expect("Vulkan command vkCmdUpdatePipelineIndirectBufferNV is not loaded"))(
                commandBuffer,
                pipelineBindPoint,
                pipeline,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdCopyBuffer(
        &self,
        commandBuffer: VkCommandBuffer,
        srcBuffer: VkBuffer,
        dstBuffer: VkBuffer,
        regionCount: u32,
        pRegions: *const VkBufferCopy,
    ) {
        unsafe {
            (self
                .vkCmdCopyBuffer
                .expect("Vulkan command vkCmdCopyBuffer is not loaded"))(
                commandBuffer,
                srcBuffer,
                dstBuffer,
                regionCount,
                pRegions,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdCopyImage(
        &self,
        commandBuffer: VkCommandBuffer,
        srcImage: VkImage,
        srcImageLayout: VkImageLayout,
        dstImage: VkImage,
        dstImageLayout: VkImageLayout,
        regionCount: u32,
        pRegions: *const VkImageCopy,
    ) {
        unsafe {
            (self
                .vkCmdCopyImage
                .expect("Vulkan command vkCmdCopyImage is not loaded"))(
                commandBuffer,
                srcImage,
                srcImageLayout,
                dstImage,
                dstImageLayout,
                regionCount,
                pRegions,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdBlitImage(
        &self,
        commandBuffer: VkCommandBuffer,
        srcImage: VkImage,
        srcImageLayout: VkImageLayout,
        dstImage: VkImage,
        dstImageLayout: VkImageLayout,
        regionCount: u32,
        pRegions: *const VkImageBlit,
        filter: VkFilter,
    ) {
        unsafe {
            (self
                .vkCmdBlitImage
                .expect("Vulkan command vkCmdBlitImage is not loaded"))(
                commandBuffer,
                srcImage,
                srcImageLayout,
                dstImage,
                dstImageLayout,
                regionCount,
                pRegions,
                filter,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdCopyBufferToImage(
        &self,
        commandBuffer: VkCommandBuffer,
        srcBuffer: VkBuffer,
        dstImage: VkImage,
        dstImageLayout: VkImageLayout,
        regionCount: u32,
        pRegions: *const VkBufferImageCopy,
    ) {
        unsafe {
            (self
                .vkCmdCopyBufferToImage
                .expect("Vulkan command vkCmdCopyBufferToImage is not loaded"))(
                commandBuffer,
                srcBuffer,
                dstImage,
                dstImageLayout,
                regionCount,
                pRegions,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdCopyImageToBuffer(
        &self,
        commandBuffer: VkCommandBuffer,
        srcImage: VkImage,
        srcImageLayout: VkImageLayout,
        dstBuffer: VkBuffer,
        regionCount: u32,
        pRegions: *const VkBufferImageCopy,
    ) {
        unsafe {
            (self
                .vkCmdCopyImageToBuffer
                .expect("Vulkan command vkCmdCopyImageToBuffer is not loaded"))(
                commandBuffer,
                srcImage,
                srcImageLayout,
                dstBuffer,
                regionCount,
                pRegions,
            )
        }
    }
    #[cfg(feature = "vk_nv_copy_memory_indirect")]
    pub unsafe fn vkCmdCopyMemoryIndirectNV(
        &self,
        commandBuffer: VkCommandBuffer,
        copyBufferAddress: VkDeviceAddress,
        copyCount: u32,
        stride: u32,
    ) {
        unsafe {
            (self
                .vkCmdCopyMemoryIndirectNV
                .expect("Vulkan command vkCmdCopyMemoryIndirectNV is not loaded"))(
                commandBuffer,
                copyBufferAddress,
                copyCount,
                stride,
            )
        }
    }
    #[cfg(feature = "vk_khr_copy_memory_indirect")]
    pub unsafe fn vkCmdCopyMemoryIndirectKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pCopyMemoryIndirectInfo: *const VkCopyMemoryIndirectInfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdCopyMemoryIndirectKHR
                .expect("Vulkan command vkCmdCopyMemoryIndirectKHR is not loaded"))(
                commandBuffer,
                pCopyMemoryIndirectInfo,
            )
        }
    }
    #[cfg(feature = "vk_nv_copy_memory_indirect")]
    pub unsafe fn vkCmdCopyMemoryToImageIndirectNV(
        &self,
        commandBuffer: VkCommandBuffer,
        copyBufferAddress: VkDeviceAddress,
        copyCount: u32,
        stride: u32,
        dstImage: VkImage,
        dstImageLayout: VkImageLayout,
        pImageSubresources: *const VkImageSubresourceLayers,
    ) {
        unsafe {
            (self
                .vkCmdCopyMemoryToImageIndirectNV
                .expect("Vulkan command vkCmdCopyMemoryToImageIndirectNV is not loaded"))(
                commandBuffer,
                copyBufferAddress,
                copyCount,
                stride,
                dstImage,
                dstImageLayout,
                pImageSubresources,
            )
        }
    }
    #[cfg(feature = "vk_khr_copy_memory_indirect")]
    pub unsafe fn vkCmdCopyMemoryToImageIndirectKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pCopyMemoryToImageIndirectInfo: *const VkCopyMemoryToImageIndirectInfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdCopyMemoryToImageIndirectKHR
                .expect("Vulkan command vkCmdCopyMemoryToImageIndirectKHR is not loaded"))(
                commandBuffer,
                pCopyMemoryToImageIndirectInfo,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdUpdateBuffer(
        &self,
        commandBuffer: VkCommandBuffer,
        dstBuffer: VkBuffer,
        dstOffset: VkDeviceSize,
        dataSize: VkDeviceSize,
        pData: *const c_void,
    ) {
        unsafe {
            (self
                .vkCmdUpdateBuffer
                .expect("Vulkan command vkCmdUpdateBuffer is not loaded"))(
                commandBuffer,
                dstBuffer,
                dstOffset,
                dataSize,
                pData,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdFillBuffer(
        &self,
        commandBuffer: VkCommandBuffer,
        dstBuffer: VkBuffer,
        dstOffset: VkDeviceSize,
        size: VkDeviceSize,
        data: u32,
    ) {
        unsafe {
            (self
                .vkCmdFillBuffer
                .expect("Vulkan command vkCmdFillBuffer is not loaded"))(
                commandBuffer,
                dstBuffer,
                dstOffset,
                size,
                data,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdClearColorImage(
        &self,
        commandBuffer: VkCommandBuffer,
        image: VkImage,
        imageLayout: VkImageLayout,
        pColor: *const VkClearColorValue,
        rangeCount: u32,
        pRanges: *const VkImageSubresourceRange,
    ) {
        unsafe {
            (self
                .vkCmdClearColorImage
                .expect("Vulkan command vkCmdClearColorImage is not loaded"))(
                commandBuffer,
                image,
                imageLayout,
                pColor,
                rangeCount,
                pRanges,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdClearDepthStencilImage(
        &self,
        commandBuffer: VkCommandBuffer,
        image: VkImage,
        imageLayout: VkImageLayout,
        pDepthStencil: *const VkClearDepthStencilValue,
        rangeCount: u32,
        pRanges: *const VkImageSubresourceRange,
    ) {
        unsafe {
            (self
                .vkCmdClearDepthStencilImage
                .expect("Vulkan command vkCmdClearDepthStencilImage is not loaded"))(
                commandBuffer,
                image,
                imageLayout,
                pDepthStencil,
                rangeCount,
                pRanges,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdClearAttachments(
        &self,
        commandBuffer: VkCommandBuffer,
        attachmentCount: u32,
        pAttachments: *const VkClearAttachment,
        rectCount: u32,
        pRects: *const VkClearRect,
    ) {
        unsafe {
            (self
                .vkCmdClearAttachments
                .expect("Vulkan command vkCmdClearAttachments is not loaded"))(
                commandBuffer,
                attachmentCount,
                pAttachments,
                rectCount,
                pRects,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdResolveImage(
        &self,
        commandBuffer: VkCommandBuffer,
        srcImage: VkImage,
        srcImageLayout: VkImageLayout,
        dstImage: VkImage,
        dstImageLayout: VkImageLayout,
        regionCount: u32,
        pRegions: *const VkImageResolve,
    ) {
        unsafe {
            (self
                .vkCmdResolveImage
                .expect("Vulkan command vkCmdResolveImage is not loaded"))(
                commandBuffer,
                srcImage,
                srcImageLayout,
                dstImage,
                dstImageLayout,
                regionCount,
                pRegions,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdSetEvent(
        &self,
        commandBuffer: VkCommandBuffer,
        event: VkEvent,
        stageMask: VkPipelineStageFlags,
    ) {
        unsafe {
            (self
                .vkCmdSetEvent
                .expect("Vulkan command vkCmdSetEvent is not loaded"))(
                commandBuffer,
                event,
                stageMask,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdResetEvent(
        &self,
        commandBuffer: VkCommandBuffer,
        event: VkEvent,
        stageMask: VkPipelineStageFlags,
    ) {
        unsafe {
            (self
                .vkCmdResetEvent
                .expect("Vulkan command vkCmdResetEvent is not loaded"))(
                commandBuffer,
                event,
                stageMask,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdWaitEvents(
        &self,
        commandBuffer: VkCommandBuffer,
        eventCount: u32,
        pEvents: *const VkEvent,
        srcStageMask: VkPipelineStageFlags,
        dstStageMask: VkPipelineStageFlags,
        memoryBarrierCount: u32,
        pMemoryBarriers: *const VkMemoryBarrier,
        bufferMemoryBarrierCount: u32,
        pBufferMemoryBarriers: *const VkBufferMemoryBarrier,
        imageMemoryBarrierCount: u32,
        pImageMemoryBarriers: *const VkImageMemoryBarrier,
    ) {
        unsafe {
            (self
                .vkCmdWaitEvents
                .expect("Vulkan command vkCmdWaitEvents is not loaded"))(
                commandBuffer,
                eventCount,
                pEvents,
                srcStageMask,
                dstStageMask,
                memoryBarrierCount,
                pMemoryBarriers,
                bufferMemoryBarrierCount,
                pBufferMemoryBarriers,
                imageMemoryBarrierCount,
                pImageMemoryBarriers,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdPipelineBarrier(
        &self,
        commandBuffer: VkCommandBuffer,
        srcStageMask: VkPipelineStageFlags,
        dstStageMask: VkPipelineStageFlags,
        dependencyFlags: VkDependencyFlags,
        memoryBarrierCount: u32,
        pMemoryBarriers: *const VkMemoryBarrier,
        bufferMemoryBarrierCount: u32,
        pBufferMemoryBarriers: *const VkBufferMemoryBarrier,
        imageMemoryBarrierCount: u32,
        pImageMemoryBarriers: *const VkImageMemoryBarrier,
    ) {
        unsafe {
            (self
                .vkCmdPipelineBarrier
                .expect("Vulkan command vkCmdPipelineBarrier is not loaded"))(
                commandBuffer,
                srcStageMask,
                dstStageMask,
                dependencyFlags,
                memoryBarrierCount,
                pMemoryBarriers,
                bufferMemoryBarrierCount,
                pBufferMemoryBarriers,
                imageMemoryBarrierCount,
                pImageMemoryBarriers,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdBeginQuery(
        &self,
        commandBuffer: VkCommandBuffer,
        queryPool: VkQueryPool,
        query: u32,
        flags: VkQueryControlFlags,
    ) {
        unsafe {
            (self
                .vkCmdBeginQuery
                .expect("Vulkan command vkCmdBeginQuery is not loaded"))(
                commandBuffer,
                queryPool,
                query,
                flags,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdEndQuery(
        &self,
        commandBuffer: VkCommandBuffer,
        queryPool: VkQueryPool,
        query: u32,
    ) {
        unsafe {
            (self
                .vkCmdEndQuery
                .expect("Vulkan command vkCmdEndQuery is not loaded"))(
                commandBuffer,
                queryPool,
                query,
            )
        }
    }
    #[cfg(feature = "vk_ext_conditional_rendering")]
    pub unsafe fn vkCmdBeginConditionalRenderingEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pConditionalRenderingBegin: *const VkConditionalRenderingBeginInfoEXT,
    ) {
        unsafe {
            (self
                .vkCmdBeginConditionalRenderingEXT
                .expect("Vulkan command vkCmdBeginConditionalRenderingEXT is not loaded"))(
                commandBuffer,
                pConditionalRenderingBegin,
            )
        }
    }
    #[cfg(feature = "vk_ext_conditional_rendering")]
    pub unsafe fn vkCmdEndConditionalRenderingEXT(&self, commandBuffer: VkCommandBuffer) {
        unsafe {
            (self
                .vkCmdEndConditionalRenderingEXT
                .expect("Vulkan command vkCmdEndConditionalRenderingEXT is not loaded"))(
                commandBuffer,
            )
        }
    }
    #[cfg(all(
        feature = "vk_ext_custom_resolve",
        any(feature = "core_1_3", feature = "vk_khr_dynamic_rendering")
    ))]
    pub unsafe fn vkCmdBeginCustomResolveEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pBeginCustomResolveInfo: *const VkBeginCustomResolveInfoEXT,
    ) {
        unsafe {
            (self
                .vkCmdBeginCustomResolveEXT
                .expect("Vulkan command vkCmdBeginCustomResolveEXT is not loaded"))(
                commandBuffer,
                pBeginCustomResolveInfo,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdResetQueryPool(
        &self,
        commandBuffer: VkCommandBuffer,
        queryPool: VkQueryPool,
        firstQuery: u32,
        queryCount: u32,
    ) {
        unsafe {
            (self
                .vkCmdResetQueryPool
                .expect("Vulkan command vkCmdResetQueryPool is not loaded"))(
                commandBuffer,
                queryPool,
                firstQuery,
                queryCount,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdWriteTimestamp(
        &self,
        commandBuffer: VkCommandBuffer,
        pipelineStage: VkPipelineStageFlagBits,
        queryPool: VkQueryPool,
        query: u32,
    ) {
        unsafe {
            (self
                .vkCmdWriteTimestamp
                .expect("Vulkan command vkCmdWriteTimestamp is not loaded"))(
                commandBuffer,
                pipelineStage,
                queryPool,
                query,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdCopyQueryPoolResults(
        &self,
        commandBuffer: VkCommandBuffer,
        queryPool: VkQueryPool,
        firstQuery: u32,
        queryCount: u32,
        dstBuffer: VkBuffer,
        dstOffset: VkDeviceSize,
        stride: VkDeviceSize,
        flags: VkQueryResultFlags,
    ) {
        unsafe {
            (self
                .vkCmdCopyQueryPoolResults
                .expect("Vulkan command vkCmdCopyQueryPoolResults is not loaded"))(
                commandBuffer,
                queryPool,
                firstQuery,
                queryCount,
                dstBuffer,
                dstOffset,
                stride,
                flags,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdPushConstants(
        &self,
        commandBuffer: VkCommandBuffer,
        layout: VkPipelineLayout,
        stageFlags: VkShaderStageFlags,
        offset: u32,
        size: u32,
        pValues: *const c_void,
    ) {
        unsafe {
            (self
                .vkCmdPushConstants
                .expect("Vulkan command vkCmdPushConstants is not loaded"))(
                commandBuffer,
                layout,
                stageFlags,
                offset,
                size,
                pValues,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdBeginRenderPass(
        &self,
        commandBuffer: VkCommandBuffer,
        pRenderPassBegin: *const VkRenderPassBeginInfo,
        contents: VkSubpassContents,
    ) {
        unsafe {
            (self
                .vkCmdBeginRenderPass
                .expect("Vulkan command vkCmdBeginRenderPass is not loaded"))(
                commandBuffer,
                pRenderPassBegin,
                contents,
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdNextSubpass(
        &self,
        commandBuffer: VkCommandBuffer,
        contents: VkSubpassContents,
    ) {
        unsafe {
            (self
                .vkCmdNextSubpass
                .expect("Vulkan command vkCmdNextSubpass is not loaded"))(
                commandBuffer, contents
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdEndRenderPass(&self, commandBuffer: VkCommandBuffer) {
        unsafe {
            (self
                .vkCmdEndRenderPass
                .expect("Vulkan command vkCmdEndRenderPass is not loaded"))(
                commandBuffer
            )
        }
    }
    #[cfg(feature = "core_1_0")]
    pub unsafe fn vkCmdExecuteCommands(
        &self,
        commandBuffer: VkCommandBuffer,
        commandBufferCount: u32,
        pCommandBuffers: *const VkCommandBuffer,
    ) {
        unsafe {
            (self
                .vkCmdExecuteCommands
                .expect("Vulkan command vkCmdExecuteCommands is not loaded"))(
                commandBuffer,
                commandBufferCount,
                pCommandBuffers,
            )
        }
    }
    #[cfg(feature = "vk_khr_display_swapchain")]
    pub unsafe fn vkCreateSharedSwapchainsKHR(
        &self,
        device: VkDevice,
        swapchainCount: u32,
        pCreateInfos: *const VkSwapchainCreateInfoKHR,
        pAllocator: *const VkAllocationCallbacks,
        pSwapchains: *mut VkSwapchainKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateSharedSwapchainsKHR
                .expect("Vulkan command vkCreateSharedSwapchainsKHR is not loaded"))(
                device,
                swapchainCount,
                pCreateInfos,
                pAllocator,
                pSwapchains,
            )
        }
    }
    #[cfg(feature = "vk_khr_swapchain")]
    pub unsafe fn vkCreateSwapchainKHR(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkSwapchainCreateInfoKHR,
        pAllocator: *const VkAllocationCallbacks,
        pSwapchain: *mut VkSwapchainKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateSwapchainKHR
                .expect("Vulkan command vkCreateSwapchainKHR is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pSwapchain,
            )
        }
    }
    #[cfg(feature = "vk_khr_swapchain")]
    pub unsafe fn vkDestroySwapchainKHR(
        &self,
        device: VkDevice,
        swapchain: VkSwapchainKHR,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroySwapchainKHR
                .expect("Vulkan command vkDestroySwapchainKHR is not loaded"))(
                device, swapchain, pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_khr_swapchain")]
    pub unsafe fn vkGetSwapchainImagesKHR(
        &self,
        device: VkDevice,
        swapchain: VkSwapchainKHR,
        pSwapchainImageCount: *mut u32,
        pSwapchainImages: *mut VkImage,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetSwapchainImagesKHR
                .expect("Vulkan command vkGetSwapchainImagesKHR is not loaded"))(
                device,
                swapchain,
                pSwapchainImageCount,
                pSwapchainImages,
            )
        }
    }
    #[cfg(feature = "vk_khr_swapchain")]
    pub unsafe fn vkAcquireNextImageKHR(
        &self,
        device: VkDevice,
        swapchain: VkSwapchainKHR,
        timeout: u64,
        semaphore: VkSemaphore,
        fence: VkFence,
        pImageIndex: *mut u32,
    ) -> VkResult {
        unsafe {
            (self
                .vkAcquireNextImageKHR
                .expect("Vulkan command vkAcquireNextImageKHR is not loaded"))(
                device,
                swapchain,
                timeout,
                semaphore,
                fence,
                pImageIndex,
            )
        }
    }
    #[cfg(feature = "vk_khr_swapchain")]
    pub unsafe fn vkQueuePresentKHR(
        &self,
        queue: VkQueue,
        pPresentInfo: *const VkPresentInfoKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkQueuePresentKHR
                .expect("Vulkan command vkQueuePresentKHR is not loaded"))(
                queue, pPresentInfo
            )
        }
    }
    #[cfg(feature = "vk_ext_debug_marker")]
    pub unsafe fn vkDebugMarkerSetObjectNameEXT(
        &self,
        device: VkDevice,
        pNameInfo: *const VkDebugMarkerObjectNameInfoEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkDebugMarkerSetObjectNameEXT
                .expect("Vulkan command vkDebugMarkerSetObjectNameEXT is not loaded"))(
                device, pNameInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_debug_marker")]
    pub unsafe fn vkDebugMarkerSetObjectTagEXT(
        &self,
        device: VkDevice,
        pTagInfo: *const VkDebugMarkerObjectTagInfoEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkDebugMarkerSetObjectTagEXT
                .expect("Vulkan command vkDebugMarkerSetObjectTagEXT is not loaded"))(
                device, pTagInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_debug_marker")]
    pub unsafe fn vkCmdDebugMarkerBeginEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pMarkerInfo: *const VkDebugMarkerMarkerInfoEXT,
    ) {
        unsafe {
            (self
                .vkCmdDebugMarkerBeginEXT
                .expect("Vulkan command vkCmdDebugMarkerBeginEXT is not loaded"))(
                commandBuffer,
                pMarkerInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_debug_marker")]
    pub unsafe fn vkCmdDebugMarkerEndEXT(&self, commandBuffer: VkCommandBuffer) {
        unsafe {
            (self
                .vkCmdDebugMarkerEndEXT
                .expect("Vulkan command vkCmdDebugMarkerEndEXT is not loaded"))(
                commandBuffer
            )
        }
    }
    #[cfg(feature = "vk_ext_debug_marker")]
    pub unsafe fn vkCmdDebugMarkerInsertEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pMarkerInfo: *const VkDebugMarkerMarkerInfoEXT,
    ) {
        unsafe {
            (self
                .vkCmdDebugMarkerInsertEXT
                .expect("Vulkan command vkCmdDebugMarkerInsertEXT is not loaded"))(
                commandBuffer,
                pMarkerInfo,
            )
        }
    }
    #[cfg(feature = "vk_nv_external_memory_win32")]
    pub unsafe fn vkGetMemoryWin32HandleNV(
        &self,
        device: VkDevice,
        memory: VkDeviceMemory,
        handleType: VkExternalMemoryHandleTypeFlagsNV,
        pHandle: *mut HANDLE,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetMemoryWin32HandleNV
                .expect("Vulkan command vkGetMemoryWin32HandleNV is not loaded"))(
                device, memory, handleType, pHandle,
            )
        }
    }
    #[cfg(feature = "vk_nv_device_generated_commands")]
    pub unsafe fn vkCmdExecuteGeneratedCommandsNV(
        &self,
        commandBuffer: VkCommandBuffer,
        isPreprocessed: VkBool32,
        pGeneratedCommandsInfo: *const VkGeneratedCommandsInfoNV,
    ) {
        unsafe {
            (self
                .vkCmdExecuteGeneratedCommandsNV
                .expect("Vulkan command vkCmdExecuteGeneratedCommandsNV is not loaded"))(
                commandBuffer,
                isPreprocessed,
                pGeneratedCommandsInfo,
            )
        }
    }
    #[cfg(feature = "vk_nv_device_generated_commands")]
    pub unsafe fn vkCmdPreprocessGeneratedCommandsNV(
        &self,
        commandBuffer: VkCommandBuffer,
        pGeneratedCommandsInfo: *const VkGeneratedCommandsInfoNV,
    ) {
        unsafe {
            (self
                .vkCmdPreprocessGeneratedCommandsNV
                .expect("Vulkan command vkCmdPreprocessGeneratedCommandsNV is not loaded"))(
                commandBuffer,
                pGeneratedCommandsInfo,
            )
        }
    }
    #[cfg(feature = "vk_nv_device_generated_commands")]
    pub unsafe fn vkCmdBindPipelineShaderGroupNV(
        &self,
        commandBuffer: VkCommandBuffer,
        pipelineBindPoint: VkPipelineBindPoint,
        pipeline: VkPipeline,
        groupIndex: u32,
    ) {
        unsafe {
            (self
                .vkCmdBindPipelineShaderGroupNV
                .expect("Vulkan command vkCmdBindPipelineShaderGroupNV is not loaded"))(
                commandBuffer,
                pipelineBindPoint,
                pipeline,
                groupIndex,
            )
        }
    }
    #[cfg(feature = "vk_nv_device_generated_commands")]
    pub unsafe fn vkGetGeneratedCommandsMemoryRequirementsNV(
        &self,
        device: VkDevice,
        pInfo: *const VkGeneratedCommandsMemoryRequirementsInfoNV,
        pMemoryRequirements: *mut VkMemoryRequirements2,
    ) {
        unsafe {
            (self
                .vkGetGeneratedCommandsMemoryRequirementsNV
                .expect("Vulkan command vkGetGeneratedCommandsMemoryRequirementsNV is not loaded"))(
                device,
                pInfo,
                pMemoryRequirements,
            )
        }
    }
    #[cfg(feature = "vk_nv_device_generated_commands")]
    pub unsafe fn vkCreateIndirectCommandsLayoutNV(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkIndirectCommandsLayoutCreateInfoNV,
        pAllocator: *const VkAllocationCallbacks,
        pIndirectCommandsLayout: *mut VkIndirectCommandsLayoutNV,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateIndirectCommandsLayoutNV
                .expect("Vulkan command vkCreateIndirectCommandsLayoutNV is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pIndirectCommandsLayout,
            )
        }
    }
    #[cfg(feature = "vk_nv_device_generated_commands")]
    pub unsafe fn vkDestroyIndirectCommandsLayoutNV(
        &self,
        device: VkDevice,
        indirectCommandsLayout: VkIndirectCommandsLayoutNV,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyIndirectCommandsLayoutNV
                .expect("Vulkan command vkDestroyIndirectCommandsLayoutNV is not loaded"))(
                device,
                indirectCommandsLayout,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_ext_device_generated_commands")]
    pub unsafe fn vkCmdExecuteGeneratedCommandsEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        isPreprocessed: VkBool32,
        pGeneratedCommandsInfo: *const VkGeneratedCommandsInfoEXT,
    ) {
        unsafe {
            (self
                .vkCmdExecuteGeneratedCommandsEXT
                .expect("Vulkan command vkCmdExecuteGeneratedCommandsEXT is not loaded"))(
                commandBuffer,
                isPreprocessed,
                pGeneratedCommandsInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_device_generated_commands")]
    pub unsafe fn vkCmdPreprocessGeneratedCommandsEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pGeneratedCommandsInfo: *const VkGeneratedCommandsInfoEXT,
        stateCommandBuffer: VkCommandBuffer,
    ) {
        unsafe {
            (self
                .vkCmdPreprocessGeneratedCommandsEXT
                .expect("Vulkan command vkCmdPreprocessGeneratedCommandsEXT is not loaded"))(
                commandBuffer,
                pGeneratedCommandsInfo,
                stateCommandBuffer,
            )
        }
    }
    #[cfg(feature = "vk_ext_device_generated_commands")]
    pub unsafe fn vkGetGeneratedCommandsMemoryRequirementsEXT(
        &self,
        device: VkDevice,
        pInfo: *const VkGeneratedCommandsMemoryRequirementsInfoEXT,
        pMemoryRequirements: *mut VkMemoryRequirements2,
    ) {
        unsafe {
            (self
                .vkGetGeneratedCommandsMemoryRequirementsEXT
                .expect("Vulkan command vkGetGeneratedCommandsMemoryRequirementsEXT is not loaded"))(
                device,
                pInfo,
                pMemoryRequirements,
            )
        }
    }
    #[cfg(feature = "vk_ext_device_generated_commands")]
    pub unsafe fn vkCreateIndirectCommandsLayoutEXT(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkIndirectCommandsLayoutCreateInfoEXT,
        pAllocator: *const VkAllocationCallbacks,
        pIndirectCommandsLayout: *mut VkIndirectCommandsLayoutEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateIndirectCommandsLayoutEXT
                .expect("Vulkan command vkCreateIndirectCommandsLayoutEXT is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pIndirectCommandsLayout,
            )
        }
    }
    #[cfg(feature = "vk_ext_device_generated_commands")]
    pub unsafe fn vkDestroyIndirectCommandsLayoutEXT(
        &self,
        device: VkDevice,
        indirectCommandsLayout: VkIndirectCommandsLayoutEXT,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyIndirectCommandsLayoutEXT
                .expect("Vulkan command vkDestroyIndirectCommandsLayoutEXT is not loaded"))(
                device,
                indirectCommandsLayout,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_ext_device_generated_commands")]
    pub unsafe fn vkCreateIndirectExecutionSetEXT(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkIndirectExecutionSetCreateInfoEXT,
        pAllocator: *const VkAllocationCallbacks,
        pIndirectExecutionSet: *mut VkIndirectExecutionSetEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateIndirectExecutionSetEXT
                .expect("Vulkan command vkCreateIndirectExecutionSetEXT is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pIndirectExecutionSet,
            )
        }
    }
    #[cfg(feature = "vk_ext_device_generated_commands")]
    pub unsafe fn vkDestroyIndirectExecutionSetEXT(
        &self,
        device: VkDevice,
        indirectExecutionSet: VkIndirectExecutionSetEXT,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyIndirectExecutionSetEXT
                .expect("Vulkan command vkDestroyIndirectExecutionSetEXT is not loaded"))(
                device,
                indirectExecutionSet,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_ext_device_generated_commands")]
    pub unsafe fn vkUpdateIndirectExecutionSetPipelineEXT(
        &self,
        device: VkDevice,
        indirectExecutionSet: VkIndirectExecutionSetEXT,
        executionSetWriteCount: u32,
        pExecutionSetWrites: *const VkWriteIndirectExecutionSetPipelineEXT,
    ) {
        unsafe {
            (self
                .vkUpdateIndirectExecutionSetPipelineEXT
                .expect("Vulkan command vkUpdateIndirectExecutionSetPipelineEXT is not loaded"))(
                device,
                indirectExecutionSet,
                executionSetWriteCount,
                pExecutionSetWrites,
            )
        }
    }
    #[cfg(feature = "vk_ext_device_generated_commands")]
    pub unsafe fn vkUpdateIndirectExecutionSetShaderEXT(
        &self,
        device: VkDevice,
        indirectExecutionSet: VkIndirectExecutionSetEXT,
        executionSetWriteCount: u32,
        pExecutionSetWrites: *const VkWriteIndirectExecutionSetShaderEXT,
    ) {
        unsafe {
            (self
                .vkUpdateIndirectExecutionSetShaderEXT
                .expect("Vulkan command vkUpdateIndirectExecutionSetShaderEXT is not loaded"))(
                device,
                indirectExecutionSet,
                executionSetWriteCount,
                pExecutionSetWrites,
            )
        }
    }
    #[cfg(feature = "core_1_4")]
    pub unsafe fn vkCmdPushDescriptorSet(
        &self,
        commandBuffer: VkCommandBuffer,
        pipelineBindPoint: VkPipelineBindPoint,
        layout: VkPipelineLayout,
        set: u32,
        descriptorWriteCount: u32,
        pDescriptorWrites: *const VkWriteDescriptorSet,
    ) {
        unsafe {
            (self
                .vkCmdPushDescriptorSet
                .expect("Vulkan command vkCmdPushDescriptorSet is not loaded"))(
                commandBuffer,
                pipelineBindPoint,
                layout,
                set,
                descriptorWriteCount,
                pDescriptorWrites,
            )
        }
    }
    #[cfg(feature = "vk_khr_push_descriptor")]
    pub unsafe fn vkCmdPushDescriptorSetKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pipelineBindPoint: VkPipelineBindPoint,
        layout: VkPipelineLayout,
        set: u32,
        descriptorWriteCount: u32,
        pDescriptorWrites: *const VkWriteDescriptorSet,
    ) {
        unsafe {
            (self
                .vkCmdPushDescriptorSetKHR
                .expect("Vulkan command vkCmdPushDescriptorSetKHR is not loaded"))(
                commandBuffer,
                pipelineBindPoint,
                layout,
                set,
                descriptorWriteCount,
                pDescriptorWrites,
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkTrimCommandPool(
        &self,
        device: VkDevice,
        commandPool: VkCommandPool,
        flags: VkCommandPoolTrimFlags,
    ) {
        unsafe {
            (self
                .vkTrimCommandPool
                .expect("Vulkan command vkTrimCommandPool is not loaded"))(
                device,
                commandPool,
                flags,
            )
        }
    }
    #[cfg(feature = "vk_khr_maintenance1")]
    pub unsafe fn vkTrimCommandPoolKHR(
        &self,
        device: VkDevice,
        commandPool: VkCommandPool,
        flags: VkCommandPoolTrimFlags,
    ) {
        unsafe {
            (self
                .vkTrimCommandPoolKHR
                .expect("Vulkan command vkTrimCommandPoolKHR is not loaded"))(
                device,
                commandPool,
                flags,
            )
        }
    }
    #[cfg(feature = "vk_khr_external_memory_win32")]
    pub unsafe fn vkGetMemoryWin32HandleKHR(
        &self,
        device: VkDevice,
        pGetWin32HandleInfo: *const VkMemoryGetWin32HandleInfoKHR,
        pHandle: *mut HANDLE,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetMemoryWin32HandleKHR
                .expect("Vulkan command vkGetMemoryWin32HandleKHR is not loaded"))(
                device,
                pGetWin32HandleInfo,
                pHandle,
            )
        }
    }
    #[cfg(feature = "vk_khr_external_memory_win32")]
    pub unsafe fn vkGetMemoryWin32HandlePropertiesKHR(
        &self,
        device: VkDevice,
        handleType: VkExternalMemoryHandleTypeFlagBits,
        handle: HANDLE,
        pMemoryWin32HandleProperties: *mut VkMemoryWin32HandlePropertiesKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetMemoryWin32HandlePropertiesKHR
                .expect("Vulkan command vkGetMemoryWin32HandlePropertiesKHR is not loaded"))(
                device,
                handleType,
                handle,
                pMemoryWin32HandleProperties,
            )
        }
    }
    #[cfg(feature = "vk_khr_external_memory_fd")]
    pub unsafe fn vkGetMemoryFdKHR(
        &self,
        device: VkDevice,
        pGetFdInfo: *const VkMemoryGetFdInfoKHR,
        pFd: *mut c_int,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetMemoryFdKHR
                .expect("Vulkan command vkGetMemoryFdKHR is not loaded"))(
                device, pGetFdInfo, pFd
            )
        }
    }
    #[cfg(feature = "vk_khr_external_memory_fd")]
    pub unsafe fn vkGetMemoryFdPropertiesKHR(
        &self,
        device: VkDevice,
        handleType: VkExternalMemoryHandleTypeFlagBits,
        fd: c_int,
        pMemoryFdProperties: *mut VkMemoryFdPropertiesKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetMemoryFdPropertiesKHR
                .expect("Vulkan command vkGetMemoryFdPropertiesKHR is not loaded"))(
                device,
                handleType,
                fd,
                pMemoryFdProperties,
            )
        }
    }
    #[cfg(feature = "vk_fuchsia_external_memory")]
    pub unsafe fn vkGetMemoryZirconHandleFUCHSIA(
        &self,
        device: VkDevice,
        pGetZirconHandleInfo: *const VkMemoryGetZirconHandleInfoFUCHSIA,
        pZirconHandle: *mut zx_handle_t,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetMemoryZirconHandleFUCHSIA
                .expect("Vulkan command vkGetMemoryZirconHandleFUCHSIA is not loaded"))(
                device,
                pGetZirconHandleInfo,
                pZirconHandle,
            )
        }
    }
    #[cfg(feature = "vk_fuchsia_external_memory")]
    pub unsafe fn vkGetMemoryZirconHandlePropertiesFUCHSIA(
        &self,
        device: VkDevice,
        handleType: VkExternalMemoryHandleTypeFlagBits,
        zirconHandle: zx_handle_t,
        pMemoryZirconHandleProperties: *mut VkMemoryZirconHandlePropertiesFUCHSIA,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetMemoryZirconHandlePropertiesFUCHSIA
                .expect("Vulkan command vkGetMemoryZirconHandlePropertiesFUCHSIA is not loaded"))(
                device,
                handleType,
                zirconHandle,
                pMemoryZirconHandleProperties,
            )
        }
    }
    #[cfg(feature = "vk_nv_external_memory_rdma")]
    pub unsafe fn vkGetMemoryRemoteAddressNV(
        &self,
        device: VkDevice,
        pMemoryGetRemoteAddressInfo: *const VkMemoryGetRemoteAddressInfoNV,
        pAddress: *mut VkRemoteAddressNV,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetMemoryRemoteAddressNV
                .expect("Vulkan command vkGetMemoryRemoteAddressNV is not loaded"))(
                device,
                pMemoryGetRemoteAddressInfo,
                pAddress,
            )
        }
    }
    #[cfg(feature = "vk_khr_external_semaphore_win32")]
    pub unsafe fn vkGetSemaphoreWin32HandleKHR(
        &self,
        device: VkDevice,
        pGetWin32HandleInfo: *const VkSemaphoreGetWin32HandleInfoKHR,
        pHandle: *mut HANDLE,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetSemaphoreWin32HandleKHR
                .expect("Vulkan command vkGetSemaphoreWin32HandleKHR is not loaded"))(
                device,
                pGetWin32HandleInfo,
                pHandle,
            )
        }
    }
    #[cfg(feature = "vk_khr_external_semaphore_win32")]
    pub unsafe fn vkImportSemaphoreWin32HandleKHR(
        &self,
        device: VkDevice,
        pImportSemaphoreWin32HandleInfo: *const VkImportSemaphoreWin32HandleInfoKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkImportSemaphoreWin32HandleKHR
                .expect("Vulkan command vkImportSemaphoreWin32HandleKHR is not loaded"))(
                device,
                pImportSemaphoreWin32HandleInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_external_semaphore_fd")]
    pub unsafe fn vkGetSemaphoreFdKHR(
        &self,
        device: VkDevice,
        pGetFdInfo: *const VkSemaphoreGetFdInfoKHR,
        pFd: *mut c_int,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetSemaphoreFdKHR
                .expect("Vulkan command vkGetSemaphoreFdKHR is not loaded"))(
                device, pGetFdInfo, pFd,
            )
        }
    }
    #[cfg(feature = "vk_khr_external_semaphore_fd")]
    pub unsafe fn vkImportSemaphoreFdKHR(
        &self,
        device: VkDevice,
        pImportSemaphoreFdInfo: *const VkImportSemaphoreFdInfoKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkImportSemaphoreFdKHR
                .expect("Vulkan command vkImportSemaphoreFdKHR is not loaded"))(
                device,
                pImportSemaphoreFdInfo,
            )
        }
    }
    #[cfg(feature = "vk_fuchsia_external_semaphore")]
    pub unsafe fn vkGetSemaphoreZirconHandleFUCHSIA(
        &self,
        device: VkDevice,
        pGetZirconHandleInfo: *const VkSemaphoreGetZirconHandleInfoFUCHSIA,
        pZirconHandle: *mut zx_handle_t,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetSemaphoreZirconHandleFUCHSIA
                .expect("Vulkan command vkGetSemaphoreZirconHandleFUCHSIA is not loaded"))(
                device,
                pGetZirconHandleInfo,
                pZirconHandle,
            )
        }
    }
    #[cfg(feature = "vk_fuchsia_external_semaphore")]
    pub unsafe fn vkImportSemaphoreZirconHandleFUCHSIA(
        &self,
        device: VkDevice,
        pImportSemaphoreZirconHandleInfo: *const VkImportSemaphoreZirconHandleInfoFUCHSIA,
    ) -> VkResult {
        unsafe {
            (self
                .vkImportSemaphoreZirconHandleFUCHSIA
                .expect("Vulkan command vkImportSemaphoreZirconHandleFUCHSIA is not loaded"))(
                device,
                pImportSemaphoreZirconHandleInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_external_fence_win32")]
    pub unsafe fn vkGetFenceWin32HandleKHR(
        &self,
        device: VkDevice,
        pGetWin32HandleInfo: *const VkFenceGetWin32HandleInfoKHR,
        pHandle: *mut HANDLE,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetFenceWin32HandleKHR
                .expect("Vulkan command vkGetFenceWin32HandleKHR is not loaded"))(
                device,
                pGetWin32HandleInfo,
                pHandle,
            )
        }
    }
    #[cfg(feature = "vk_khr_external_fence_win32")]
    pub unsafe fn vkImportFenceWin32HandleKHR(
        &self,
        device: VkDevice,
        pImportFenceWin32HandleInfo: *const VkImportFenceWin32HandleInfoKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkImportFenceWin32HandleKHR
                .expect("Vulkan command vkImportFenceWin32HandleKHR is not loaded"))(
                device,
                pImportFenceWin32HandleInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_external_fence_fd")]
    pub unsafe fn vkGetFenceFdKHR(
        &self,
        device: VkDevice,
        pGetFdInfo: *const VkFenceGetFdInfoKHR,
        pFd: *mut c_int,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetFenceFdKHR
                .expect("Vulkan command vkGetFenceFdKHR is not loaded"))(
                device, pGetFdInfo, pFd
            )
        }
    }
    #[cfg(feature = "vk_khr_external_fence_fd")]
    pub unsafe fn vkImportFenceFdKHR(
        &self,
        device: VkDevice,
        pImportFenceFdInfo: *const VkImportFenceFdInfoKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkImportFenceFdKHR
                .expect("Vulkan command vkImportFenceFdKHR is not loaded"))(
                device,
                pImportFenceFdInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_display_control")]
    pub unsafe fn vkDisplayPowerControlEXT(
        &self,
        device: VkDevice,
        display: VkDisplayKHR,
        pDisplayPowerInfo: *const VkDisplayPowerInfoEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkDisplayPowerControlEXT
                .expect("Vulkan command vkDisplayPowerControlEXT is not loaded"))(
                device,
                display,
                pDisplayPowerInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_display_control")]
    pub unsafe fn vkRegisterDeviceEventEXT(
        &self,
        device: VkDevice,
        pDeviceEventInfo: *const VkDeviceEventInfoEXT,
        pAllocator: *const VkAllocationCallbacks,
        pFence: *mut VkFence,
    ) -> VkResult {
        unsafe {
            (self
                .vkRegisterDeviceEventEXT
                .expect("Vulkan command vkRegisterDeviceEventEXT is not loaded"))(
                device,
                pDeviceEventInfo,
                pAllocator,
                pFence,
            )
        }
    }
    #[cfg(feature = "vk_ext_display_control")]
    pub unsafe fn vkRegisterDisplayEventEXT(
        &self,
        device: VkDevice,
        display: VkDisplayKHR,
        pDisplayEventInfo: *const VkDisplayEventInfoEXT,
        pAllocator: *const VkAllocationCallbacks,
        pFence: *mut VkFence,
    ) -> VkResult {
        unsafe {
            (self
                .vkRegisterDisplayEventEXT
                .expect("Vulkan command vkRegisterDisplayEventEXT is not loaded"))(
                device,
                display,
                pDisplayEventInfo,
                pAllocator,
                pFence,
            )
        }
    }
    #[cfg(feature = "vk_ext_display_control")]
    pub unsafe fn vkGetSwapchainCounterEXT(
        &self,
        device: VkDevice,
        swapchain: VkSwapchainKHR,
        counter: VkSurfaceCounterFlagBitsEXT,
        pCounterValue: *mut u64,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetSwapchainCounterEXT
                .expect("Vulkan command vkGetSwapchainCounterEXT is not loaded"))(
                device,
                swapchain,
                counter,
                pCounterValue,
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkGetDeviceGroupPeerMemoryFeatures(
        &self,
        device: VkDevice,
        heapIndex: u32,
        localDeviceIndex: u32,
        remoteDeviceIndex: u32,
        pPeerMemoryFeatures: *mut VkPeerMemoryFeatureFlags,
    ) {
        unsafe {
            (self
                .vkGetDeviceGroupPeerMemoryFeatures
                .expect("Vulkan command vkGetDeviceGroupPeerMemoryFeatures is not loaded"))(
                device,
                heapIndex,
                localDeviceIndex,
                remoteDeviceIndex,
                pPeerMemoryFeatures,
            )
        }
    }
    #[cfg(feature = "vk_khr_device_group")]
    pub unsafe fn vkGetDeviceGroupPeerMemoryFeaturesKHR(
        &self,
        device: VkDevice,
        heapIndex: u32,
        localDeviceIndex: u32,
        remoteDeviceIndex: u32,
        pPeerMemoryFeatures: *mut VkPeerMemoryFeatureFlags,
    ) {
        unsafe {
            (self
                .vkGetDeviceGroupPeerMemoryFeaturesKHR
                .expect("Vulkan command vkGetDeviceGroupPeerMemoryFeaturesKHR is not loaded"))(
                device,
                heapIndex,
                localDeviceIndex,
                remoteDeviceIndex,
                pPeerMemoryFeatures,
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkBindBufferMemory2(
        &self,
        device: VkDevice,
        bindInfoCount: u32,
        pBindInfos: *const VkBindBufferMemoryInfo,
    ) -> VkResult {
        unsafe {
            (self
                .vkBindBufferMemory2
                .expect("Vulkan command vkBindBufferMemory2 is not loaded"))(
                device,
                bindInfoCount,
                pBindInfos,
            )
        }
    }
    #[cfg(feature = "vk_khr_bind_memory2")]
    pub unsafe fn vkBindBufferMemory2KHR(
        &self,
        device: VkDevice,
        bindInfoCount: u32,
        pBindInfos: *const VkBindBufferMemoryInfo,
    ) -> VkResult {
        unsafe {
            (self
                .vkBindBufferMemory2KHR
                .expect("Vulkan command vkBindBufferMemory2KHR is not loaded"))(
                device,
                bindInfoCount,
                pBindInfos,
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkBindImageMemory2(
        &self,
        device: VkDevice,
        bindInfoCount: u32,
        pBindInfos: *const VkBindImageMemoryInfo,
    ) -> VkResult {
        unsafe {
            (self
                .vkBindImageMemory2
                .expect("Vulkan command vkBindImageMemory2 is not loaded"))(
                device,
                bindInfoCount,
                pBindInfos,
            )
        }
    }
    #[cfg(feature = "vk_khr_bind_memory2")]
    pub unsafe fn vkBindImageMemory2KHR(
        &self,
        device: VkDevice,
        bindInfoCount: u32,
        pBindInfos: *const VkBindImageMemoryInfo,
    ) -> VkResult {
        unsafe {
            (self
                .vkBindImageMemory2KHR
                .expect("Vulkan command vkBindImageMemory2KHR is not loaded"))(
                device,
                bindInfoCount,
                pBindInfos,
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkCmdSetDeviceMask(&self, commandBuffer: VkCommandBuffer, deviceMask: u32) {
        unsafe {
            (self
                .vkCmdSetDeviceMask
                .expect("Vulkan command vkCmdSetDeviceMask is not loaded"))(
                commandBuffer,
                deviceMask,
            )
        }
    }
    #[cfg(feature = "vk_khr_device_group")]
    pub unsafe fn vkCmdSetDeviceMaskKHR(&self, commandBuffer: VkCommandBuffer, deviceMask: u32) {
        unsafe {
            (self
                .vkCmdSetDeviceMaskKHR
                .expect("Vulkan command vkCmdSetDeviceMaskKHR is not loaded"))(
                commandBuffer,
                deviceMask,
            )
        }
    }
    #[cfg(any(
        all(feature = "core_1_1", feature = "vk_khr_swapchain"),
        all(feature = "vk_khr_device_group", feature = "vk_khr_surface")
    ))]
    pub unsafe fn vkGetDeviceGroupPresentCapabilitiesKHR(
        &self,
        device: VkDevice,
        pDeviceGroupPresentCapabilities: *mut VkDeviceGroupPresentCapabilitiesKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetDeviceGroupPresentCapabilitiesKHR
                .expect("Vulkan command vkGetDeviceGroupPresentCapabilitiesKHR is not loaded"))(
                device,
                pDeviceGroupPresentCapabilities,
            )
        }
    }
    #[cfg(any(
        all(feature = "core_1_1", feature = "vk_khr_swapchain"),
        all(feature = "vk_khr_device_group", feature = "vk_khr_surface")
    ))]
    pub unsafe fn vkGetDeviceGroupSurfacePresentModesKHR(
        &self,
        device: VkDevice,
        surface: VkSurfaceKHR,
        pModes: *mut VkDeviceGroupPresentModeFlagsKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetDeviceGroupSurfacePresentModesKHR
                .expect("Vulkan command vkGetDeviceGroupSurfacePresentModesKHR is not loaded"))(
                device, surface, pModes,
            )
        }
    }
    #[cfg(any(
        all(feature = "core_1_1", feature = "vk_khr_swapchain"),
        all(feature = "vk_khr_device_group", feature = "vk_khr_swapchain")
    ))]
    pub unsafe fn vkAcquireNextImage2KHR(
        &self,
        device: VkDevice,
        pAcquireInfo: *const VkAcquireNextImageInfoKHR,
        pImageIndex: *mut u32,
    ) -> VkResult {
        unsafe {
            (self
                .vkAcquireNextImage2KHR
                .expect("Vulkan command vkAcquireNextImage2KHR is not loaded"))(
                device,
                pAcquireInfo,
                pImageIndex,
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkCmdDispatchBase(
        &self,
        commandBuffer: VkCommandBuffer,
        baseGroupX: u32,
        baseGroupY: u32,
        baseGroupZ: u32,
        groupCountX: u32,
        groupCountY: u32,
        groupCountZ: u32,
    ) {
        unsafe {
            (self
                .vkCmdDispatchBase
                .expect("Vulkan command vkCmdDispatchBase is not loaded"))(
                commandBuffer,
                baseGroupX,
                baseGroupY,
                baseGroupZ,
                groupCountX,
                groupCountY,
                groupCountZ,
            )
        }
    }
    #[cfg(feature = "vk_khr_device_group")]
    pub unsafe fn vkCmdDispatchBaseKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        baseGroupX: u32,
        baseGroupY: u32,
        baseGroupZ: u32,
        groupCountX: u32,
        groupCountY: u32,
        groupCountZ: u32,
    ) {
        unsafe {
            (self
                .vkCmdDispatchBaseKHR
                .expect("Vulkan command vkCmdDispatchBaseKHR is not loaded"))(
                commandBuffer,
                baseGroupX,
                baseGroupY,
                baseGroupZ,
                groupCountX,
                groupCountY,
                groupCountZ,
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkCreateDescriptorUpdateTemplate(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkDescriptorUpdateTemplateCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pDescriptorUpdateTemplate: *mut VkDescriptorUpdateTemplate,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateDescriptorUpdateTemplate
                .expect("Vulkan command vkCreateDescriptorUpdateTemplate is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pDescriptorUpdateTemplate,
            )
        }
    }
    #[cfg(feature = "vk_khr_descriptor_update_template")]
    pub unsafe fn vkCreateDescriptorUpdateTemplateKHR(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkDescriptorUpdateTemplateCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pDescriptorUpdateTemplate: *mut VkDescriptorUpdateTemplate,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateDescriptorUpdateTemplateKHR
                .expect("Vulkan command vkCreateDescriptorUpdateTemplateKHR is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pDescriptorUpdateTemplate,
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkDestroyDescriptorUpdateTemplate(
        &self,
        device: VkDevice,
        descriptorUpdateTemplate: VkDescriptorUpdateTemplate,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyDescriptorUpdateTemplate
                .expect("Vulkan command vkDestroyDescriptorUpdateTemplate is not loaded"))(
                device,
                descriptorUpdateTemplate,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_khr_descriptor_update_template")]
    pub unsafe fn vkDestroyDescriptorUpdateTemplateKHR(
        &self,
        device: VkDevice,
        descriptorUpdateTemplate: VkDescriptorUpdateTemplate,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyDescriptorUpdateTemplateKHR
                .expect("Vulkan command vkDestroyDescriptorUpdateTemplateKHR is not loaded"))(
                device,
                descriptorUpdateTemplate,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkUpdateDescriptorSetWithTemplate(
        &self,
        device: VkDevice,
        descriptorSet: VkDescriptorSet,
        descriptorUpdateTemplate: VkDescriptorUpdateTemplate,
        pData: *const c_void,
    ) {
        unsafe {
            (self
                .vkUpdateDescriptorSetWithTemplate
                .expect("Vulkan command vkUpdateDescriptorSetWithTemplate is not loaded"))(
                device,
                descriptorSet,
                descriptorUpdateTemplate,
                pData,
            )
        }
    }
    #[cfg(feature = "vk_khr_descriptor_update_template")]
    pub unsafe fn vkUpdateDescriptorSetWithTemplateKHR(
        &self,
        device: VkDevice,
        descriptorSet: VkDescriptorSet,
        descriptorUpdateTemplate: VkDescriptorUpdateTemplate,
        pData: *const c_void,
    ) {
        unsafe {
            (self
                .vkUpdateDescriptorSetWithTemplateKHR
                .expect("Vulkan command vkUpdateDescriptorSetWithTemplateKHR is not loaded"))(
                device,
                descriptorSet,
                descriptorUpdateTemplate,
                pData,
            )
        }
    }
    #[cfg(feature = "core_1_4")]
    pub unsafe fn vkCmdPushDescriptorSetWithTemplate(
        &self,
        commandBuffer: VkCommandBuffer,
        descriptorUpdateTemplate: VkDescriptorUpdateTemplate,
        layout: VkPipelineLayout,
        set: u32,
        pData: *const c_void,
    ) {
        unsafe {
            (self
                .vkCmdPushDescriptorSetWithTemplate
                .expect("Vulkan command vkCmdPushDescriptorSetWithTemplate is not loaded"))(
                commandBuffer,
                descriptorUpdateTemplate,
                layout,
                set,
                pData,
            )
        }
    }
    #[cfg(any(
        all(
            feature = "vk_khr_descriptor_update_template",
            feature = "vk_khr_push_descriptor"
        ),
        all(
            feature = "vk_khr_push_descriptor",
            any(feature = "core_1_1", feature = "vk_khr_descriptor_update_template")
        )
    ))]
    pub unsafe fn vkCmdPushDescriptorSetWithTemplateKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        descriptorUpdateTemplate: VkDescriptorUpdateTemplate,
        layout: VkPipelineLayout,
        set: u32,
        pData: *const c_void,
    ) {
        unsafe {
            (self
                .vkCmdPushDescriptorSetWithTemplateKHR
                .expect("Vulkan command vkCmdPushDescriptorSetWithTemplateKHR is not loaded"))(
                commandBuffer,
                descriptorUpdateTemplate,
                layout,
                set,
                pData,
            )
        }
    }
    #[cfg(feature = "vk_ext_hdr_metadata")]
    pub unsafe fn vkSetHdrMetadataEXT(
        &self,
        device: VkDevice,
        swapchainCount: u32,
        pSwapchains: *const VkSwapchainKHR,
        pMetadata: *const VkHdrMetadataEXT,
    ) {
        unsafe {
            (self
                .vkSetHdrMetadataEXT
                .expect("Vulkan command vkSetHdrMetadataEXT is not loaded"))(
                device,
                swapchainCount,
                pSwapchains,
                pMetadata,
            )
        }
    }
    #[cfg(feature = "vk_khr_shared_presentable_image")]
    pub unsafe fn vkGetSwapchainStatusKHR(
        &self,
        device: VkDevice,
        swapchain: VkSwapchainKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetSwapchainStatusKHR
                .expect("Vulkan command vkGetSwapchainStatusKHR is not loaded"))(
                device, swapchain
            )
        }
    }
    #[cfg(feature = "vk_google_display_timing")]
    pub unsafe fn vkGetRefreshCycleDurationGOOGLE(
        &self,
        device: VkDevice,
        swapchain: VkSwapchainKHR,
        pDisplayTimingProperties: *mut VkRefreshCycleDurationGOOGLE,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetRefreshCycleDurationGOOGLE
                .expect("Vulkan command vkGetRefreshCycleDurationGOOGLE is not loaded"))(
                device,
                swapchain,
                pDisplayTimingProperties,
            )
        }
    }
    #[cfg(feature = "vk_google_display_timing")]
    pub unsafe fn vkGetPastPresentationTimingGOOGLE(
        &self,
        device: VkDevice,
        swapchain: VkSwapchainKHR,
        pPresentationTimingCount: *mut u32,
        pPresentationTimings: *mut VkPastPresentationTimingGOOGLE,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPastPresentationTimingGOOGLE
                .expect("Vulkan command vkGetPastPresentationTimingGOOGLE is not loaded"))(
                device,
                swapchain,
                pPresentationTimingCount,
                pPresentationTimings,
            )
        }
    }
    #[cfg(feature = "vk_nv_clip_space_w_scaling")]
    pub unsafe fn vkCmdSetViewportWScalingNV(
        &self,
        commandBuffer: VkCommandBuffer,
        firstViewport: u32,
        viewportCount: u32,
        pViewportWScalings: *const VkViewportWScalingNV,
    ) {
        unsafe {
            (self
                .vkCmdSetViewportWScalingNV
                .expect("Vulkan command vkCmdSetViewportWScalingNV is not loaded"))(
                commandBuffer,
                firstViewport,
                viewportCount,
                pViewportWScalings,
            )
        }
    }
    #[cfg(feature = "vk_ext_discard_rectangles")]
    pub unsafe fn vkCmdSetDiscardRectangleEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        firstDiscardRectangle: u32,
        discardRectangleCount: u32,
        pDiscardRectangles: *const VkRect2D,
    ) {
        unsafe {
            (self
                .vkCmdSetDiscardRectangleEXT
                .expect("Vulkan command vkCmdSetDiscardRectangleEXT is not loaded"))(
                commandBuffer,
                firstDiscardRectangle,
                discardRectangleCount,
                pDiscardRectangles,
            )
        }
    }
    #[cfg(feature = "vk_ext_discard_rectangles")]
    pub unsafe fn vkCmdSetDiscardRectangleEnableEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        discardRectangleEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetDiscardRectangleEnableEXT
                .expect("Vulkan command vkCmdSetDiscardRectangleEnableEXT is not loaded"))(
                commandBuffer,
                discardRectangleEnable,
            )
        }
    }
    #[cfg(feature = "vk_ext_discard_rectangles")]
    pub unsafe fn vkCmdSetDiscardRectangleModeEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        discardRectangleMode: VkDiscardRectangleModeEXT,
    ) {
        unsafe {
            (self
                .vkCmdSetDiscardRectangleModeEXT
                .expect("Vulkan command vkCmdSetDiscardRectangleModeEXT is not loaded"))(
                commandBuffer,
                discardRectangleMode,
            )
        }
    }
    #[cfg(feature = "vk_ext_sample_locations")]
    pub unsafe fn vkCmdSetSampleLocationsEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pSampleLocationsInfo: *const VkSampleLocationsInfoEXT,
    ) {
        unsafe {
            (self
                .vkCmdSetSampleLocationsEXT
                .expect("Vulkan command vkCmdSetSampleLocationsEXT is not loaded"))(
                commandBuffer,
                pSampleLocationsInfo,
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkGetBufferMemoryRequirements2(
        &self,
        device: VkDevice,
        pInfo: *const VkBufferMemoryRequirementsInfo2,
        pMemoryRequirements: *mut VkMemoryRequirements2,
    ) {
        unsafe {
            (self
                .vkGetBufferMemoryRequirements2
                .expect("Vulkan command vkGetBufferMemoryRequirements2 is not loaded"))(
                device,
                pInfo,
                pMemoryRequirements,
            )
        }
    }
    #[cfg(feature = "vk_khr_get_memory_requirements2")]
    pub unsafe fn vkGetBufferMemoryRequirements2KHR(
        &self,
        device: VkDevice,
        pInfo: *const VkBufferMemoryRequirementsInfo2,
        pMemoryRequirements: *mut VkMemoryRequirements2,
    ) {
        unsafe {
            (self
                .vkGetBufferMemoryRequirements2KHR
                .expect("Vulkan command vkGetBufferMemoryRequirements2KHR is not loaded"))(
                device,
                pInfo,
                pMemoryRequirements,
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkGetImageMemoryRequirements2(
        &self,
        device: VkDevice,
        pInfo: *const VkImageMemoryRequirementsInfo2,
        pMemoryRequirements: *mut VkMemoryRequirements2,
    ) {
        unsafe {
            (self
                .vkGetImageMemoryRequirements2
                .expect("Vulkan command vkGetImageMemoryRequirements2 is not loaded"))(
                device,
                pInfo,
                pMemoryRequirements,
            )
        }
    }
    #[cfg(feature = "vk_khr_get_memory_requirements2")]
    pub unsafe fn vkGetImageMemoryRequirements2KHR(
        &self,
        device: VkDevice,
        pInfo: *const VkImageMemoryRequirementsInfo2,
        pMemoryRequirements: *mut VkMemoryRequirements2,
    ) {
        unsafe {
            (self
                .vkGetImageMemoryRequirements2KHR
                .expect("Vulkan command vkGetImageMemoryRequirements2KHR is not loaded"))(
                device,
                pInfo,
                pMemoryRequirements,
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkGetImageSparseMemoryRequirements2(
        &self,
        device: VkDevice,
        pInfo: *const VkImageSparseMemoryRequirementsInfo2,
        pSparseMemoryRequirementCount: *mut u32,
        pSparseMemoryRequirements: *mut VkSparseImageMemoryRequirements2,
    ) {
        unsafe {
            (self
                .vkGetImageSparseMemoryRequirements2
                .expect("Vulkan command vkGetImageSparseMemoryRequirements2 is not loaded"))(
                device,
                pInfo,
                pSparseMemoryRequirementCount,
                pSparseMemoryRequirements,
            )
        }
    }
    #[cfg(feature = "vk_khr_get_memory_requirements2")]
    pub unsafe fn vkGetImageSparseMemoryRequirements2KHR(
        &self,
        device: VkDevice,
        pInfo: *const VkImageSparseMemoryRequirementsInfo2,
        pSparseMemoryRequirementCount: *mut u32,
        pSparseMemoryRequirements: *mut VkSparseImageMemoryRequirements2,
    ) {
        unsafe {
            (self
                .vkGetImageSparseMemoryRequirements2KHR
                .expect("Vulkan command vkGetImageSparseMemoryRequirements2KHR is not loaded"))(
                device,
                pInfo,
                pSparseMemoryRequirementCount,
                pSparseMemoryRequirements,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkGetDeviceBufferMemoryRequirements(
        &self,
        device: VkDevice,
        pInfo: *const VkDeviceBufferMemoryRequirements,
        pMemoryRequirements: *mut VkMemoryRequirements2,
    ) {
        unsafe {
            (self
                .vkGetDeviceBufferMemoryRequirements
                .expect("Vulkan command vkGetDeviceBufferMemoryRequirements is not loaded"))(
                device,
                pInfo,
                pMemoryRequirements,
            )
        }
    }
    #[cfg(feature = "vk_khr_maintenance4")]
    pub unsafe fn vkGetDeviceBufferMemoryRequirementsKHR(
        &self,
        device: VkDevice,
        pInfo: *const VkDeviceBufferMemoryRequirements,
        pMemoryRequirements: *mut VkMemoryRequirements2,
    ) {
        unsafe {
            (self
                .vkGetDeviceBufferMemoryRequirementsKHR
                .expect("Vulkan command vkGetDeviceBufferMemoryRequirementsKHR is not loaded"))(
                device,
                pInfo,
                pMemoryRequirements,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkGetDeviceImageMemoryRequirements(
        &self,
        device: VkDevice,
        pInfo: *const VkDeviceImageMemoryRequirements,
        pMemoryRequirements: *mut VkMemoryRequirements2,
    ) {
        unsafe {
            (self
                .vkGetDeviceImageMemoryRequirements
                .expect("Vulkan command vkGetDeviceImageMemoryRequirements is not loaded"))(
                device,
                pInfo,
                pMemoryRequirements,
            )
        }
    }
    #[cfg(feature = "vk_khr_maintenance4")]
    pub unsafe fn vkGetDeviceImageMemoryRequirementsKHR(
        &self,
        device: VkDevice,
        pInfo: *const VkDeviceImageMemoryRequirements,
        pMemoryRequirements: *mut VkMemoryRequirements2,
    ) {
        unsafe {
            (self
                .vkGetDeviceImageMemoryRequirementsKHR
                .expect("Vulkan command vkGetDeviceImageMemoryRequirementsKHR is not loaded"))(
                device,
                pInfo,
                pMemoryRequirements,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkGetDeviceImageSparseMemoryRequirements(
        &self,
        device: VkDevice,
        pInfo: *const VkDeviceImageMemoryRequirements,
        pSparseMemoryRequirementCount: *mut u32,
        pSparseMemoryRequirements: *mut VkSparseImageMemoryRequirements2,
    ) {
        unsafe {
            (self
                .vkGetDeviceImageSparseMemoryRequirements
                .expect("Vulkan command vkGetDeviceImageSparseMemoryRequirements is not loaded"))(
                device,
                pInfo,
                pSparseMemoryRequirementCount,
                pSparseMemoryRequirements,
            )
        }
    }
    #[cfg(feature = "vk_khr_maintenance4")]
    pub unsafe fn vkGetDeviceImageSparseMemoryRequirementsKHR(
        &self,
        device: VkDevice,
        pInfo: *const VkDeviceImageMemoryRequirements,
        pSparseMemoryRequirementCount: *mut u32,
        pSparseMemoryRequirements: *mut VkSparseImageMemoryRequirements2,
    ) {
        unsafe {
            (self
                .vkGetDeviceImageSparseMemoryRequirementsKHR
                .expect("Vulkan command vkGetDeviceImageSparseMemoryRequirementsKHR is not loaded"))(
                device,
                pInfo,
                pSparseMemoryRequirementCount,
                pSparseMemoryRequirements,
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkCreateSamplerYcbcrConversion(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkSamplerYcbcrConversionCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pYcbcrConversion: *mut VkSamplerYcbcrConversion,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateSamplerYcbcrConversion
                .expect("Vulkan command vkCreateSamplerYcbcrConversion is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pYcbcrConversion,
            )
        }
    }
    #[cfg(feature = "vk_khr_sampler_ycbcr_conversion")]
    pub unsafe fn vkCreateSamplerYcbcrConversionKHR(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkSamplerYcbcrConversionCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pYcbcrConversion: *mut VkSamplerYcbcrConversion,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateSamplerYcbcrConversionKHR
                .expect("Vulkan command vkCreateSamplerYcbcrConversionKHR is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pYcbcrConversion,
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkDestroySamplerYcbcrConversion(
        &self,
        device: VkDevice,
        ycbcrConversion: VkSamplerYcbcrConversion,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroySamplerYcbcrConversion
                .expect("Vulkan command vkDestroySamplerYcbcrConversion is not loaded"))(
                device,
                ycbcrConversion,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_khr_sampler_ycbcr_conversion")]
    pub unsafe fn vkDestroySamplerYcbcrConversionKHR(
        &self,
        device: VkDevice,
        ycbcrConversion: VkSamplerYcbcrConversion,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroySamplerYcbcrConversionKHR
                .expect("Vulkan command vkDestroySamplerYcbcrConversionKHR is not loaded"))(
                device,
                ycbcrConversion,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkGetDeviceQueue2(
        &self,
        device: VkDevice,
        pQueueInfo: *const VkDeviceQueueInfo2,
        pQueue: *mut VkQueue,
    ) {
        unsafe {
            (self
                .vkGetDeviceQueue2
                .expect("Vulkan command vkGetDeviceQueue2 is not loaded"))(
                device, pQueueInfo, pQueue,
            )
        }
    }
    #[cfg(feature = "vk_ext_validation_cache")]
    pub unsafe fn vkCreateValidationCacheEXT(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkValidationCacheCreateInfoEXT,
        pAllocator: *const VkAllocationCallbacks,
        pValidationCache: *mut VkValidationCacheEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateValidationCacheEXT
                .expect("Vulkan command vkCreateValidationCacheEXT is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pValidationCache,
            )
        }
    }
    #[cfg(feature = "vk_ext_validation_cache")]
    pub unsafe fn vkDestroyValidationCacheEXT(
        &self,
        device: VkDevice,
        validationCache: VkValidationCacheEXT,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyValidationCacheEXT
                .expect("Vulkan command vkDestroyValidationCacheEXT is not loaded"))(
                device,
                validationCache,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_ext_validation_cache")]
    pub unsafe fn vkGetValidationCacheDataEXT(
        &self,
        device: VkDevice,
        validationCache: VkValidationCacheEXT,
        pDataSize: *mut usize,
        pData: *mut c_void,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetValidationCacheDataEXT
                .expect("Vulkan command vkGetValidationCacheDataEXT is not loaded"))(
                device,
                validationCache,
                pDataSize,
                pData,
            )
        }
    }
    #[cfg(feature = "vk_ext_validation_cache")]
    pub unsafe fn vkMergeValidationCachesEXT(
        &self,
        device: VkDevice,
        dstCache: VkValidationCacheEXT,
        srcCacheCount: u32,
        pSrcCaches: *const VkValidationCacheEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkMergeValidationCachesEXT
                .expect("Vulkan command vkMergeValidationCachesEXT is not loaded"))(
                device,
                dstCache,
                srcCacheCount,
                pSrcCaches,
            )
        }
    }
    #[cfg(feature = "core_1_1")]
    pub unsafe fn vkGetDescriptorSetLayoutSupport(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkDescriptorSetLayoutCreateInfo,
        pSupport: *mut VkDescriptorSetLayoutSupport,
    ) {
        unsafe {
            (self
                .vkGetDescriptorSetLayoutSupport
                .expect("Vulkan command vkGetDescriptorSetLayoutSupport is not loaded"))(
                device,
                pCreateInfo,
                pSupport,
            )
        }
    }
    #[cfg(feature = "vk_khr_maintenance3")]
    pub unsafe fn vkGetDescriptorSetLayoutSupportKHR(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkDescriptorSetLayoutCreateInfo,
        pSupport: *mut VkDescriptorSetLayoutSupport,
    ) {
        unsafe {
            (self
                .vkGetDescriptorSetLayoutSupportKHR
                .expect("Vulkan command vkGetDescriptorSetLayoutSupportKHR is not loaded"))(
                device,
                pCreateInfo,
                pSupport,
            )
        }
    }
    #[cfg(feature = "vk_amd_shader_info")]
    pub unsafe fn vkGetShaderInfoAMD(
        &self,
        device: VkDevice,
        pipeline: VkPipeline,
        shaderStage: VkShaderStageFlagBits,
        infoType: VkShaderInfoTypeAMD,
        pInfoSize: *mut usize,
        pInfo: *mut c_void,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetShaderInfoAMD
                .expect("Vulkan command vkGetShaderInfoAMD is not loaded"))(
                device,
                pipeline,
                shaderStage,
                infoType,
                pInfoSize,
                pInfo,
            )
        }
    }
    #[cfg(feature = "vk_amd_display_native_hdr")]
    pub unsafe fn vkSetLocalDimmingAMD(
        &self,
        device: VkDevice,
        swapChain: VkSwapchainKHR,
        localDimmingEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkSetLocalDimmingAMD
                .expect("Vulkan command vkSetLocalDimmingAMD is not loaded"))(
                device,
                swapChain,
                localDimmingEnable,
            )
        }
    }
    #[cfg(feature = "vk_khr_calibrated_timestamps")]
    pub unsafe fn vkGetCalibratedTimestampsKHR(
        &self,
        device: VkDevice,
        timestampCount: u32,
        pTimestampInfos: *const VkCalibratedTimestampInfoKHR,
        pTimestamps: *mut u64,
        pMaxDeviation: *mut u64,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetCalibratedTimestampsKHR
                .expect("Vulkan command vkGetCalibratedTimestampsKHR is not loaded"))(
                device,
                timestampCount,
                pTimestampInfos,
                pTimestamps,
                pMaxDeviation,
            )
        }
    }
    #[cfg(feature = "vk_ext_calibrated_timestamps")]
    pub unsafe fn vkGetCalibratedTimestampsEXT(
        &self,
        device: VkDevice,
        timestampCount: u32,
        pTimestampInfos: *const VkCalibratedTimestampInfoKHR,
        pTimestamps: *mut u64,
        pMaxDeviation: *mut u64,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetCalibratedTimestampsEXT
                .expect("Vulkan command vkGetCalibratedTimestampsEXT is not loaded"))(
                device,
                timestampCount,
                pTimestampInfos,
                pTimestamps,
                pMaxDeviation,
            )
        }
    }
    #[cfg(feature = "vk_ext_debug_utils")]
    pub unsafe fn vkSetDebugUtilsObjectNameEXT(
        &self,
        device: VkDevice,
        pNameInfo: *const VkDebugUtilsObjectNameInfoEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkSetDebugUtilsObjectNameEXT
                .expect("Vulkan command vkSetDebugUtilsObjectNameEXT is not loaded"))(
                device, pNameInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_debug_utils")]
    pub unsafe fn vkSetDebugUtilsObjectTagEXT(
        &self,
        device: VkDevice,
        pTagInfo: *const VkDebugUtilsObjectTagInfoEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkSetDebugUtilsObjectTagEXT
                .expect("Vulkan command vkSetDebugUtilsObjectTagEXT is not loaded"))(
                device, pTagInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_debug_utils")]
    pub unsafe fn vkQueueBeginDebugUtilsLabelEXT(
        &self,
        queue: VkQueue,
        pLabelInfo: *const VkDebugUtilsLabelEXT,
    ) {
        unsafe {
            (self
                .vkQueueBeginDebugUtilsLabelEXT
                .expect("Vulkan command vkQueueBeginDebugUtilsLabelEXT is not loaded"))(
                queue, pLabelInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_debug_utils")]
    pub unsafe fn vkQueueEndDebugUtilsLabelEXT(&self, queue: VkQueue) {
        unsafe {
            (self
                .vkQueueEndDebugUtilsLabelEXT
                .expect("Vulkan command vkQueueEndDebugUtilsLabelEXT is not loaded"))(
                queue
            )
        }
    }
    #[cfg(feature = "vk_ext_debug_utils")]
    pub unsafe fn vkQueueInsertDebugUtilsLabelEXT(
        &self,
        queue: VkQueue,
        pLabelInfo: *const VkDebugUtilsLabelEXT,
    ) {
        unsafe {
            (self
                .vkQueueInsertDebugUtilsLabelEXT
                .expect("Vulkan command vkQueueInsertDebugUtilsLabelEXT is not loaded"))(
                queue, pLabelInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_debug_utils")]
    pub unsafe fn vkCmdBeginDebugUtilsLabelEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pLabelInfo: *const VkDebugUtilsLabelEXT,
    ) {
        unsafe {
            (self
                .vkCmdBeginDebugUtilsLabelEXT
                .expect("Vulkan command vkCmdBeginDebugUtilsLabelEXT is not loaded"))(
                commandBuffer,
                pLabelInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_debug_utils")]
    pub unsafe fn vkCmdEndDebugUtilsLabelEXT(&self, commandBuffer: VkCommandBuffer) {
        unsafe {
            (self
                .vkCmdEndDebugUtilsLabelEXT
                .expect("Vulkan command vkCmdEndDebugUtilsLabelEXT is not loaded"))(
                commandBuffer
            )
        }
    }
    #[cfg(feature = "vk_ext_debug_utils")]
    pub unsafe fn vkCmdInsertDebugUtilsLabelEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pLabelInfo: *const VkDebugUtilsLabelEXT,
    ) {
        unsafe {
            (self
                .vkCmdInsertDebugUtilsLabelEXT
                .expect("Vulkan command vkCmdInsertDebugUtilsLabelEXT is not loaded"))(
                commandBuffer,
                pLabelInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_external_memory_host")]
    pub unsafe fn vkGetMemoryHostPointerPropertiesEXT(
        &self,
        device: VkDevice,
        handleType: VkExternalMemoryHandleTypeFlagBits,
        pHostPointer: *const c_void,
        pMemoryHostPointerProperties: *mut VkMemoryHostPointerPropertiesEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetMemoryHostPointerPropertiesEXT
                .expect("Vulkan command vkGetMemoryHostPointerPropertiesEXT is not loaded"))(
                device,
                handleType,
                pHostPointer,
                pMemoryHostPointerProperties,
            )
        }
    }
    #[cfg(feature = "vk_amd_buffer_marker")]
    pub unsafe fn vkCmdWriteBufferMarkerAMD(
        &self,
        commandBuffer: VkCommandBuffer,
        pipelineStage: VkPipelineStageFlagBits,
        dstBuffer: VkBuffer,
        dstOffset: VkDeviceSize,
        marker: u32,
    ) {
        unsafe {
            (self
                .vkCmdWriteBufferMarkerAMD
                .expect("Vulkan command vkCmdWriteBufferMarkerAMD is not loaded"))(
                commandBuffer,
                pipelineStage,
                dstBuffer,
                dstOffset,
                marker,
            )
        }
    }
    #[cfg(feature = "core_1_2")]
    pub unsafe fn vkCreateRenderPass2(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkRenderPassCreateInfo2,
        pAllocator: *const VkAllocationCallbacks,
        pRenderPass: *mut VkRenderPass,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateRenderPass2
                .expect("Vulkan command vkCreateRenderPass2 is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pRenderPass,
            )
        }
    }
    #[cfg(feature = "vk_khr_create_renderpass2")]
    pub unsafe fn vkCreateRenderPass2KHR(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkRenderPassCreateInfo2,
        pAllocator: *const VkAllocationCallbacks,
        pRenderPass: *mut VkRenderPass,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateRenderPass2KHR
                .expect("Vulkan command vkCreateRenderPass2KHR is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pRenderPass,
            )
        }
    }
    #[cfg(feature = "core_1_2")]
    pub unsafe fn vkCmdBeginRenderPass2(
        &self,
        commandBuffer: VkCommandBuffer,
        pRenderPassBegin: *const VkRenderPassBeginInfo,
        pSubpassBeginInfo: *const VkSubpassBeginInfo,
    ) {
        unsafe {
            (self
                .vkCmdBeginRenderPass2
                .expect("Vulkan command vkCmdBeginRenderPass2 is not loaded"))(
                commandBuffer,
                pRenderPassBegin,
                pSubpassBeginInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_create_renderpass2")]
    pub unsafe fn vkCmdBeginRenderPass2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pRenderPassBegin: *const VkRenderPassBeginInfo,
        pSubpassBeginInfo: *const VkSubpassBeginInfo,
    ) {
        unsafe {
            (self
                .vkCmdBeginRenderPass2KHR
                .expect("Vulkan command vkCmdBeginRenderPass2KHR is not loaded"))(
                commandBuffer,
                pRenderPassBegin,
                pSubpassBeginInfo,
            )
        }
    }
    #[cfg(feature = "core_1_2")]
    pub unsafe fn vkCmdNextSubpass2(
        &self,
        commandBuffer: VkCommandBuffer,
        pSubpassBeginInfo: *const VkSubpassBeginInfo,
        pSubpassEndInfo: *const VkSubpassEndInfo,
    ) {
        unsafe {
            (self
                .vkCmdNextSubpass2
                .expect("Vulkan command vkCmdNextSubpass2 is not loaded"))(
                commandBuffer,
                pSubpassBeginInfo,
                pSubpassEndInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_create_renderpass2")]
    pub unsafe fn vkCmdNextSubpass2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pSubpassBeginInfo: *const VkSubpassBeginInfo,
        pSubpassEndInfo: *const VkSubpassEndInfo,
    ) {
        unsafe {
            (self
                .vkCmdNextSubpass2KHR
                .expect("Vulkan command vkCmdNextSubpass2KHR is not loaded"))(
                commandBuffer,
                pSubpassBeginInfo,
                pSubpassEndInfo,
            )
        }
    }
    #[cfg(feature = "core_1_2")]
    pub unsafe fn vkCmdEndRenderPass2(
        &self,
        commandBuffer: VkCommandBuffer,
        pSubpassEndInfo: *const VkSubpassEndInfo,
    ) {
        unsafe {
            (self
                .vkCmdEndRenderPass2
                .expect("Vulkan command vkCmdEndRenderPass2 is not loaded"))(
                commandBuffer,
                pSubpassEndInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_create_renderpass2")]
    pub unsafe fn vkCmdEndRenderPass2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pSubpassEndInfo: *const VkSubpassEndInfo,
    ) {
        unsafe {
            (self
                .vkCmdEndRenderPass2KHR
                .expect("Vulkan command vkCmdEndRenderPass2KHR is not loaded"))(
                commandBuffer,
                pSubpassEndInfo,
            )
        }
    }
    #[cfg(feature = "core_1_2")]
    pub unsafe fn vkGetSemaphoreCounterValue(
        &self,
        device: VkDevice,
        semaphore: VkSemaphore,
        pValue: *mut u64,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetSemaphoreCounterValue
                .expect("Vulkan command vkGetSemaphoreCounterValue is not loaded"))(
                device, semaphore, pValue,
            )
        }
    }
    #[cfg(feature = "vk_khr_timeline_semaphore")]
    pub unsafe fn vkGetSemaphoreCounterValueKHR(
        &self,
        device: VkDevice,
        semaphore: VkSemaphore,
        pValue: *mut u64,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetSemaphoreCounterValueKHR
                .expect("Vulkan command vkGetSemaphoreCounterValueKHR is not loaded"))(
                device, semaphore, pValue,
            )
        }
    }
    #[cfg(feature = "core_1_2")]
    pub unsafe fn vkWaitSemaphores(
        &self,
        device: VkDevice,
        pWaitInfo: *const VkSemaphoreWaitInfo,
        timeout: u64,
    ) -> VkResult {
        unsafe {
            (self
                .vkWaitSemaphores
                .expect("Vulkan command vkWaitSemaphores is not loaded"))(
                device, pWaitInfo, timeout,
            )
        }
    }
    #[cfg(feature = "vk_khr_timeline_semaphore")]
    pub unsafe fn vkWaitSemaphoresKHR(
        &self,
        device: VkDevice,
        pWaitInfo: *const VkSemaphoreWaitInfo,
        timeout: u64,
    ) -> VkResult {
        unsafe {
            (self
                .vkWaitSemaphoresKHR
                .expect("Vulkan command vkWaitSemaphoresKHR is not loaded"))(
                device, pWaitInfo, timeout,
            )
        }
    }
    #[cfg(feature = "core_1_2")]
    pub unsafe fn vkSignalSemaphore(
        &self,
        device: VkDevice,
        pSignalInfo: *const VkSemaphoreSignalInfo,
    ) -> VkResult {
        unsafe {
            (self
                .vkSignalSemaphore
                .expect("Vulkan command vkSignalSemaphore is not loaded"))(
                device, pSignalInfo
            )
        }
    }
    #[cfg(feature = "vk_khr_timeline_semaphore")]
    pub unsafe fn vkSignalSemaphoreKHR(
        &self,
        device: VkDevice,
        pSignalInfo: *const VkSemaphoreSignalInfo,
    ) -> VkResult {
        unsafe {
            (self
                .vkSignalSemaphoreKHR
                .expect("Vulkan command vkSignalSemaphoreKHR is not loaded"))(
                device, pSignalInfo
            )
        }
    }
    #[cfg(feature = "vk_android_external_memory_android_hardware_buffer")]
    pub unsafe fn vkGetAndroidHardwareBufferPropertiesANDROID(
        &self,
        device: VkDevice,
        buffer: *const AHardwareBuffer,
        pProperties: *mut VkAndroidHardwareBufferPropertiesANDROID,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetAndroidHardwareBufferPropertiesANDROID
                .expect("Vulkan command vkGetAndroidHardwareBufferPropertiesANDROID is not loaded"))(
                device,
                buffer,
                pProperties,
            )
        }
    }
    #[cfg(feature = "vk_android_external_memory_android_hardware_buffer")]
    pub unsafe fn vkGetMemoryAndroidHardwareBufferANDROID(
        &self,
        device: VkDevice,
        pInfo: *const VkMemoryGetAndroidHardwareBufferInfoANDROID,
        pBuffer: *mut *mut AHardwareBuffer,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetMemoryAndroidHardwareBufferANDROID
                .expect("Vulkan command vkGetMemoryAndroidHardwareBufferANDROID is not loaded"))(
                device, pInfo, pBuffer,
            )
        }
    }
    #[cfg(feature = "core_1_2")]
    pub unsafe fn vkCmdDrawIndirectCount(
        &self,
        commandBuffer: VkCommandBuffer,
        buffer: VkBuffer,
        offset: VkDeviceSize,
        countBuffer: VkBuffer,
        countBufferOffset: VkDeviceSize,
        maxDrawCount: u32,
        stride: u32,
    ) {
        unsafe {
            (self
                .vkCmdDrawIndirectCount
                .expect("Vulkan command vkCmdDrawIndirectCount is not loaded"))(
                commandBuffer,
                buffer,
                offset,
                countBuffer,
                countBufferOffset,
                maxDrawCount,
                stride,
            )
        }
    }
    #[cfg(feature = "vk_khr_draw_indirect_count")]
    pub unsafe fn vkCmdDrawIndirectCountKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        buffer: VkBuffer,
        offset: VkDeviceSize,
        countBuffer: VkBuffer,
        countBufferOffset: VkDeviceSize,
        maxDrawCount: u32,
        stride: u32,
    ) {
        unsafe {
            (self
                .vkCmdDrawIndirectCountKHR
                .expect("Vulkan command vkCmdDrawIndirectCountKHR is not loaded"))(
                commandBuffer,
                buffer,
                offset,
                countBuffer,
                countBufferOffset,
                maxDrawCount,
                stride,
            )
        }
    }
    #[cfg(feature = "vk_amd_draw_indirect_count")]
    pub unsafe fn vkCmdDrawIndirectCountAMD(
        &self,
        commandBuffer: VkCommandBuffer,
        buffer: VkBuffer,
        offset: VkDeviceSize,
        countBuffer: VkBuffer,
        countBufferOffset: VkDeviceSize,
        maxDrawCount: u32,
        stride: u32,
    ) {
        unsafe {
            (self
                .vkCmdDrawIndirectCountAMD
                .expect("Vulkan command vkCmdDrawIndirectCountAMD is not loaded"))(
                commandBuffer,
                buffer,
                offset,
                countBuffer,
                countBufferOffset,
                maxDrawCount,
                stride,
            )
        }
    }
    #[cfg(feature = "core_1_2")]
    pub unsafe fn vkCmdDrawIndexedIndirectCount(
        &self,
        commandBuffer: VkCommandBuffer,
        buffer: VkBuffer,
        offset: VkDeviceSize,
        countBuffer: VkBuffer,
        countBufferOffset: VkDeviceSize,
        maxDrawCount: u32,
        stride: u32,
    ) {
        unsafe {
            (self
                .vkCmdDrawIndexedIndirectCount
                .expect("Vulkan command vkCmdDrawIndexedIndirectCount is not loaded"))(
                commandBuffer,
                buffer,
                offset,
                countBuffer,
                countBufferOffset,
                maxDrawCount,
                stride,
            )
        }
    }
    #[cfg(feature = "vk_khr_draw_indirect_count")]
    pub unsafe fn vkCmdDrawIndexedIndirectCountKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        buffer: VkBuffer,
        offset: VkDeviceSize,
        countBuffer: VkBuffer,
        countBufferOffset: VkDeviceSize,
        maxDrawCount: u32,
        stride: u32,
    ) {
        unsafe {
            (self
                .vkCmdDrawIndexedIndirectCountKHR
                .expect("Vulkan command vkCmdDrawIndexedIndirectCountKHR is not loaded"))(
                commandBuffer,
                buffer,
                offset,
                countBuffer,
                countBufferOffset,
                maxDrawCount,
                stride,
            )
        }
    }
    #[cfg(feature = "vk_amd_draw_indirect_count")]
    pub unsafe fn vkCmdDrawIndexedIndirectCountAMD(
        &self,
        commandBuffer: VkCommandBuffer,
        buffer: VkBuffer,
        offset: VkDeviceSize,
        countBuffer: VkBuffer,
        countBufferOffset: VkDeviceSize,
        maxDrawCount: u32,
        stride: u32,
    ) {
        unsafe {
            (self
                .vkCmdDrawIndexedIndirectCountAMD
                .expect("Vulkan command vkCmdDrawIndexedIndirectCountAMD is not loaded"))(
                commandBuffer,
                buffer,
                offset,
                countBuffer,
                countBufferOffset,
                maxDrawCount,
                stride,
            )
        }
    }
    #[cfg(feature = "vk_nv_device_diagnostic_checkpoints")]
    pub unsafe fn vkCmdSetCheckpointNV(
        &self,
        commandBuffer: VkCommandBuffer,
        pCheckpointMarker: *const c_void,
    ) {
        unsafe {
            (self
                .vkCmdSetCheckpointNV
                .expect("Vulkan command vkCmdSetCheckpointNV is not loaded"))(
                commandBuffer,
                pCheckpointMarker,
            )
        }
    }
    #[cfg(feature = "vk_nv_device_diagnostic_checkpoints")]
    pub unsafe fn vkGetQueueCheckpointDataNV(
        &self,
        queue: VkQueue,
        pCheckpointDataCount: *mut u32,
        pCheckpointData: *mut VkCheckpointDataNV,
    ) {
        unsafe {
            (self
                .vkGetQueueCheckpointDataNV
                .expect("Vulkan command vkGetQueueCheckpointDataNV is not loaded"))(
                queue,
                pCheckpointDataCount,
                pCheckpointData,
            )
        }
    }
    #[cfg(feature = "vk_ext_transform_feedback")]
    pub unsafe fn vkCmdBindTransformFeedbackBuffersEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        firstBinding: u32,
        bindingCount: u32,
        pBuffers: *const VkBuffer,
        pOffsets: *const VkDeviceSize,
        pSizes: *const VkDeviceSize,
    ) {
        unsafe {
            (self
                .vkCmdBindTransformFeedbackBuffersEXT
                .expect("Vulkan command vkCmdBindTransformFeedbackBuffersEXT is not loaded"))(
                commandBuffer,
                firstBinding,
                bindingCount,
                pBuffers,
                pOffsets,
                pSizes,
            )
        }
    }
    #[cfg(feature = "vk_ext_transform_feedback")]
    pub unsafe fn vkCmdBeginTransformFeedbackEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        firstCounterBuffer: u32,
        counterBufferCount: u32,
        pCounterBuffers: *const VkBuffer,
        pCounterBufferOffsets: *const VkDeviceSize,
    ) {
        unsafe {
            (self
                .vkCmdBeginTransformFeedbackEXT
                .expect("Vulkan command vkCmdBeginTransformFeedbackEXT is not loaded"))(
                commandBuffer,
                firstCounterBuffer,
                counterBufferCount,
                pCounterBuffers,
                pCounterBufferOffsets,
            )
        }
    }
    #[cfg(feature = "vk_ext_transform_feedback")]
    pub unsafe fn vkCmdEndTransformFeedbackEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        firstCounterBuffer: u32,
        counterBufferCount: u32,
        pCounterBuffers: *const VkBuffer,
        pCounterBufferOffsets: *const VkDeviceSize,
    ) {
        unsafe {
            (self
                .vkCmdEndTransformFeedbackEXT
                .expect("Vulkan command vkCmdEndTransformFeedbackEXT is not loaded"))(
                commandBuffer,
                firstCounterBuffer,
                counterBufferCount,
                pCounterBuffers,
                pCounterBufferOffsets,
            )
        }
    }
    #[cfg(feature = "vk_ext_transform_feedback")]
    pub unsafe fn vkCmdBeginQueryIndexedEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        queryPool: VkQueryPool,
        query: u32,
        flags: VkQueryControlFlags,
        index: u32,
    ) {
        unsafe {
            (self
                .vkCmdBeginQueryIndexedEXT
                .expect("Vulkan command vkCmdBeginQueryIndexedEXT is not loaded"))(
                commandBuffer,
                queryPool,
                query,
                flags,
                index,
            )
        }
    }
    #[cfg(feature = "vk_ext_transform_feedback")]
    pub unsafe fn vkCmdEndQueryIndexedEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        queryPool: VkQueryPool,
        query: u32,
        index: u32,
    ) {
        unsafe {
            (self
                .vkCmdEndQueryIndexedEXT
                .expect("Vulkan command vkCmdEndQueryIndexedEXT is not loaded"))(
                commandBuffer,
                queryPool,
                query,
                index,
            )
        }
    }
    #[cfg(feature = "vk_ext_transform_feedback")]
    pub unsafe fn vkCmdDrawIndirectByteCountEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        instanceCount: u32,
        firstInstance: u32,
        counterBuffer: VkBuffer,
        counterBufferOffset: VkDeviceSize,
        counterOffset: u32,
        vertexStride: u32,
    ) {
        unsafe {
            (self
                .vkCmdDrawIndirectByteCountEXT
                .expect("Vulkan command vkCmdDrawIndirectByteCountEXT is not loaded"))(
                commandBuffer,
                instanceCount,
                firstInstance,
                counterBuffer,
                counterBufferOffset,
                counterOffset,
                vertexStride,
            )
        }
    }
    #[cfg(feature = "vk_nv_scissor_exclusive")]
    pub unsafe fn vkCmdSetExclusiveScissorNV(
        &self,
        commandBuffer: VkCommandBuffer,
        firstExclusiveScissor: u32,
        exclusiveScissorCount: u32,
        pExclusiveScissors: *const VkRect2D,
    ) {
        unsafe {
            (self
                .vkCmdSetExclusiveScissorNV
                .expect("Vulkan command vkCmdSetExclusiveScissorNV is not loaded"))(
                commandBuffer,
                firstExclusiveScissor,
                exclusiveScissorCount,
                pExclusiveScissors,
            )
        }
    }
    #[cfg(feature = "vk_nv_scissor_exclusive")]
    pub unsafe fn vkCmdSetExclusiveScissorEnableNV(
        &self,
        commandBuffer: VkCommandBuffer,
        firstExclusiveScissor: u32,
        exclusiveScissorCount: u32,
        pExclusiveScissorEnables: *const VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetExclusiveScissorEnableNV
                .expect("Vulkan command vkCmdSetExclusiveScissorEnableNV is not loaded"))(
                commandBuffer,
                firstExclusiveScissor,
                exclusiveScissorCount,
                pExclusiveScissorEnables,
            )
        }
    }
    #[cfg(feature = "vk_nv_shading_rate_image")]
    pub unsafe fn vkCmdBindShadingRateImageNV(
        &self,
        commandBuffer: VkCommandBuffer,
        imageView: VkImageView,
        imageLayout: VkImageLayout,
    ) {
        unsafe {
            (self
                .vkCmdBindShadingRateImageNV
                .expect("Vulkan command vkCmdBindShadingRateImageNV is not loaded"))(
                commandBuffer,
                imageView,
                imageLayout,
            )
        }
    }
    #[cfg(feature = "vk_nv_shading_rate_image")]
    pub unsafe fn vkCmdSetViewportShadingRatePaletteNV(
        &self,
        commandBuffer: VkCommandBuffer,
        firstViewport: u32,
        viewportCount: u32,
        pShadingRatePalettes: *const VkShadingRatePaletteNV,
    ) {
        unsafe {
            (self
                .vkCmdSetViewportShadingRatePaletteNV
                .expect("Vulkan command vkCmdSetViewportShadingRatePaletteNV is not loaded"))(
                commandBuffer,
                firstViewport,
                viewportCount,
                pShadingRatePalettes,
            )
        }
    }
    #[cfg(feature = "vk_nv_shading_rate_image")]
    pub unsafe fn vkCmdSetCoarseSampleOrderNV(
        &self,
        commandBuffer: VkCommandBuffer,
        sampleOrderType: VkCoarseSampleOrderTypeNV,
        customSampleOrderCount: u32,
        pCustomSampleOrders: *const VkCoarseSampleOrderCustomNV,
    ) {
        unsafe {
            (self
                .vkCmdSetCoarseSampleOrderNV
                .expect("Vulkan command vkCmdSetCoarseSampleOrderNV is not loaded"))(
                commandBuffer,
                sampleOrderType,
                customSampleOrderCount,
                pCustomSampleOrders,
            )
        }
    }
    #[cfg(feature = "vk_nv_mesh_shader")]
    pub unsafe fn vkCmdDrawMeshTasksNV(
        &self,
        commandBuffer: VkCommandBuffer,
        taskCount: u32,
        firstTask: u32,
    ) {
        unsafe {
            (self
                .vkCmdDrawMeshTasksNV
                .expect("Vulkan command vkCmdDrawMeshTasksNV is not loaded"))(
                commandBuffer,
                taskCount,
                firstTask,
            )
        }
    }
    #[cfg(feature = "vk_nv_mesh_shader")]
    pub unsafe fn vkCmdDrawMeshTasksIndirectNV(
        &self,
        commandBuffer: VkCommandBuffer,
        buffer: VkBuffer,
        offset: VkDeviceSize,
        drawCount: u32,
        stride: u32,
    ) {
        unsafe {
            (self
                .vkCmdDrawMeshTasksIndirectNV
                .expect("Vulkan command vkCmdDrawMeshTasksIndirectNV is not loaded"))(
                commandBuffer,
                buffer,
                offset,
                drawCount,
                stride,
            )
        }
    }
    #[cfg(all(
        feature = "vk_nv_mesh_shader",
        any(
            feature = "core_1_2",
            feature = "vk_amd_draw_indirect_count",
            feature = "vk_khr_draw_indirect_count"
        )
    ))]
    pub unsafe fn vkCmdDrawMeshTasksIndirectCountNV(
        &self,
        commandBuffer: VkCommandBuffer,
        buffer: VkBuffer,
        offset: VkDeviceSize,
        countBuffer: VkBuffer,
        countBufferOffset: VkDeviceSize,
        maxDrawCount: u32,
        stride: u32,
    ) {
        unsafe {
            (self
                .vkCmdDrawMeshTasksIndirectCountNV
                .expect("Vulkan command vkCmdDrawMeshTasksIndirectCountNV is not loaded"))(
                commandBuffer,
                buffer,
                offset,
                countBuffer,
                countBufferOffset,
                maxDrawCount,
                stride,
            )
        }
    }
    #[cfg(feature = "vk_ext_mesh_shader")]
    pub unsafe fn vkCmdDrawMeshTasksEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        groupCountX: u32,
        groupCountY: u32,
        groupCountZ: u32,
    ) {
        unsafe {
            (self
                .vkCmdDrawMeshTasksEXT
                .expect("Vulkan command vkCmdDrawMeshTasksEXT is not loaded"))(
                commandBuffer,
                groupCountX,
                groupCountY,
                groupCountZ,
            )
        }
    }
    #[cfg(feature = "vk_ext_mesh_shader")]
    pub unsafe fn vkCmdDrawMeshTasksIndirectEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        buffer: VkBuffer,
        offset: VkDeviceSize,
        drawCount: u32,
        stride: u32,
    ) {
        unsafe {
            (self
                .vkCmdDrawMeshTasksIndirectEXT
                .expect("Vulkan command vkCmdDrawMeshTasksIndirectEXT is not loaded"))(
                commandBuffer,
                buffer,
                offset,
                drawCount,
                stride,
            )
        }
    }
    #[cfg(all(
        feature = "vk_ext_mesh_shader",
        any(
            feature = "core_1_2",
            feature = "vk_amd_draw_indirect_count",
            feature = "vk_khr_draw_indirect_count"
        )
    ))]
    pub unsafe fn vkCmdDrawMeshTasksIndirectCountEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        buffer: VkBuffer,
        offset: VkDeviceSize,
        countBuffer: VkBuffer,
        countBufferOffset: VkDeviceSize,
        maxDrawCount: u32,
        stride: u32,
    ) {
        unsafe {
            (self
                .vkCmdDrawMeshTasksIndirectCountEXT
                .expect("Vulkan command vkCmdDrawMeshTasksIndirectCountEXT is not loaded"))(
                commandBuffer,
                buffer,
                offset,
                countBuffer,
                countBufferOffset,
                maxDrawCount,
                stride,
            )
        }
    }
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub unsafe fn vkCompileDeferredNV(
        &self,
        device: VkDevice,
        pipeline: VkPipeline,
        shader: u32,
    ) -> VkResult {
        unsafe {
            (self
                .vkCompileDeferredNV
                .expect("Vulkan command vkCompileDeferredNV is not loaded"))(
                device, pipeline, shader,
            )
        }
    }
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub unsafe fn vkCreateAccelerationStructureNV(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkAccelerationStructureCreateInfoNV,
        pAllocator: *const VkAllocationCallbacks,
        pAccelerationStructure: *mut VkAccelerationStructureNV,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateAccelerationStructureNV
                .expect("Vulkan command vkCreateAccelerationStructureNV is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pAccelerationStructure,
            )
        }
    }
    #[cfg(feature = "vk_huawei_invocation_mask")]
    pub unsafe fn vkCmdBindInvocationMaskHUAWEI(
        &self,
        commandBuffer: VkCommandBuffer,
        imageView: VkImageView,
        imageLayout: VkImageLayout,
    ) {
        unsafe {
            (self
                .vkCmdBindInvocationMaskHUAWEI
                .expect("Vulkan command vkCmdBindInvocationMaskHUAWEI is not loaded"))(
                commandBuffer,
                imageView,
                imageLayout,
            )
        }
    }
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub unsafe fn vkDestroyAccelerationStructureKHR(
        &self,
        device: VkDevice,
        accelerationStructure: VkAccelerationStructureKHR,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyAccelerationStructureKHR
                .expect("Vulkan command vkDestroyAccelerationStructureKHR is not loaded"))(
                device,
                accelerationStructure,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub unsafe fn vkDestroyAccelerationStructureNV(
        &self,
        device: VkDevice,
        accelerationStructure: VkAccelerationStructureNV,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyAccelerationStructureNV
                .expect("Vulkan command vkDestroyAccelerationStructureNV is not loaded"))(
                device,
                accelerationStructure,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub unsafe fn vkGetAccelerationStructureMemoryRequirementsNV(
        &self,
        device: VkDevice,
        pInfo: *const VkAccelerationStructureMemoryRequirementsInfoNV,
        pMemoryRequirements: *mut VkMemoryRequirements2,
    ) {
        unsafe {
            (self.vkGetAccelerationStructureMemoryRequirementsNV.expect(
                "Vulkan command vkGetAccelerationStructureMemoryRequirementsNV is not loaded",
            ))(device, pInfo, pMemoryRequirements)
        }
    }
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub unsafe fn vkBindAccelerationStructureMemoryNV(
        &self,
        device: VkDevice,
        bindInfoCount: u32,
        pBindInfos: *const VkBindAccelerationStructureMemoryInfoNV,
    ) -> VkResult {
        unsafe {
            (self
                .vkBindAccelerationStructureMemoryNV
                .expect("Vulkan command vkBindAccelerationStructureMemoryNV is not loaded"))(
                device,
                bindInfoCount,
                pBindInfos,
            )
        }
    }
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub unsafe fn vkCmdCopyAccelerationStructureNV(
        &self,
        commandBuffer: VkCommandBuffer,
        dst: VkAccelerationStructureNV,
        src: VkAccelerationStructureNV,
        mode: VkCopyAccelerationStructureModeKHR,
    ) {
        unsafe {
            (self
                .vkCmdCopyAccelerationStructureNV
                .expect("Vulkan command vkCmdCopyAccelerationStructureNV is not loaded"))(
                commandBuffer,
                dst,
                src,
                mode,
            )
        }
    }
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub unsafe fn vkCmdCopyAccelerationStructureKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pInfo: *const VkCopyAccelerationStructureInfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdCopyAccelerationStructureKHR
                .expect("Vulkan command vkCmdCopyAccelerationStructureKHR is not loaded"))(
                commandBuffer,
                pInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub unsafe fn vkCopyAccelerationStructureKHR(
        &self,
        device: VkDevice,
        deferredOperation: VkDeferredOperationKHR,
        pInfo: *const VkCopyAccelerationStructureInfoKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCopyAccelerationStructureKHR
                .expect("Vulkan command vkCopyAccelerationStructureKHR is not loaded"))(
                device,
                deferredOperation,
                pInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub unsafe fn vkCmdCopyAccelerationStructureToMemoryKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pInfo: *const VkCopyAccelerationStructureToMemoryInfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdCopyAccelerationStructureToMemoryKHR
                .expect("Vulkan command vkCmdCopyAccelerationStructureToMemoryKHR is not loaded"))(
                commandBuffer,
                pInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub unsafe fn vkCopyAccelerationStructureToMemoryKHR(
        &self,
        device: VkDevice,
        deferredOperation: VkDeferredOperationKHR,
        pInfo: *const VkCopyAccelerationStructureToMemoryInfoKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCopyAccelerationStructureToMemoryKHR
                .expect("Vulkan command vkCopyAccelerationStructureToMemoryKHR is not loaded"))(
                device,
                deferredOperation,
                pInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub unsafe fn vkCmdCopyMemoryToAccelerationStructureKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pInfo: *const VkCopyMemoryToAccelerationStructureInfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdCopyMemoryToAccelerationStructureKHR
                .expect("Vulkan command vkCmdCopyMemoryToAccelerationStructureKHR is not loaded"))(
                commandBuffer,
                pInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub unsafe fn vkCopyMemoryToAccelerationStructureKHR(
        &self,
        device: VkDevice,
        deferredOperation: VkDeferredOperationKHR,
        pInfo: *const VkCopyMemoryToAccelerationStructureInfoKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCopyMemoryToAccelerationStructureKHR
                .expect("Vulkan command vkCopyMemoryToAccelerationStructureKHR is not loaded"))(
                device,
                deferredOperation,
                pInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub unsafe fn vkCmdWriteAccelerationStructuresPropertiesKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        accelerationStructureCount: u32,
        pAccelerationStructures: *const VkAccelerationStructureKHR,
        queryType: VkQueryType,
        queryPool: VkQueryPool,
        firstQuery: u32,
    ) {
        unsafe {
            (self.vkCmdWriteAccelerationStructuresPropertiesKHR.expect(
                "Vulkan command vkCmdWriteAccelerationStructuresPropertiesKHR is not loaded",
            ))(
                commandBuffer,
                accelerationStructureCount,
                pAccelerationStructures,
                queryType,
                queryPool,
                firstQuery,
            )
        }
    }
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub unsafe fn vkCmdWriteAccelerationStructuresPropertiesNV(
        &self,
        commandBuffer: VkCommandBuffer,
        accelerationStructureCount: u32,
        pAccelerationStructures: *const VkAccelerationStructureNV,
        queryType: VkQueryType,
        queryPool: VkQueryPool,
        firstQuery: u32,
    ) {
        unsafe {
            (self.vkCmdWriteAccelerationStructuresPropertiesNV.expect(
                "Vulkan command vkCmdWriteAccelerationStructuresPropertiesNV is not loaded",
            ))(
                commandBuffer,
                accelerationStructureCount,
                pAccelerationStructures,
                queryType,
                queryPool,
                firstQuery,
            )
        }
    }
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub unsafe fn vkCmdBuildAccelerationStructureNV(
        &self,
        commandBuffer: VkCommandBuffer,
        pInfo: *const VkAccelerationStructureInfoNV,
        instanceData: VkBuffer,
        instanceOffset: VkDeviceSize,
        update: VkBool32,
        dst: VkAccelerationStructureNV,
        src: VkAccelerationStructureNV,
        scratch: VkBuffer,
        scratchOffset: VkDeviceSize,
    ) {
        unsafe {
            (self
                .vkCmdBuildAccelerationStructureNV
                .expect("Vulkan command vkCmdBuildAccelerationStructureNV is not loaded"))(
                commandBuffer,
                pInfo,
                instanceData,
                instanceOffset,
                update,
                dst,
                src,
                scratch,
                scratchOffset,
            )
        }
    }
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub unsafe fn vkWriteAccelerationStructuresPropertiesKHR(
        &self,
        device: VkDevice,
        accelerationStructureCount: u32,
        pAccelerationStructures: *const VkAccelerationStructureKHR,
        queryType: VkQueryType,
        dataSize: usize,
        pData: *mut c_void,
        stride: usize,
    ) -> VkResult {
        unsafe {
            (self
                .vkWriteAccelerationStructuresPropertiesKHR
                .expect("Vulkan command vkWriteAccelerationStructuresPropertiesKHR is not loaded"))(
                device,
                accelerationStructureCount,
                pAccelerationStructures,
                queryType,
                dataSize,
                pData,
                stride,
            )
        }
    }
    #[cfg(feature = "vk_khr_ray_tracing_pipeline")]
    pub unsafe fn vkCmdTraceRaysKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pRaygenShaderBindingTable: *const VkStridedDeviceAddressRegionKHR,
        pMissShaderBindingTable: *const VkStridedDeviceAddressRegionKHR,
        pHitShaderBindingTable: *const VkStridedDeviceAddressRegionKHR,
        pCallableShaderBindingTable: *const VkStridedDeviceAddressRegionKHR,
        width: u32,
        height: u32,
        depth: u32,
    ) {
        unsafe {
            (self
                .vkCmdTraceRaysKHR
                .expect("Vulkan command vkCmdTraceRaysKHR is not loaded"))(
                commandBuffer,
                pRaygenShaderBindingTable,
                pMissShaderBindingTable,
                pHitShaderBindingTable,
                pCallableShaderBindingTable,
                width,
                height,
                depth,
            )
        }
    }
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub unsafe fn vkCmdTraceRaysNV(
        &self,
        commandBuffer: VkCommandBuffer,
        raygenShaderBindingTableBuffer: VkBuffer,
        raygenShaderBindingOffset: VkDeviceSize,
        missShaderBindingTableBuffer: VkBuffer,
        missShaderBindingOffset: VkDeviceSize,
        missShaderBindingStride: VkDeviceSize,
        hitShaderBindingTableBuffer: VkBuffer,
        hitShaderBindingOffset: VkDeviceSize,
        hitShaderBindingStride: VkDeviceSize,
        callableShaderBindingTableBuffer: VkBuffer,
        callableShaderBindingOffset: VkDeviceSize,
        callableShaderBindingStride: VkDeviceSize,
        width: u32,
        height: u32,
        depth: u32,
    ) {
        unsafe {
            (self
                .vkCmdTraceRaysNV
                .expect("Vulkan command vkCmdTraceRaysNV is not loaded"))(
                commandBuffer,
                raygenShaderBindingTableBuffer,
                raygenShaderBindingOffset,
                missShaderBindingTableBuffer,
                missShaderBindingOffset,
                missShaderBindingStride,
                hitShaderBindingTableBuffer,
                hitShaderBindingOffset,
                hitShaderBindingStride,
                callableShaderBindingTableBuffer,
                callableShaderBindingOffset,
                callableShaderBindingStride,
                width,
                height,
                depth,
            )
        }
    }
    #[cfg(feature = "vk_khr_ray_tracing_pipeline")]
    pub unsafe fn vkGetRayTracingShaderGroupHandlesKHR(
        &self,
        device: VkDevice,
        pipeline: VkPipeline,
        firstGroup: u32,
        groupCount: u32,
        dataSize: usize,
        pData: *mut c_void,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetRayTracingShaderGroupHandlesKHR
                .expect("Vulkan command vkGetRayTracingShaderGroupHandlesKHR is not loaded"))(
                device, pipeline, firstGroup, groupCount, dataSize, pData,
            )
        }
    }
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub unsafe fn vkGetRayTracingShaderGroupHandlesNV(
        &self,
        device: VkDevice,
        pipeline: VkPipeline,
        firstGroup: u32,
        groupCount: u32,
        dataSize: usize,
        pData: *mut c_void,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetRayTracingShaderGroupHandlesNV
                .expect("Vulkan command vkGetRayTracingShaderGroupHandlesNV is not loaded"))(
                device, pipeline, firstGroup, groupCount, dataSize, pData,
            )
        }
    }
    #[cfg(feature = "vk_khr_ray_tracing_pipeline")]
    pub unsafe fn vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
        &self,
        device: VkDevice,
        pipeline: VkPipeline,
        firstGroup: u32,
        groupCount: u32,
        dataSize: usize,
        pData: *mut c_void,
    ) -> VkResult {
        unsafe {
            (self.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR.expect("Vulkan command vkGetRayTracingCaptureReplayShaderGroupHandlesKHR is not loaded"))(device, pipeline, firstGroup, groupCount, dataSize, pData)
        }
    }
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub unsafe fn vkGetAccelerationStructureHandleNV(
        &self,
        device: VkDevice,
        accelerationStructure: VkAccelerationStructureNV,
        dataSize: usize,
        pData: *mut c_void,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetAccelerationStructureHandleNV
                .expect("Vulkan command vkGetAccelerationStructureHandleNV is not loaded"))(
                device,
                accelerationStructure,
                dataSize,
                pData,
            )
        }
    }
    #[cfg(feature = "vk_nv_ray_tracing")]
    pub unsafe fn vkCreateRayTracingPipelinesNV(
        &self,
        device: VkDevice,
        pipelineCache: VkPipelineCache,
        createInfoCount: u32,
        pCreateInfos: *const VkRayTracingPipelineCreateInfoNV,
        pAllocator: *const VkAllocationCallbacks,
        pPipelines: *mut VkPipeline,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateRayTracingPipelinesNV
                .expect("Vulkan command vkCreateRayTracingPipelinesNV is not loaded"))(
                device,
                pipelineCache,
                createInfoCount,
                pCreateInfos,
                pAllocator,
                pPipelines,
            )
        }
    }
    #[cfg(feature = "vk_khr_ray_tracing_pipeline")]
    pub unsafe fn vkCreateRayTracingPipelinesKHR(
        &self,
        device: VkDevice,
        deferredOperation: VkDeferredOperationKHR,
        pipelineCache: VkPipelineCache,
        createInfoCount: u32,
        pCreateInfos: *const VkRayTracingPipelineCreateInfoKHR,
        pAllocator: *const VkAllocationCallbacks,
        pPipelines: *mut VkPipeline,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateRayTracingPipelinesKHR
                .expect("Vulkan command vkCreateRayTracingPipelinesKHR is not loaded"))(
                device,
                deferredOperation,
                pipelineCache,
                createInfoCount,
                pCreateInfos,
                pAllocator,
                pPipelines,
            )
        }
    }
    #[cfg(feature = "vk_khr_ray_tracing_pipeline")]
    pub unsafe fn vkCmdTraceRaysIndirectKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pRaygenShaderBindingTable: *const VkStridedDeviceAddressRegionKHR,
        pMissShaderBindingTable: *const VkStridedDeviceAddressRegionKHR,
        pHitShaderBindingTable: *const VkStridedDeviceAddressRegionKHR,
        pCallableShaderBindingTable: *const VkStridedDeviceAddressRegionKHR,
        indirectDeviceAddress: VkDeviceAddress,
    ) {
        unsafe {
            (self
                .vkCmdTraceRaysIndirectKHR
                .expect("Vulkan command vkCmdTraceRaysIndirectKHR is not loaded"))(
                commandBuffer,
                pRaygenShaderBindingTable,
                pMissShaderBindingTable,
                pHitShaderBindingTable,
                pCallableShaderBindingTable,
                indirectDeviceAddress,
            )
        }
    }
    #[cfg(all(
        feature = "vk_khr_ray_tracing_maintenance1",
        feature = "vk_khr_ray_tracing_pipeline"
    ))]
    pub unsafe fn vkCmdTraceRaysIndirect2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        indirectDeviceAddress: VkDeviceAddress,
    ) {
        unsafe {
            (self
                .vkCmdTraceRaysIndirect2KHR
                .expect("Vulkan command vkCmdTraceRaysIndirect2KHR is not loaded"))(
                commandBuffer,
                indirectDeviceAddress,
            )
        }
    }
    #[cfg(feature = "vk_nv_cluster_acceleration_structure")]
    pub unsafe fn vkGetClusterAccelerationStructureBuildSizesNV(
        &self,
        device: VkDevice,
        pInfo: *const VkClusterAccelerationStructureInputInfoNV,
        pSizeInfo: *mut VkAccelerationStructureBuildSizesInfoKHR,
    ) {
        unsafe {
            (self.vkGetClusterAccelerationStructureBuildSizesNV.expect(
                "Vulkan command vkGetClusterAccelerationStructureBuildSizesNV is not loaded",
            ))(device, pInfo, pSizeInfo)
        }
    }
    #[cfg(feature = "vk_nv_cluster_acceleration_structure")]
    pub unsafe fn vkCmdBuildClusterAccelerationStructureIndirectNV(
        &self,
        commandBuffer: VkCommandBuffer,
        pCommandInfos: *const VkClusterAccelerationStructureCommandsInfoNV,
    ) {
        unsafe {
            (self
                .vkCmdBuildClusterAccelerationStructureIndirectNV
                .expect(
                    "Vulkan command vkCmdBuildClusterAccelerationStructureIndirectNV is not loaded",
                ))(commandBuffer, pCommandInfos)
        }
    }
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub unsafe fn vkGetDeviceAccelerationStructureCompatibilityKHR(
        &self,
        device: VkDevice,
        pVersionInfo: *const VkAccelerationStructureVersionInfoKHR,
        pCompatibility: *mut VkAccelerationStructureCompatibilityKHR,
    ) {
        unsafe {
            (self
                .vkGetDeviceAccelerationStructureCompatibilityKHR
                .expect(
                    "Vulkan command vkGetDeviceAccelerationStructureCompatibilityKHR is not loaded",
                ))(device, pVersionInfo, pCompatibility)
        }
    }
    #[cfg(feature = "vk_khr_ray_tracing_pipeline")]
    pub unsafe fn vkGetRayTracingShaderGroupStackSizeKHR(
        &self,
        device: VkDevice,
        pipeline: VkPipeline,
        group: u32,
        groupShader: VkShaderGroupShaderKHR,
    ) -> VkDeviceSize {
        unsafe {
            (self
                .vkGetRayTracingShaderGroupStackSizeKHR
                .expect("Vulkan command vkGetRayTracingShaderGroupStackSizeKHR is not loaded"))(
                device,
                pipeline,
                group,
                groupShader,
            )
        }
    }
    #[cfg(feature = "vk_khr_ray_tracing_pipeline")]
    pub unsafe fn vkCmdSetRayTracingPipelineStackSizeKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pipelineStackSize: u32,
    ) {
        unsafe {
            (self
                .vkCmdSetRayTracingPipelineStackSizeKHR
                .expect("Vulkan command vkCmdSetRayTracingPipelineStackSizeKHR is not loaded"))(
                commandBuffer,
                pipelineStackSize,
            )
        }
    }
    #[cfg(feature = "vk_nvx_image_view_handle")]
    pub unsafe fn vkGetImageViewHandleNVX(
        &self,
        device: VkDevice,
        pInfo: *const VkImageViewHandleInfoNVX,
    ) -> u32 {
        unsafe {
            (self
                .vkGetImageViewHandleNVX
                .expect("Vulkan command vkGetImageViewHandleNVX is not loaded"))(
                device, pInfo
            )
        }
    }
    #[cfg(feature = "vk_nvx_image_view_handle")]
    pub unsafe fn vkGetImageViewHandle64NVX(
        &self,
        device: VkDevice,
        pInfo: *const VkImageViewHandleInfoNVX,
    ) -> u64 {
        unsafe {
            (self
                .vkGetImageViewHandle64NVX
                .expect("Vulkan command vkGetImageViewHandle64NVX is not loaded"))(
                device, pInfo
            )
        }
    }
    #[cfg(feature = "vk_nvx_image_view_handle")]
    pub unsafe fn vkGetImageViewAddressNVX(
        &self,
        device: VkDevice,
        imageView: VkImageView,
        pProperties: *mut VkImageViewAddressPropertiesNVX,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetImageViewAddressNVX
                .expect("Vulkan command vkGetImageViewAddressNVX is not loaded"))(
                device,
                imageView,
                pProperties,
            )
        }
    }
    #[cfg(feature = "vk_nvx_image_view_handle")]
    pub unsafe fn vkGetDeviceCombinedImageSamplerIndexNVX(
        &self,
        device: VkDevice,
        imageViewIndex: u64,
        samplerIndex: u64,
    ) -> u64 {
        unsafe {
            (self
                .vkGetDeviceCombinedImageSamplerIndexNVX
                .expect("Vulkan command vkGetDeviceCombinedImageSamplerIndexNVX is not loaded"))(
                device,
                imageViewIndex,
                samplerIndex,
            )
        }
    }
    #[cfg(all(
        feature = "vk_ext_full_screen_exclusive",
        any(feature = "core_1_1", feature = "vk_khr_device_group")
    ))]
    pub unsafe fn vkGetDeviceGroupSurfacePresentModes2EXT(
        &self,
        device: VkDevice,
        pSurfaceInfo: *const VkPhysicalDeviceSurfaceInfo2KHR,
        pModes: *mut VkDeviceGroupPresentModeFlagsKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetDeviceGroupSurfacePresentModes2EXT
                .expect("Vulkan command vkGetDeviceGroupSurfacePresentModes2EXT is not loaded"))(
                device,
                pSurfaceInfo,
                pModes,
            )
        }
    }
    #[cfg(feature = "vk_ext_full_screen_exclusive")]
    pub unsafe fn vkAcquireFullScreenExclusiveModeEXT(
        &self,
        device: VkDevice,
        swapchain: VkSwapchainKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkAcquireFullScreenExclusiveModeEXT
                .expect("Vulkan command vkAcquireFullScreenExclusiveModeEXT is not loaded"))(
                device, swapchain,
            )
        }
    }
    #[cfg(feature = "vk_ext_full_screen_exclusive")]
    pub unsafe fn vkReleaseFullScreenExclusiveModeEXT(
        &self,
        device: VkDevice,
        swapchain: VkSwapchainKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkReleaseFullScreenExclusiveModeEXT
                .expect("Vulkan command vkReleaseFullScreenExclusiveModeEXT is not loaded"))(
                device, swapchain,
            )
        }
    }
    #[cfg(feature = "vk_khr_performance_query")]
    pub unsafe fn vkAcquireProfilingLockKHR(
        &self,
        device: VkDevice,
        pInfo: *const VkAcquireProfilingLockInfoKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkAcquireProfilingLockKHR
                .expect("Vulkan command vkAcquireProfilingLockKHR is not loaded"))(
                device, pInfo
            )
        }
    }
    #[cfg(feature = "vk_khr_performance_query")]
    pub unsafe fn vkReleaseProfilingLockKHR(&self, device: VkDevice) {
        unsafe {
            (self
                .vkReleaseProfilingLockKHR
                .expect("Vulkan command vkReleaseProfilingLockKHR is not loaded"))(
                device
            )
        }
    }
    #[cfg(feature = "vk_ext_image_drm_format_modifier")]
    pub unsafe fn vkGetImageDrmFormatModifierPropertiesEXT(
        &self,
        device: VkDevice,
        image: VkImage,
        pProperties: *mut VkImageDrmFormatModifierPropertiesEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetImageDrmFormatModifierPropertiesEXT
                .expect("Vulkan command vkGetImageDrmFormatModifierPropertiesEXT is not loaded"))(
                device,
                image,
                pProperties,
            )
        }
    }
    #[cfg(feature = "core_1_2")]
    pub unsafe fn vkGetBufferOpaqueCaptureAddress(
        &self,
        device: VkDevice,
        pInfo: *const VkBufferDeviceAddressInfo,
    ) -> u64 {
        unsafe {
            (self
                .vkGetBufferOpaqueCaptureAddress
                .expect("Vulkan command vkGetBufferOpaqueCaptureAddress is not loaded"))(
                device, pInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_buffer_device_address")]
    pub unsafe fn vkGetBufferOpaqueCaptureAddressKHR(
        &self,
        device: VkDevice,
        pInfo: *const VkBufferDeviceAddressInfo,
    ) -> u64 {
        unsafe {
            (self
                .vkGetBufferOpaqueCaptureAddressKHR
                .expect("Vulkan command vkGetBufferOpaqueCaptureAddressKHR is not loaded"))(
                device, pInfo,
            )
        }
    }
    #[cfg(feature = "core_1_2")]
    pub unsafe fn vkGetBufferDeviceAddress(
        &self,
        device: VkDevice,
        pInfo: *const VkBufferDeviceAddressInfo,
    ) -> VkDeviceAddress {
        unsafe {
            (self
                .vkGetBufferDeviceAddress
                .expect("Vulkan command vkGetBufferDeviceAddress is not loaded"))(
                device, pInfo
            )
        }
    }
    #[cfg(feature = "vk_khr_buffer_device_address")]
    pub unsafe fn vkGetBufferDeviceAddressKHR(
        &self,
        device: VkDevice,
        pInfo: *const VkBufferDeviceAddressInfo,
    ) -> VkDeviceAddress {
        unsafe {
            (self
                .vkGetBufferDeviceAddressKHR
                .expect("Vulkan command vkGetBufferDeviceAddressKHR is not loaded"))(
                device, pInfo
            )
        }
    }
    #[cfg(feature = "vk_ext_buffer_device_address")]
    pub unsafe fn vkGetBufferDeviceAddressEXT(
        &self,
        device: VkDevice,
        pInfo: *const VkBufferDeviceAddressInfo,
    ) -> VkDeviceAddress {
        unsafe {
            (self
                .vkGetBufferDeviceAddressEXT
                .expect("Vulkan command vkGetBufferDeviceAddressEXT is not loaded"))(
                device, pInfo
            )
        }
    }
    #[cfg(feature = "vk_intel_performance_query")]
    pub unsafe fn vkInitializePerformanceApiINTEL(
        &self,
        device: VkDevice,
        pInitializeInfo: *const VkInitializePerformanceApiInfoINTEL,
    ) -> VkResult {
        unsafe {
            (self
                .vkInitializePerformanceApiINTEL
                .expect("Vulkan command vkInitializePerformanceApiINTEL is not loaded"))(
                device,
                pInitializeInfo,
            )
        }
    }
    #[cfg(feature = "vk_intel_performance_query")]
    pub unsafe fn vkUninitializePerformanceApiINTEL(&self, device: VkDevice) {
        unsafe {
            (self
                .vkUninitializePerformanceApiINTEL
                .expect("Vulkan command vkUninitializePerformanceApiINTEL is not loaded"))(
                device
            )
        }
    }
    #[cfg(feature = "vk_intel_performance_query")]
    pub unsafe fn vkCmdSetPerformanceMarkerINTEL(
        &self,
        commandBuffer: VkCommandBuffer,
        pMarkerInfo: *const VkPerformanceMarkerInfoINTEL,
    ) -> VkResult {
        unsafe {
            (self
                .vkCmdSetPerformanceMarkerINTEL
                .expect("Vulkan command vkCmdSetPerformanceMarkerINTEL is not loaded"))(
                commandBuffer,
                pMarkerInfo,
            )
        }
    }
    #[cfg(feature = "vk_intel_performance_query")]
    pub unsafe fn vkCmdSetPerformanceStreamMarkerINTEL(
        &self,
        commandBuffer: VkCommandBuffer,
        pMarkerInfo: *const VkPerformanceStreamMarkerInfoINTEL,
    ) -> VkResult {
        unsafe {
            (self
                .vkCmdSetPerformanceStreamMarkerINTEL
                .expect("Vulkan command vkCmdSetPerformanceStreamMarkerINTEL is not loaded"))(
                commandBuffer,
                pMarkerInfo,
            )
        }
    }
    #[cfg(feature = "vk_intel_performance_query")]
    pub unsafe fn vkCmdSetPerformanceOverrideINTEL(
        &self,
        commandBuffer: VkCommandBuffer,
        pOverrideInfo: *const VkPerformanceOverrideInfoINTEL,
    ) -> VkResult {
        unsafe {
            (self
                .vkCmdSetPerformanceOverrideINTEL
                .expect("Vulkan command vkCmdSetPerformanceOverrideINTEL is not loaded"))(
                commandBuffer,
                pOverrideInfo,
            )
        }
    }
    #[cfg(feature = "vk_intel_performance_query")]
    pub unsafe fn vkAcquirePerformanceConfigurationINTEL(
        &self,
        device: VkDevice,
        pAcquireInfo: *const VkPerformanceConfigurationAcquireInfoINTEL,
        pConfiguration: *mut VkPerformanceConfigurationINTEL,
    ) -> VkResult {
        unsafe {
            (self
                .vkAcquirePerformanceConfigurationINTEL
                .expect("Vulkan command vkAcquirePerformanceConfigurationINTEL is not loaded"))(
                device,
                pAcquireInfo,
                pConfiguration,
            )
        }
    }
    #[cfg(feature = "vk_intel_performance_query")]
    pub unsafe fn vkReleasePerformanceConfigurationINTEL(
        &self,
        device: VkDevice,
        configuration: VkPerformanceConfigurationINTEL,
    ) -> VkResult {
        unsafe {
            (self
                .vkReleasePerformanceConfigurationINTEL
                .expect("Vulkan command vkReleasePerformanceConfigurationINTEL is not loaded"))(
                device,
                configuration,
            )
        }
    }
    #[cfg(feature = "vk_intel_performance_query")]
    pub unsafe fn vkQueueSetPerformanceConfigurationINTEL(
        &self,
        queue: VkQueue,
        configuration: VkPerformanceConfigurationINTEL,
    ) -> VkResult {
        unsafe {
            (self
                .vkQueueSetPerformanceConfigurationINTEL
                .expect("Vulkan command vkQueueSetPerformanceConfigurationINTEL is not loaded"))(
                queue,
                configuration,
            )
        }
    }
    #[cfg(feature = "vk_intel_performance_query")]
    pub unsafe fn vkGetPerformanceParameterINTEL(
        &self,
        device: VkDevice,
        parameter: VkPerformanceParameterTypeINTEL,
        pValue: *mut VkPerformanceValueINTEL,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPerformanceParameterINTEL
                .expect("Vulkan command vkGetPerformanceParameterINTEL is not loaded"))(
                device, parameter, pValue,
            )
        }
    }
    #[cfg(feature = "core_1_2")]
    pub unsafe fn vkGetDeviceMemoryOpaqueCaptureAddress(
        &self,
        device: VkDevice,
        pInfo: *const VkDeviceMemoryOpaqueCaptureAddressInfo,
    ) -> u64 {
        unsafe {
            (self
                .vkGetDeviceMemoryOpaqueCaptureAddress
                .expect("Vulkan command vkGetDeviceMemoryOpaqueCaptureAddress is not loaded"))(
                device, pInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_buffer_device_address")]
    pub unsafe fn vkGetDeviceMemoryOpaqueCaptureAddressKHR(
        &self,
        device: VkDevice,
        pInfo: *const VkDeviceMemoryOpaqueCaptureAddressInfo,
    ) -> u64 {
        unsafe {
            (self
                .vkGetDeviceMemoryOpaqueCaptureAddressKHR
                .expect("Vulkan command vkGetDeviceMemoryOpaqueCaptureAddressKHR is not loaded"))(
                device, pInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_pipeline_executable_properties")]
    pub unsafe fn vkGetPipelineExecutablePropertiesKHR(
        &self,
        device: VkDevice,
        pPipelineInfo: *const VkPipelineInfoKHR,
        pExecutableCount: *mut u32,
        pProperties: *mut VkPipelineExecutablePropertiesKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPipelineExecutablePropertiesKHR
                .expect("Vulkan command vkGetPipelineExecutablePropertiesKHR is not loaded"))(
                device,
                pPipelineInfo,
                pExecutableCount,
                pProperties,
            )
        }
    }
    #[cfg(feature = "vk_khr_pipeline_executable_properties")]
    pub unsafe fn vkGetPipelineExecutableStatisticsKHR(
        &self,
        device: VkDevice,
        pExecutableInfo: *const VkPipelineExecutableInfoKHR,
        pStatisticCount: *mut u32,
        pStatistics: *mut VkPipelineExecutableStatisticKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPipelineExecutableStatisticsKHR
                .expect("Vulkan command vkGetPipelineExecutableStatisticsKHR is not loaded"))(
                device,
                pExecutableInfo,
                pStatisticCount,
                pStatistics,
            )
        }
    }
    #[cfg(feature = "vk_khr_pipeline_executable_properties")]
    pub unsafe fn vkGetPipelineExecutableInternalRepresentationsKHR(
        &self,
        device: VkDevice,
        pExecutableInfo: *const VkPipelineExecutableInfoKHR,
        pInternalRepresentationCount: *mut u32,
        pInternalRepresentations: *mut VkPipelineExecutableInternalRepresentationKHR,
    ) -> VkResult {
        unsafe {
            (self.vkGetPipelineExecutableInternalRepresentationsKHR.expect("Vulkan command vkGetPipelineExecutableInternalRepresentationsKHR is not loaded"))(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations)
        }
    }
    #[cfg(feature = "core_1_4")]
    pub unsafe fn vkCmdSetLineStipple(
        &self,
        commandBuffer: VkCommandBuffer,
        lineStippleFactor: u32,
        lineStipplePattern: u16,
    ) {
        unsafe {
            (self
                .vkCmdSetLineStipple
                .expect("Vulkan command vkCmdSetLineStipple is not loaded"))(
                commandBuffer,
                lineStippleFactor,
                lineStipplePattern,
            )
        }
    }
    #[cfg(feature = "vk_khr_line_rasterization")]
    pub unsafe fn vkCmdSetLineStippleKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        lineStippleFactor: u32,
        lineStipplePattern: u16,
    ) {
        unsafe {
            (self
                .vkCmdSetLineStippleKHR
                .expect("Vulkan command vkCmdSetLineStippleKHR is not loaded"))(
                commandBuffer,
                lineStippleFactor,
                lineStipplePattern,
            )
        }
    }
    #[cfg(feature = "vk_ext_line_rasterization")]
    pub unsafe fn vkCmdSetLineStippleEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        lineStippleFactor: u32,
        lineStipplePattern: u16,
    ) {
        unsafe {
            (self
                .vkCmdSetLineStippleEXT
                .expect("Vulkan command vkCmdSetLineStippleEXT is not loaded"))(
                commandBuffer,
                lineStippleFactor,
                lineStipplePattern,
            )
        }
    }
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub unsafe fn vkCreateAccelerationStructureKHR(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkAccelerationStructureCreateInfoKHR,
        pAllocator: *const VkAllocationCallbacks,
        pAccelerationStructure: *mut VkAccelerationStructureKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateAccelerationStructureKHR
                .expect("Vulkan command vkCreateAccelerationStructureKHR is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pAccelerationStructure,
            )
        }
    }
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub unsafe fn vkCmdBuildAccelerationStructuresKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        infoCount: u32,
        pInfos: *const VkAccelerationStructureBuildGeometryInfoKHR,
        ppBuildRangeInfos: *const *const VkAccelerationStructureBuildRangeInfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdBuildAccelerationStructuresKHR
                .expect("Vulkan command vkCmdBuildAccelerationStructuresKHR is not loaded"))(
                commandBuffer,
                infoCount,
                pInfos,
                ppBuildRangeInfos,
            )
        }
    }
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub unsafe fn vkCmdBuildAccelerationStructuresIndirectKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        infoCount: u32,
        pInfos: *const VkAccelerationStructureBuildGeometryInfoKHR,
        pIndirectDeviceAddresses: *const VkDeviceAddress,
        pIndirectStrides: *const u32,
        ppMaxPrimitiveCounts: *const *const u32,
    ) {
        unsafe {
            (self
                .vkCmdBuildAccelerationStructuresIndirectKHR
                .expect("Vulkan command vkCmdBuildAccelerationStructuresIndirectKHR is not loaded"))(
                commandBuffer,
                infoCount,
                pInfos,
                pIndirectDeviceAddresses,
                pIndirectStrides,
                ppMaxPrimitiveCounts,
            )
        }
    }
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub unsafe fn vkBuildAccelerationStructuresKHR(
        &self,
        device: VkDevice,
        deferredOperation: VkDeferredOperationKHR,
        infoCount: u32,
        pInfos: *const VkAccelerationStructureBuildGeometryInfoKHR,
        ppBuildRangeInfos: *const *const VkAccelerationStructureBuildRangeInfoKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkBuildAccelerationStructuresKHR
                .expect("Vulkan command vkBuildAccelerationStructuresKHR is not loaded"))(
                device,
                deferredOperation,
                infoCount,
                pInfos,
                ppBuildRangeInfos,
            )
        }
    }
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub unsafe fn vkGetAccelerationStructureDeviceAddressKHR(
        &self,
        device: VkDevice,
        pInfo: *const VkAccelerationStructureDeviceAddressInfoKHR,
    ) -> VkDeviceAddress {
        unsafe {
            (self
                .vkGetAccelerationStructureDeviceAddressKHR
                .expect("Vulkan command vkGetAccelerationStructureDeviceAddressKHR is not loaded"))(
                device, pInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_deferred_host_operations")]
    pub unsafe fn vkCreateDeferredOperationKHR(
        &self,
        device: VkDevice,
        pAllocator: *const VkAllocationCallbacks,
        pDeferredOperation: *mut VkDeferredOperationKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateDeferredOperationKHR
                .expect("Vulkan command vkCreateDeferredOperationKHR is not loaded"))(
                device,
                pAllocator,
                pDeferredOperation,
            )
        }
    }
    #[cfg(feature = "vk_khr_deferred_host_operations")]
    pub unsafe fn vkDestroyDeferredOperationKHR(
        &self,
        device: VkDevice,
        operation: VkDeferredOperationKHR,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyDeferredOperationKHR
                .expect("Vulkan command vkDestroyDeferredOperationKHR is not loaded"))(
                device, operation, pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_khr_deferred_host_operations")]
    pub unsafe fn vkGetDeferredOperationMaxConcurrencyKHR(
        &self,
        device: VkDevice,
        operation: VkDeferredOperationKHR,
    ) -> u32 {
        unsafe {
            (self
                .vkGetDeferredOperationMaxConcurrencyKHR
                .expect("Vulkan command vkGetDeferredOperationMaxConcurrencyKHR is not loaded"))(
                device, operation,
            )
        }
    }
    #[cfg(feature = "vk_khr_deferred_host_operations")]
    pub unsafe fn vkGetDeferredOperationResultKHR(
        &self,
        device: VkDevice,
        operation: VkDeferredOperationKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetDeferredOperationResultKHR
                .expect("Vulkan command vkGetDeferredOperationResultKHR is not loaded"))(
                device, operation,
            )
        }
    }
    #[cfg(feature = "vk_khr_deferred_host_operations")]
    pub unsafe fn vkDeferredOperationJoinKHR(
        &self,
        device: VkDevice,
        operation: VkDeferredOperationKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkDeferredOperationJoinKHR
                .expect("Vulkan command vkDeferredOperationJoinKHR is not loaded"))(
                device, operation,
            )
        }
    }
    #[cfg(feature = "vk_nv_device_generated_commands_compute")]
    pub unsafe fn vkGetPipelineIndirectMemoryRequirementsNV(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkComputePipelineCreateInfo,
        pMemoryRequirements: *mut VkMemoryRequirements2,
    ) {
        unsafe {
            (self
                .vkGetPipelineIndirectMemoryRequirementsNV
                .expect("Vulkan command vkGetPipelineIndirectMemoryRequirementsNV is not loaded"))(
                device,
                pCreateInfo,
                pMemoryRequirements,
            )
        }
    }
    #[cfg(feature = "vk_nv_device_generated_commands_compute")]
    pub unsafe fn vkGetPipelineIndirectDeviceAddressNV(
        &self,
        device: VkDevice,
        pInfo: *const VkPipelineIndirectDeviceAddressInfoNV,
    ) -> VkDeviceAddress {
        unsafe {
            (self
                .vkGetPipelineIndirectDeviceAddressNV
                .expect("Vulkan command vkGetPipelineIndirectDeviceAddressNV is not loaded"))(
                device, pInfo,
            )
        }
    }
    #[cfg(feature = "vk_amd_anti_lag")]
    pub unsafe fn vkAntiLagUpdateAMD(&self, device: VkDevice, pData: *const VkAntiLagDataAMD) {
        unsafe {
            (self
                .vkAntiLagUpdateAMD
                .expect("Vulkan command vkAntiLagUpdateAMD is not loaded"))(
                device, pData
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdSetCullMode(
        &self,
        commandBuffer: VkCommandBuffer,
        cullMode: VkCullModeFlags,
    ) {
        unsafe {
            (self
                .vkCmdSetCullMode
                .expect("Vulkan command vkCmdSetCullMode is not loaded"))(
                commandBuffer, cullMode
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetCullModeEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        cullMode: VkCullModeFlags,
    ) {
        unsafe {
            (self
                .vkCmdSetCullModeEXT
                .expect("Vulkan command vkCmdSetCullModeEXT is not loaded"))(
                commandBuffer,
                cullMode,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdSetFrontFace(&self, commandBuffer: VkCommandBuffer, frontFace: VkFrontFace) {
        unsafe {
            (self
                .vkCmdSetFrontFace
                .expect("Vulkan command vkCmdSetFrontFace is not loaded"))(
                commandBuffer, frontFace
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetFrontFaceEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        frontFace: VkFrontFace,
    ) {
        unsafe {
            (self
                .vkCmdSetFrontFaceEXT
                .expect("Vulkan command vkCmdSetFrontFaceEXT is not loaded"))(
                commandBuffer,
                frontFace,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdSetPrimitiveTopology(
        &self,
        commandBuffer: VkCommandBuffer,
        primitiveTopology: VkPrimitiveTopology,
    ) {
        unsafe {
            (self
                .vkCmdSetPrimitiveTopology
                .expect("Vulkan command vkCmdSetPrimitiveTopology is not loaded"))(
                commandBuffer,
                primitiveTopology,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetPrimitiveTopologyEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        primitiveTopology: VkPrimitiveTopology,
    ) {
        unsafe {
            (self
                .vkCmdSetPrimitiveTopologyEXT
                .expect("Vulkan command vkCmdSetPrimitiveTopologyEXT is not loaded"))(
                commandBuffer,
                primitiveTopology,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdSetViewportWithCount(
        &self,
        commandBuffer: VkCommandBuffer,
        viewportCount: u32,
        pViewports: *const VkViewport,
    ) {
        unsafe {
            (self
                .vkCmdSetViewportWithCount
                .expect("Vulkan command vkCmdSetViewportWithCount is not loaded"))(
                commandBuffer,
                viewportCount,
                pViewports,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetViewportWithCountEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        viewportCount: u32,
        pViewports: *const VkViewport,
    ) {
        unsafe {
            (self
                .vkCmdSetViewportWithCountEXT
                .expect("Vulkan command vkCmdSetViewportWithCountEXT is not loaded"))(
                commandBuffer,
                viewportCount,
                pViewports,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdSetScissorWithCount(
        &self,
        commandBuffer: VkCommandBuffer,
        scissorCount: u32,
        pScissors: *const VkRect2D,
    ) {
        unsafe {
            (self
                .vkCmdSetScissorWithCount
                .expect("Vulkan command vkCmdSetScissorWithCount is not loaded"))(
                commandBuffer,
                scissorCount,
                pScissors,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetScissorWithCountEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        scissorCount: u32,
        pScissors: *const VkRect2D,
    ) {
        unsafe {
            (self
                .vkCmdSetScissorWithCountEXT
                .expect("Vulkan command vkCmdSetScissorWithCountEXT is not loaded"))(
                commandBuffer,
                scissorCount,
                pScissors,
            )
        }
    }
    #[cfg(feature = "core_1_4")]
    pub unsafe fn vkCmdBindIndexBuffer2(
        &self,
        commandBuffer: VkCommandBuffer,
        buffer: VkBuffer,
        offset: VkDeviceSize,
        size: VkDeviceSize,
        indexType: VkIndexType,
    ) {
        unsafe {
            (self
                .vkCmdBindIndexBuffer2
                .expect("Vulkan command vkCmdBindIndexBuffer2 is not loaded"))(
                commandBuffer,
                buffer,
                offset,
                size,
                indexType,
            )
        }
    }
    #[cfg(feature = "vk_khr_maintenance5")]
    pub unsafe fn vkCmdBindIndexBuffer2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        buffer: VkBuffer,
        offset: VkDeviceSize,
        size: VkDeviceSize,
        indexType: VkIndexType,
    ) {
        unsafe {
            (self
                .vkCmdBindIndexBuffer2KHR
                .expect("Vulkan command vkCmdBindIndexBuffer2KHR is not loaded"))(
                commandBuffer,
                buffer,
                offset,
                size,
                indexType,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdBindVertexBuffers2(
        &self,
        commandBuffer: VkCommandBuffer,
        firstBinding: u32,
        bindingCount: u32,
        pBuffers: *const VkBuffer,
        pOffsets: *const VkDeviceSize,
        pSizes: *const VkDeviceSize,
        pStrides: *const VkDeviceSize,
    ) {
        unsafe {
            (self
                .vkCmdBindVertexBuffers2
                .expect("Vulkan command vkCmdBindVertexBuffers2 is not loaded"))(
                commandBuffer,
                firstBinding,
                bindingCount,
                pBuffers,
                pOffsets,
                pSizes,
                pStrides,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdBindVertexBuffers2EXT(
        &self,
        commandBuffer: VkCommandBuffer,
        firstBinding: u32,
        bindingCount: u32,
        pBuffers: *const VkBuffer,
        pOffsets: *const VkDeviceSize,
        pSizes: *const VkDeviceSize,
        pStrides: *const VkDeviceSize,
    ) {
        unsafe {
            (self
                .vkCmdBindVertexBuffers2EXT
                .expect("Vulkan command vkCmdBindVertexBuffers2EXT is not loaded"))(
                commandBuffer,
                firstBinding,
                bindingCount,
                pBuffers,
                pOffsets,
                pSizes,
                pStrides,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdSetDepthTestEnable(
        &self,
        commandBuffer: VkCommandBuffer,
        depthTestEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetDepthTestEnable
                .expect("Vulkan command vkCmdSetDepthTestEnable is not loaded"))(
                commandBuffer,
                depthTestEnable,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetDepthTestEnableEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        depthTestEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetDepthTestEnableEXT
                .expect("Vulkan command vkCmdSetDepthTestEnableEXT is not loaded"))(
                commandBuffer,
                depthTestEnable,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdSetDepthWriteEnable(
        &self,
        commandBuffer: VkCommandBuffer,
        depthWriteEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetDepthWriteEnable
                .expect("Vulkan command vkCmdSetDepthWriteEnable is not loaded"))(
                commandBuffer,
                depthWriteEnable,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetDepthWriteEnableEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        depthWriteEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetDepthWriteEnableEXT
                .expect("Vulkan command vkCmdSetDepthWriteEnableEXT is not loaded"))(
                commandBuffer,
                depthWriteEnable,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdSetDepthCompareOp(
        &self,
        commandBuffer: VkCommandBuffer,
        depthCompareOp: VkCompareOp,
    ) {
        unsafe {
            (self
                .vkCmdSetDepthCompareOp
                .expect("Vulkan command vkCmdSetDepthCompareOp is not loaded"))(
                commandBuffer,
                depthCompareOp,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetDepthCompareOpEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        depthCompareOp: VkCompareOp,
    ) {
        unsafe {
            (self
                .vkCmdSetDepthCompareOpEXT
                .expect("Vulkan command vkCmdSetDepthCompareOpEXT is not loaded"))(
                commandBuffer,
                depthCompareOp,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdSetDepthBoundsTestEnable(
        &self,
        commandBuffer: VkCommandBuffer,
        depthBoundsTestEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetDepthBoundsTestEnable
                .expect("Vulkan command vkCmdSetDepthBoundsTestEnable is not loaded"))(
                commandBuffer,
                depthBoundsTestEnable,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetDepthBoundsTestEnableEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        depthBoundsTestEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetDepthBoundsTestEnableEXT
                .expect("Vulkan command vkCmdSetDepthBoundsTestEnableEXT is not loaded"))(
                commandBuffer,
                depthBoundsTestEnable,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdSetStencilTestEnable(
        &self,
        commandBuffer: VkCommandBuffer,
        stencilTestEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetStencilTestEnable
                .expect("Vulkan command vkCmdSetStencilTestEnable is not loaded"))(
                commandBuffer,
                stencilTestEnable,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetStencilTestEnableEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        stencilTestEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetStencilTestEnableEXT
                .expect("Vulkan command vkCmdSetStencilTestEnableEXT is not loaded"))(
                commandBuffer,
                stencilTestEnable,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdSetStencilOp(
        &self,
        commandBuffer: VkCommandBuffer,
        faceMask: VkStencilFaceFlags,
        failOp: VkStencilOp,
        passOp: VkStencilOp,
        depthFailOp: VkStencilOp,
        compareOp: VkCompareOp,
    ) {
        unsafe {
            (self
                .vkCmdSetStencilOp
                .expect("Vulkan command vkCmdSetStencilOp is not loaded"))(
                commandBuffer,
                faceMask,
                failOp,
                passOp,
                depthFailOp,
                compareOp,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetStencilOpEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        faceMask: VkStencilFaceFlags,
        failOp: VkStencilOp,
        passOp: VkStencilOp,
        depthFailOp: VkStencilOp,
        compareOp: VkCompareOp,
    ) {
        unsafe {
            (self
                .vkCmdSetStencilOpEXT
                .expect("Vulkan command vkCmdSetStencilOpEXT is not loaded"))(
                commandBuffer,
                faceMask,
                failOp,
                passOp,
                depthFailOp,
                compareOp,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state2",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetPatchControlPointsEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        patchControlPoints: u32,
    ) {
        unsafe {
            (self
                .vkCmdSetPatchControlPointsEXT
                .expect("Vulkan command vkCmdSetPatchControlPointsEXT is not loaded"))(
                commandBuffer,
                patchControlPoints,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdSetRasterizerDiscardEnable(
        &self,
        commandBuffer: VkCommandBuffer,
        rasterizerDiscardEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetRasterizerDiscardEnable
                .expect("Vulkan command vkCmdSetRasterizerDiscardEnable is not loaded"))(
                commandBuffer,
                rasterizerDiscardEnable,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state2",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetRasterizerDiscardEnableEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        rasterizerDiscardEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetRasterizerDiscardEnableEXT
                .expect("Vulkan command vkCmdSetRasterizerDiscardEnableEXT is not loaded"))(
                commandBuffer,
                rasterizerDiscardEnable,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdSetDepthBiasEnable(
        &self,
        commandBuffer: VkCommandBuffer,
        depthBiasEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetDepthBiasEnable
                .expect("Vulkan command vkCmdSetDepthBiasEnable is not loaded"))(
                commandBuffer,
                depthBiasEnable,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state2",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetDepthBiasEnableEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        depthBiasEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetDepthBiasEnableEXT
                .expect("Vulkan command vkCmdSetDepthBiasEnableEXT is not loaded"))(
                commandBuffer,
                depthBiasEnable,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state2",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetLogicOpEXT(&self, commandBuffer: VkCommandBuffer, logicOp: VkLogicOp) {
        unsafe {
            (self
                .vkCmdSetLogicOpEXT
                .expect("Vulkan command vkCmdSetLogicOpEXT is not loaded"))(
                commandBuffer, logicOp
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdSetPrimitiveRestartEnable(
        &self,
        commandBuffer: VkCommandBuffer,
        primitiveRestartEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetPrimitiveRestartEnable
                .expect("Vulkan command vkCmdSetPrimitiveRestartEnable is not loaded"))(
                commandBuffer,
                primitiveRestartEnable,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state2",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetPrimitiveRestartEnableEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        primitiveRestartEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetPrimitiveRestartEnableEXT
                .expect("Vulkan command vkCmdSetPrimitiveRestartEnableEXT is not loaded"))(
                commandBuffer,
                primitiveRestartEnable,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_shader_object",
        all(
            feature = "vk_ext_extended_dynamic_state3",
            any(feature = "core_1_1", feature = "vk_khr_maintenance2")
        )
    ))]
    pub unsafe fn vkCmdSetTessellationDomainOriginEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        domainOrigin: VkTessellationDomainOrigin,
    ) {
        unsafe {
            (self
                .vkCmdSetTessellationDomainOriginEXT
                .expect("Vulkan command vkCmdSetTessellationDomainOriginEXT is not loaded"))(
                commandBuffer,
                domainOrigin,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state3",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetDepthClampEnableEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        depthClampEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetDepthClampEnableEXT
                .expect("Vulkan command vkCmdSetDepthClampEnableEXT is not loaded"))(
                commandBuffer,
                depthClampEnable,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state3",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetPolygonModeEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        polygonMode: VkPolygonMode,
    ) {
        unsafe {
            (self
                .vkCmdSetPolygonModeEXT
                .expect("Vulkan command vkCmdSetPolygonModeEXT is not loaded"))(
                commandBuffer,
                polygonMode,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state3",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetRasterizationSamplesEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        rasterizationSamples: VkSampleCountFlagBits,
    ) {
        unsafe {
            (self
                .vkCmdSetRasterizationSamplesEXT
                .expect("Vulkan command vkCmdSetRasterizationSamplesEXT is not loaded"))(
                commandBuffer,
                rasterizationSamples,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state3",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetSampleMaskEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        samples: VkSampleCountFlagBits,
        pSampleMask: *const VkSampleMask,
    ) {
        unsafe {
            (self
                .vkCmdSetSampleMaskEXT
                .expect("Vulkan command vkCmdSetSampleMaskEXT is not loaded"))(
                commandBuffer,
                samples,
                pSampleMask,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state3",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetAlphaToCoverageEnableEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        alphaToCoverageEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetAlphaToCoverageEnableEXT
                .expect("Vulkan command vkCmdSetAlphaToCoverageEnableEXT is not loaded"))(
                commandBuffer,
                alphaToCoverageEnable,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state3",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetAlphaToOneEnableEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        alphaToOneEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetAlphaToOneEnableEXT
                .expect("Vulkan command vkCmdSetAlphaToOneEnableEXT is not loaded"))(
                commandBuffer,
                alphaToOneEnable,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state3",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetLogicOpEnableEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        logicOpEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetLogicOpEnableEXT
                .expect("Vulkan command vkCmdSetLogicOpEnableEXT is not loaded"))(
                commandBuffer,
                logicOpEnable,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state3",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetColorBlendEnableEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        firstAttachment: u32,
        attachmentCount: u32,
        pColorBlendEnables: *const VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetColorBlendEnableEXT
                .expect("Vulkan command vkCmdSetColorBlendEnableEXT is not loaded"))(
                commandBuffer,
                firstAttachment,
                attachmentCount,
                pColorBlendEnables,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state3",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetColorBlendEquationEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        firstAttachment: u32,
        attachmentCount: u32,
        pColorBlendEquations: *const VkColorBlendEquationEXT,
    ) {
        unsafe {
            (self
                .vkCmdSetColorBlendEquationEXT
                .expect("Vulkan command vkCmdSetColorBlendEquationEXT is not loaded"))(
                commandBuffer,
                firstAttachment,
                attachmentCount,
                pColorBlendEquations,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_extended_dynamic_state3",
        feature = "vk_ext_shader_object"
    ))]
    pub unsafe fn vkCmdSetColorWriteMaskEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        firstAttachment: u32,
        attachmentCount: u32,
        pColorWriteMasks: *const VkColorComponentFlags,
    ) {
        unsafe {
            (self
                .vkCmdSetColorWriteMaskEXT
                .expect("Vulkan command vkCmdSetColorWriteMaskEXT is not loaded"))(
                commandBuffer,
                firstAttachment,
                attachmentCount,
                pColorWriteMasks,
            )
        }
    }
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_ext_transform_feedback"
        ),
        all(
            feature = "vk_ext_shader_object",
            feature = "vk_ext_transform_feedback"
        )
    ))]
    pub unsafe fn vkCmdSetRasterizationStreamEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        rasterizationStream: u32,
    ) {
        unsafe {
            (self
                .vkCmdSetRasterizationStreamEXT
                .expect("Vulkan command vkCmdSetRasterizationStreamEXT is not loaded"))(
                commandBuffer,
                rasterizationStream,
            )
        }
    }
    #[cfg(any(
        all(
            feature = "vk_ext_conservative_rasterization",
            feature = "vk_ext_extended_dynamic_state3"
        ),
        all(
            feature = "vk_ext_conservative_rasterization",
            feature = "vk_ext_shader_object"
        )
    ))]
    pub unsafe fn vkCmdSetConservativeRasterizationModeEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        conservativeRasterizationMode: VkConservativeRasterizationModeEXT,
    ) {
        unsafe {
            (self
                .vkCmdSetConservativeRasterizationModeEXT
                .expect("Vulkan command vkCmdSetConservativeRasterizationModeEXT is not loaded"))(
                commandBuffer,
                conservativeRasterizationMode,
            )
        }
    }
    #[cfg(any(
        all(
            feature = "vk_ext_conservative_rasterization",
            feature = "vk_ext_extended_dynamic_state3"
        ),
        all(
            feature = "vk_ext_conservative_rasterization",
            feature = "vk_ext_shader_object"
        )
    ))]
    pub unsafe fn vkCmdSetExtraPrimitiveOverestimationSizeEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        extraPrimitiveOverestimationSize: f32,
    ) {
        unsafe {
            (self
                .vkCmdSetExtraPrimitiveOverestimationSizeEXT
                .expect("Vulkan command vkCmdSetExtraPrimitiveOverestimationSizeEXT is not loaded"))(
                commandBuffer,
                extraPrimitiveOverestimationSize,
            )
        }
    }
    #[cfg(any(
        all(
            feature = "vk_ext_depth_clip_enable",
            feature = "vk_ext_extended_dynamic_state3"
        ),
        all(feature = "vk_ext_depth_clip_enable", feature = "vk_ext_shader_object")
    ))]
    pub unsafe fn vkCmdSetDepthClipEnableEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        depthClipEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetDepthClipEnableEXT
                .expect("Vulkan command vkCmdSetDepthClipEnableEXT is not loaded"))(
                commandBuffer,
                depthClipEnable,
            )
        }
    }
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_ext_sample_locations"
        ),
        all(feature = "vk_ext_sample_locations", feature = "vk_ext_shader_object")
    ))]
    pub unsafe fn vkCmdSetSampleLocationsEnableEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        sampleLocationsEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetSampleLocationsEnableEXT
                .expect("Vulkan command vkCmdSetSampleLocationsEnableEXT is not loaded"))(
                commandBuffer,
                sampleLocationsEnable,
            )
        }
    }
    #[cfg(any(
        all(
            feature = "vk_ext_blend_operation_advanced",
            feature = "vk_ext_extended_dynamic_state3"
        ),
        all(
            feature = "vk_ext_blend_operation_advanced",
            feature = "vk_ext_shader_object"
        )
    ))]
    pub unsafe fn vkCmdSetColorBlendAdvancedEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        firstAttachment: u32,
        attachmentCount: u32,
        pColorBlendAdvanced: *const VkColorBlendAdvancedEXT,
    ) {
        unsafe {
            (self
                .vkCmdSetColorBlendAdvancedEXT
                .expect("Vulkan command vkCmdSetColorBlendAdvancedEXT is not loaded"))(
                commandBuffer,
                firstAttachment,
                attachmentCount,
                pColorBlendAdvanced,
            )
        }
    }
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_ext_provoking_vertex"
        ),
        all(feature = "vk_ext_provoking_vertex", feature = "vk_ext_shader_object")
    ))]
    pub unsafe fn vkCmdSetProvokingVertexModeEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        provokingVertexMode: VkProvokingVertexModeEXT,
    ) {
        unsafe {
            (self
                .vkCmdSetProvokingVertexModeEXT
                .expect("Vulkan command vkCmdSetProvokingVertexModeEXT is not loaded"))(
                commandBuffer,
                provokingVertexMode,
            )
        }
    }
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            any(
                feature = "core_1_4",
                feature = "vk_ext_line_rasterization",
                feature = "vk_khr_line_rasterization"
            )
        ),
        all(
            feature = "vk_ext_shader_object",
            any(
                feature = "core_1_4",
                feature = "vk_ext_line_rasterization",
                feature = "vk_khr_line_rasterization"
            )
        )
    ))]
    pub unsafe fn vkCmdSetLineRasterizationModeEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        lineRasterizationMode: VkLineRasterizationModeEXT,
    ) {
        unsafe {
            (self
                .vkCmdSetLineRasterizationModeEXT
                .expect("Vulkan command vkCmdSetLineRasterizationModeEXT is not loaded"))(
                commandBuffer,
                lineRasterizationMode,
            )
        }
    }
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            any(
                feature = "core_1_4",
                feature = "vk_ext_line_rasterization",
                feature = "vk_khr_line_rasterization"
            )
        ),
        all(
            feature = "vk_ext_shader_object",
            any(
                feature = "core_1_4",
                feature = "vk_ext_line_rasterization",
                feature = "vk_khr_line_rasterization"
            )
        )
    ))]
    pub unsafe fn vkCmdSetLineStippleEnableEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        stippledLineEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetLineStippleEnableEXT
                .expect("Vulkan command vkCmdSetLineStippleEnableEXT is not loaded"))(
                commandBuffer,
                stippledLineEnable,
            )
        }
    }
    #[cfg(any(
        all(
            feature = "vk_ext_depth_clip_control",
            feature = "vk_ext_extended_dynamic_state3"
        ),
        all(
            feature = "vk_ext_depth_clip_control",
            feature = "vk_ext_shader_object"
        )
    ))]
    pub unsafe fn vkCmdSetDepthClipNegativeOneToOneEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        negativeOneToOne: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetDepthClipNegativeOneToOneEXT
                .expect("Vulkan command vkCmdSetDepthClipNegativeOneToOneEXT is not loaded"))(
                commandBuffer,
                negativeOneToOne,
            )
        }
    }
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_nv_clip_space_w_scaling"
        ),
        all(
            feature = "vk_ext_shader_object",
            feature = "vk_nv_clip_space_w_scaling"
        )
    ))]
    pub unsafe fn vkCmdSetViewportWScalingEnableNV(
        &self,
        commandBuffer: VkCommandBuffer,
        viewportWScalingEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetViewportWScalingEnableNV
                .expect("Vulkan command vkCmdSetViewportWScalingEnableNV is not loaded"))(
                commandBuffer,
                viewportWScalingEnable,
            )
        }
    }
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_nv_viewport_swizzle"
        ),
        all(feature = "vk_ext_shader_object", feature = "vk_nv_viewport_swizzle")
    ))]
    pub unsafe fn vkCmdSetViewportSwizzleNV(
        &self,
        commandBuffer: VkCommandBuffer,
        firstViewport: u32,
        viewportCount: u32,
        pViewportSwizzles: *const VkViewportSwizzleNV,
    ) {
        unsafe {
            (self
                .vkCmdSetViewportSwizzleNV
                .expect("Vulkan command vkCmdSetViewportSwizzleNV is not loaded"))(
                commandBuffer,
                firstViewport,
                viewportCount,
                pViewportSwizzles,
            )
        }
    }
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_nv_fragment_coverage_to_color"
        ),
        all(
            feature = "vk_ext_shader_object",
            feature = "vk_nv_fragment_coverage_to_color"
        )
    ))]
    pub unsafe fn vkCmdSetCoverageToColorEnableNV(
        &self,
        commandBuffer: VkCommandBuffer,
        coverageToColorEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetCoverageToColorEnableNV
                .expect("Vulkan command vkCmdSetCoverageToColorEnableNV is not loaded"))(
                commandBuffer,
                coverageToColorEnable,
            )
        }
    }
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_nv_fragment_coverage_to_color"
        ),
        all(
            feature = "vk_ext_shader_object",
            feature = "vk_nv_fragment_coverage_to_color"
        )
    ))]
    pub unsafe fn vkCmdSetCoverageToColorLocationNV(
        &self,
        commandBuffer: VkCommandBuffer,
        coverageToColorLocation: u32,
    ) {
        unsafe {
            (self
                .vkCmdSetCoverageToColorLocationNV
                .expect("Vulkan command vkCmdSetCoverageToColorLocationNV is not loaded"))(
                commandBuffer,
                coverageToColorLocation,
            )
        }
    }
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_nv_framebuffer_mixed_samples"
        ),
        all(
            feature = "vk_ext_shader_object",
            feature = "vk_nv_framebuffer_mixed_samples"
        )
    ))]
    pub unsafe fn vkCmdSetCoverageModulationModeNV(
        &self,
        commandBuffer: VkCommandBuffer,
        coverageModulationMode: VkCoverageModulationModeNV,
    ) {
        unsafe {
            (self
                .vkCmdSetCoverageModulationModeNV
                .expect("Vulkan command vkCmdSetCoverageModulationModeNV is not loaded"))(
                commandBuffer,
                coverageModulationMode,
            )
        }
    }
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_nv_framebuffer_mixed_samples"
        ),
        all(
            feature = "vk_ext_shader_object",
            feature = "vk_nv_framebuffer_mixed_samples"
        )
    ))]
    pub unsafe fn vkCmdSetCoverageModulationTableEnableNV(
        &self,
        commandBuffer: VkCommandBuffer,
        coverageModulationTableEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetCoverageModulationTableEnableNV
                .expect("Vulkan command vkCmdSetCoverageModulationTableEnableNV is not loaded"))(
                commandBuffer,
                coverageModulationTableEnable,
            )
        }
    }
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_nv_framebuffer_mixed_samples"
        ),
        all(
            feature = "vk_ext_shader_object",
            feature = "vk_nv_framebuffer_mixed_samples"
        )
    ))]
    pub unsafe fn vkCmdSetCoverageModulationTableNV(
        &self,
        commandBuffer: VkCommandBuffer,
        coverageModulationTableCount: u32,
        pCoverageModulationTable: *const f32,
    ) {
        unsafe {
            (self
                .vkCmdSetCoverageModulationTableNV
                .expect("Vulkan command vkCmdSetCoverageModulationTableNV is not loaded"))(
                commandBuffer,
                coverageModulationTableCount,
                pCoverageModulationTable,
            )
        }
    }
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_nv_shading_rate_image"
        ),
        all(feature = "vk_ext_shader_object", feature = "vk_nv_shading_rate_image")
    ))]
    pub unsafe fn vkCmdSetShadingRateImageEnableNV(
        &self,
        commandBuffer: VkCommandBuffer,
        shadingRateImageEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetShadingRateImageEnableNV
                .expect("Vulkan command vkCmdSetShadingRateImageEnableNV is not loaded"))(
                commandBuffer,
                shadingRateImageEnable,
            )
        }
    }
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_nv_coverage_reduction_mode"
        ),
        all(
            feature = "vk_ext_shader_object",
            feature = "vk_nv_coverage_reduction_mode"
        )
    ))]
    pub unsafe fn vkCmdSetCoverageReductionModeNV(
        &self,
        commandBuffer: VkCommandBuffer,
        coverageReductionMode: VkCoverageReductionModeNV,
    ) {
        unsafe {
            (self
                .vkCmdSetCoverageReductionModeNV
                .expect("Vulkan command vkCmdSetCoverageReductionModeNV is not loaded"))(
                commandBuffer,
                coverageReductionMode,
            )
        }
    }
    #[cfg(any(
        all(
            feature = "vk_ext_extended_dynamic_state3",
            feature = "vk_nv_representative_fragment_test"
        ),
        all(
            feature = "vk_ext_shader_object",
            feature = "vk_nv_representative_fragment_test"
        )
    ))]
    pub unsafe fn vkCmdSetRepresentativeFragmentTestEnableNV(
        &self,
        commandBuffer: VkCommandBuffer,
        representativeFragmentTestEnable: VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetRepresentativeFragmentTestEnableNV
                .expect("Vulkan command vkCmdSetRepresentativeFragmentTestEnableNV is not loaded"))(
                commandBuffer,
                representativeFragmentTestEnable,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCreatePrivateDataSlot(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkPrivateDataSlotCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pPrivateDataSlot: *mut VkPrivateDataSlot,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreatePrivateDataSlot
                .expect("Vulkan command vkCreatePrivateDataSlot is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pPrivateDataSlot,
            )
        }
    }
    #[cfg(feature = "vk_ext_private_data")]
    pub unsafe fn vkCreatePrivateDataSlotEXT(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkPrivateDataSlotCreateInfo,
        pAllocator: *const VkAllocationCallbacks,
        pPrivateDataSlot: *mut VkPrivateDataSlot,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreatePrivateDataSlotEXT
                .expect("Vulkan command vkCreatePrivateDataSlotEXT is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pPrivateDataSlot,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkDestroyPrivateDataSlot(
        &self,
        device: VkDevice,
        privateDataSlot: VkPrivateDataSlot,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyPrivateDataSlot
                .expect("Vulkan command vkDestroyPrivateDataSlot is not loaded"))(
                device,
                privateDataSlot,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_ext_private_data")]
    pub unsafe fn vkDestroyPrivateDataSlotEXT(
        &self,
        device: VkDevice,
        privateDataSlot: VkPrivateDataSlot,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyPrivateDataSlotEXT
                .expect("Vulkan command vkDestroyPrivateDataSlotEXT is not loaded"))(
                device,
                privateDataSlot,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkSetPrivateData(
        &self,
        device: VkDevice,
        objectType: VkObjectType,
        objectHandle: u64,
        privateDataSlot: VkPrivateDataSlot,
        data: u64,
    ) -> VkResult {
        unsafe {
            (self
                .vkSetPrivateData
                .expect("Vulkan command vkSetPrivateData is not loaded"))(
                device,
                objectType,
                objectHandle,
                privateDataSlot,
                data,
            )
        }
    }
    #[cfg(feature = "vk_ext_private_data")]
    pub unsafe fn vkSetPrivateDataEXT(
        &self,
        device: VkDevice,
        objectType: VkObjectType,
        objectHandle: u64,
        privateDataSlot: VkPrivateDataSlot,
        data: u64,
    ) -> VkResult {
        unsafe {
            (self
                .vkSetPrivateDataEXT
                .expect("Vulkan command vkSetPrivateDataEXT is not loaded"))(
                device,
                objectType,
                objectHandle,
                privateDataSlot,
                data,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkGetPrivateData(
        &self,
        device: VkDevice,
        objectType: VkObjectType,
        objectHandle: u64,
        privateDataSlot: VkPrivateDataSlot,
        pData: *mut u64,
    ) {
        unsafe {
            (self
                .vkGetPrivateData
                .expect("Vulkan command vkGetPrivateData is not loaded"))(
                device,
                objectType,
                objectHandle,
                privateDataSlot,
                pData,
            )
        }
    }
    #[cfg(feature = "vk_ext_private_data")]
    pub unsafe fn vkGetPrivateDataEXT(
        &self,
        device: VkDevice,
        objectType: VkObjectType,
        objectHandle: u64,
        privateDataSlot: VkPrivateDataSlot,
        pData: *mut u64,
    ) {
        unsafe {
            (self
                .vkGetPrivateDataEXT
                .expect("Vulkan command vkGetPrivateDataEXT is not loaded"))(
                device,
                objectType,
                objectHandle,
                privateDataSlot,
                pData,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdCopyBuffer2(
        &self,
        commandBuffer: VkCommandBuffer,
        pCopyBufferInfo: *const VkCopyBufferInfo2,
    ) {
        unsafe {
            (self
                .vkCmdCopyBuffer2
                .expect("Vulkan command vkCmdCopyBuffer2 is not loaded"))(
                commandBuffer,
                pCopyBufferInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_copy_commands2")]
    pub unsafe fn vkCmdCopyBuffer2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pCopyBufferInfo: *const VkCopyBufferInfo2,
    ) {
        unsafe {
            (self
                .vkCmdCopyBuffer2KHR
                .expect("Vulkan command vkCmdCopyBuffer2KHR is not loaded"))(
                commandBuffer,
                pCopyBufferInfo,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdCopyImage2(
        &self,
        commandBuffer: VkCommandBuffer,
        pCopyImageInfo: *const VkCopyImageInfo2,
    ) {
        unsafe {
            (self
                .vkCmdCopyImage2
                .expect("Vulkan command vkCmdCopyImage2 is not loaded"))(
                commandBuffer,
                pCopyImageInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_copy_commands2")]
    pub unsafe fn vkCmdCopyImage2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pCopyImageInfo: *const VkCopyImageInfo2,
    ) {
        unsafe {
            (self
                .vkCmdCopyImage2KHR
                .expect("Vulkan command vkCmdCopyImage2KHR is not loaded"))(
                commandBuffer,
                pCopyImageInfo,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdBlitImage2(
        &self,
        commandBuffer: VkCommandBuffer,
        pBlitImageInfo: *const VkBlitImageInfo2,
    ) {
        unsafe {
            (self
                .vkCmdBlitImage2
                .expect("Vulkan command vkCmdBlitImage2 is not loaded"))(
                commandBuffer,
                pBlitImageInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_copy_commands2")]
    pub unsafe fn vkCmdBlitImage2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pBlitImageInfo: *const VkBlitImageInfo2,
    ) {
        unsafe {
            (self
                .vkCmdBlitImage2KHR
                .expect("Vulkan command vkCmdBlitImage2KHR is not loaded"))(
                commandBuffer,
                pBlitImageInfo,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdCopyBufferToImage2(
        &self,
        commandBuffer: VkCommandBuffer,
        pCopyBufferToImageInfo: *const VkCopyBufferToImageInfo2,
    ) {
        unsafe {
            (self
                .vkCmdCopyBufferToImage2
                .expect("Vulkan command vkCmdCopyBufferToImage2 is not loaded"))(
                commandBuffer,
                pCopyBufferToImageInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_copy_commands2")]
    pub unsafe fn vkCmdCopyBufferToImage2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pCopyBufferToImageInfo: *const VkCopyBufferToImageInfo2,
    ) {
        unsafe {
            (self
                .vkCmdCopyBufferToImage2KHR
                .expect("Vulkan command vkCmdCopyBufferToImage2KHR is not loaded"))(
                commandBuffer,
                pCopyBufferToImageInfo,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdCopyImageToBuffer2(
        &self,
        commandBuffer: VkCommandBuffer,
        pCopyImageToBufferInfo: *const VkCopyImageToBufferInfo2,
    ) {
        unsafe {
            (self
                .vkCmdCopyImageToBuffer2
                .expect("Vulkan command vkCmdCopyImageToBuffer2 is not loaded"))(
                commandBuffer,
                pCopyImageToBufferInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_copy_commands2")]
    pub unsafe fn vkCmdCopyImageToBuffer2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pCopyImageToBufferInfo: *const VkCopyImageToBufferInfo2,
    ) {
        unsafe {
            (self
                .vkCmdCopyImageToBuffer2KHR
                .expect("Vulkan command vkCmdCopyImageToBuffer2KHR is not loaded"))(
                commandBuffer,
                pCopyImageToBufferInfo,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdResolveImage2(
        &self,
        commandBuffer: VkCommandBuffer,
        pResolveImageInfo: *const VkResolveImageInfo2,
    ) {
        unsafe {
            (self
                .vkCmdResolveImage2
                .expect("Vulkan command vkCmdResolveImage2 is not loaded"))(
                commandBuffer,
                pResolveImageInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_copy_commands2")]
    pub unsafe fn vkCmdResolveImage2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pResolveImageInfo: *const VkResolveImageInfo2,
    ) {
        unsafe {
            (self
                .vkCmdResolveImage2KHR
                .expect("Vulkan command vkCmdResolveImage2KHR is not loaded"))(
                commandBuffer,
                pResolveImageInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_fragment_shading_rate")]
    pub unsafe fn vkCmdSetFragmentShadingRateKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pFragmentSize: *const VkExtent2D,
        combinerOps: *const VkFragmentShadingRateCombinerOpKHR,
    ) {
        unsafe {
            (self
                .vkCmdSetFragmentShadingRateKHR
                .expect("Vulkan command vkCmdSetFragmentShadingRateKHR is not loaded"))(
                commandBuffer,
                pFragmentSize,
                combinerOps,
            )
        }
    }
    #[cfg(feature = "vk_nv_fragment_shading_rate_enums")]
    pub unsafe fn vkCmdSetFragmentShadingRateEnumNV(
        &self,
        commandBuffer: VkCommandBuffer,
        shadingRate: VkFragmentShadingRateNV,
        combinerOps: *const VkFragmentShadingRateCombinerOpKHR,
    ) {
        unsafe {
            (self
                .vkCmdSetFragmentShadingRateEnumNV
                .expect("Vulkan command vkCmdSetFragmentShadingRateEnumNV is not loaded"))(
                commandBuffer,
                shadingRate,
                combinerOps,
            )
        }
    }
    #[cfg(feature = "vk_khr_acceleration_structure")]
    pub unsafe fn vkGetAccelerationStructureBuildSizesKHR(
        &self,
        device: VkDevice,
        buildType: VkAccelerationStructureBuildTypeKHR,
        pBuildInfo: *const VkAccelerationStructureBuildGeometryInfoKHR,
        pMaxPrimitiveCounts: *const u32,
        pSizeInfo: *mut VkAccelerationStructureBuildSizesInfoKHR,
    ) {
        unsafe {
            (self
                .vkGetAccelerationStructureBuildSizesKHR
                .expect("Vulkan command vkGetAccelerationStructureBuildSizesKHR is not loaded"))(
                device,
                buildType,
                pBuildInfo,
                pMaxPrimitiveCounts,
                pSizeInfo,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_shader_object",
        feature = "vk_ext_vertex_input_dynamic_state"
    ))]
    pub unsafe fn vkCmdSetVertexInputEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        vertexBindingDescriptionCount: u32,
        pVertexBindingDescriptions: *const VkVertexInputBindingDescription2EXT,
        vertexAttributeDescriptionCount: u32,
        pVertexAttributeDescriptions: *const VkVertexInputAttributeDescription2EXT,
    ) {
        unsafe {
            (self
                .vkCmdSetVertexInputEXT
                .expect("Vulkan command vkCmdSetVertexInputEXT is not loaded"))(
                commandBuffer,
                vertexBindingDescriptionCount,
                pVertexBindingDescriptions,
                vertexAttributeDescriptionCount,
                pVertexAttributeDescriptions,
            )
        }
    }
    #[cfg(feature = "vk_ext_color_write_enable")]
    pub unsafe fn vkCmdSetColorWriteEnableEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        attachmentCount: u32,
        pColorWriteEnables: *const VkBool32,
    ) {
        unsafe {
            (self
                .vkCmdSetColorWriteEnableEXT
                .expect("Vulkan command vkCmdSetColorWriteEnableEXT is not loaded"))(
                commandBuffer,
                attachmentCount,
                pColorWriteEnables,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdSetEvent2(
        &self,
        commandBuffer: VkCommandBuffer,
        event: VkEvent,
        pDependencyInfo: *const VkDependencyInfo,
    ) {
        unsafe {
            (self
                .vkCmdSetEvent2
                .expect("Vulkan command vkCmdSetEvent2 is not loaded"))(
                commandBuffer,
                event,
                pDependencyInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_synchronization2")]
    pub unsafe fn vkCmdSetEvent2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        event: VkEvent,
        pDependencyInfo: *const VkDependencyInfo,
    ) {
        unsafe {
            (self
                .vkCmdSetEvent2KHR
                .expect("Vulkan command vkCmdSetEvent2KHR is not loaded"))(
                commandBuffer,
                event,
                pDependencyInfo,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdResetEvent2(
        &self,
        commandBuffer: VkCommandBuffer,
        event: VkEvent,
        stageMask: VkPipelineStageFlags2,
    ) {
        unsafe {
            (self
                .vkCmdResetEvent2
                .expect("Vulkan command vkCmdResetEvent2 is not loaded"))(
                commandBuffer,
                event,
                stageMask,
            )
        }
    }
    #[cfg(feature = "vk_khr_synchronization2")]
    pub unsafe fn vkCmdResetEvent2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        event: VkEvent,
        stageMask: VkPipelineStageFlags2,
    ) {
        unsafe {
            (self
                .vkCmdResetEvent2KHR
                .expect("Vulkan command vkCmdResetEvent2KHR is not loaded"))(
                commandBuffer,
                event,
                stageMask,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdWaitEvents2(
        &self,
        commandBuffer: VkCommandBuffer,
        eventCount: u32,
        pEvents: *const VkEvent,
        pDependencyInfos: *const VkDependencyInfo,
    ) {
        unsafe {
            (self
                .vkCmdWaitEvents2
                .expect("Vulkan command vkCmdWaitEvents2 is not loaded"))(
                commandBuffer,
                eventCount,
                pEvents,
                pDependencyInfos,
            )
        }
    }
    #[cfg(feature = "vk_khr_synchronization2")]
    pub unsafe fn vkCmdWaitEvents2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        eventCount: u32,
        pEvents: *const VkEvent,
        pDependencyInfos: *const VkDependencyInfo,
    ) {
        unsafe {
            (self
                .vkCmdWaitEvents2KHR
                .expect("Vulkan command vkCmdWaitEvents2KHR is not loaded"))(
                commandBuffer,
                eventCount,
                pEvents,
                pDependencyInfos,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdPipelineBarrier2(
        &self,
        commandBuffer: VkCommandBuffer,
        pDependencyInfo: *const VkDependencyInfo,
    ) {
        unsafe {
            (self
                .vkCmdPipelineBarrier2
                .expect("Vulkan command vkCmdPipelineBarrier2 is not loaded"))(
                commandBuffer,
                pDependencyInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_synchronization2")]
    pub unsafe fn vkCmdPipelineBarrier2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pDependencyInfo: *const VkDependencyInfo,
    ) {
        unsafe {
            (self
                .vkCmdPipelineBarrier2KHR
                .expect("Vulkan command vkCmdPipelineBarrier2KHR is not loaded"))(
                commandBuffer,
                pDependencyInfo,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkQueueSubmit2(
        &self,
        queue: VkQueue,
        submitCount: u32,
        pSubmits: *const VkSubmitInfo2,
        fence: VkFence,
    ) -> VkResult {
        unsafe {
            (self
                .vkQueueSubmit2
                .expect("Vulkan command vkQueueSubmit2 is not loaded"))(
                queue,
                submitCount,
                pSubmits,
                fence,
            )
        }
    }
    #[cfg(feature = "vk_khr_synchronization2")]
    pub unsafe fn vkQueueSubmit2KHR(
        &self,
        queue: VkQueue,
        submitCount: u32,
        pSubmits: *const VkSubmitInfo2,
        fence: VkFence,
    ) -> VkResult {
        unsafe {
            (self
                .vkQueueSubmit2KHR
                .expect("Vulkan command vkQueueSubmit2KHR is not loaded"))(
                queue,
                submitCount,
                pSubmits,
                fence,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdWriteTimestamp2(
        &self,
        commandBuffer: VkCommandBuffer,
        stage: VkPipelineStageFlags2,
        queryPool: VkQueryPool,
        query: u32,
    ) {
        unsafe {
            (self
                .vkCmdWriteTimestamp2
                .expect("Vulkan command vkCmdWriteTimestamp2 is not loaded"))(
                commandBuffer,
                stage,
                queryPool,
                query,
            )
        }
    }
    #[cfg(feature = "vk_khr_synchronization2")]
    pub unsafe fn vkCmdWriteTimestamp2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        stage: VkPipelineStageFlags2,
        queryPool: VkQueryPool,
        query: u32,
    ) {
        unsafe {
            (self
                .vkCmdWriteTimestamp2KHR
                .expect("Vulkan command vkCmdWriteTimestamp2KHR is not loaded"))(
                commandBuffer,
                stage,
                queryPool,
                query,
            )
        }
    }
    #[cfg(all(
        feature = "vk_amd_buffer_marker",
        any(feature = "core_1_3", feature = "vk_khr_synchronization2")
    ))]
    pub unsafe fn vkCmdWriteBufferMarker2AMD(
        &self,
        commandBuffer: VkCommandBuffer,
        stage: VkPipelineStageFlags2,
        dstBuffer: VkBuffer,
        dstOffset: VkDeviceSize,
        marker: u32,
    ) {
        unsafe {
            (self
                .vkCmdWriteBufferMarker2AMD
                .expect("Vulkan command vkCmdWriteBufferMarker2AMD is not loaded"))(
                commandBuffer,
                stage,
                dstBuffer,
                dstOffset,
                marker,
            )
        }
    }
    #[cfg(all(
        feature = "vk_nv_device_diagnostic_checkpoints",
        any(feature = "core_1_3", feature = "vk_khr_synchronization2")
    ))]
    pub unsafe fn vkGetQueueCheckpointData2NV(
        &self,
        queue: VkQueue,
        pCheckpointDataCount: *mut u32,
        pCheckpointData: *mut VkCheckpointData2NV,
    ) {
        unsafe {
            (self
                .vkGetQueueCheckpointData2NV
                .expect("Vulkan command vkGetQueueCheckpointData2NV is not loaded"))(
                queue,
                pCheckpointDataCount,
                pCheckpointData,
            )
        }
    }
    #[cfg(feature = "core_1_4")]
    pub unsafe fn vkCopyMemoryToImage(
        &self,
        device: VkDevice,
        pCopyMemoryToImageInfo: *const VkCopyMemoryToImageInfo,
    ) -> VkResult {
        unsafe {
            (self
                .vkCopyMemoryToImage
                .expect("Vulkan command vkCopyMemoryToImage is not loaded"))(
                device,
                pCopyMemoryToImageInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_host_image_copy")]
    pub unsafe fn vkCopyMemoryToImageEXT(
        &self,
        device: VkDevice,
        pCopyMemoryToImageInfo: *const VkCopyMemoryToImageInfo,
    ) -> VkResult {
        unsafe {
            (self
                .vkCopyMemoryToImageEXT
                .expect("Vulkan command vkCopyMemoryToImageEXT is not loaded"))(
                device,
                pCopyMemoryToImageInfo,
            )
        }
    }
    #[cfg(feature = "core_1_4")]
    pub unsafe fn vkCopyImageToMemory(
        &self,
        device: VkDevice,
        pCopyImageToMemoryInfo: *const VkCopyImageToMemoryInfo,
    ) -> VkResult {
        unsafe {
            (self
                .vkCopyImageToMemory
                .expect("Vulkan command vkCopyImageToMemory is not loaded"))(
                device,
                pCopyImageToMemoryInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_host_image_copy")]
    pub unsafe fn vkCopyImageToMemoryEXT(
        &self,
        device: VkDevice,
        pCopyImageToMemoryInfo: *const VkCopyImageToMemoryInfo,
    ) -> VkResult {
        unsafe {
            (self
                .vkCopyImageToMemoryEXT
                .expect("Vulkan command vkCopyImageToMemoryEXT is not loaded"))(
                device,
                pCopyImageToMemoryInfo,
            )
        }
    }
    #[cfg(feature = "core_1_4")]
    pub unsafe fn vkCopyImageToImage(
        &self,
        device: VkDevice,
        pCopyImageToImageInfo: *const VkCopyImageToImageInfo,
    ) -> VkResult {
        unsafe {
            (self
                .vkCopyImageToImage
                .expect("Vulkan command vkCopyImageToImage is not loaded"))(
                device,
                pCopyImageToImageInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_host_image_copy")]
    pub unsafe fn vkCopyImageToImageEXT(
        &self,
        device: VkDevice,
        pCopyImageToImageInfo: *const VkCopyImageToImageInfo,
    ) -> VkResult {
        unsafe {
            (self
                .vkCopyImageToImageEXT
                .expect("Vulkan command vkCopyImageToImageEXT is not loaded"))(
                device,
                pCopyImageToImageInfo,
            )
        }
    }
    #[cfg(feature = "core_1_4")]
    pub unsafe fn vkTransitionImageLayout(
        &self,
        device: VkDevice,
        transitionCount: u32,
        pTransitions: *const VkHostImageLayoutTransitionInfo,
    ) -> VkResult {
        unsafe {
            (self
                .vkTransitionImageLayout
                .expect("Vulkan command vkTransitionImageLayout is not loaded"))(
                device,
                transitionCount,
                pTransitions,
            )
        }
    }
    #[cfg(feature = "vk_ext_host_image_copy")]
    pub unsafe fn vkTransitionImageLayoutEXT(
        &self,
        device: VkDevice,
        transitionCount: u32,
        pTransitions: *const VkHostImageLayoutTransitionInfo,
    ) -> VkResult {
        unsafe {
            (self
                .vkTransitionImageLayoutEXT
                .expect("Vulkan command vkTransitionImageLayoutEXT is not loaded"))(
                device,
                transitionCount,
                pTransitions,
            )
        }
    }
    #[cfg(feature = "vk_khr_video_queue")]
    pub unsafe fn vkCreateVideoSessionKHR(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkVideoSessionCreateInfoKHR,
        pAllocator: *const VkAllocationCallbacks,
        pVideoSession: *mut VkVideoSessionKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateVideoSessionKHR
                .expect("Vulkan command vkCreateVideoSessionKHR is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pVideoSession,
            )
        }
    }
    #[cfg(feature = "vk_khr_video_queue")]
    pub unsafe fn vkDestroyVideoSessionKHR(
        &self,
        device: VkDevice,
        videoSession: VkVideoSessionKHR,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyVideoSessionKHR
                .expect("Vulkan command vkDestroyVideoSessionKHR is not loaded"))(
                device,
                videoSession,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_khr_video_queue")]
    pub unsafe fn vkCreateVideoSessionParametersKHR(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkVideoSessionParametersCreateInfoKHR,
        pAllocator: *const VkAllocationCallbacks,
        pVideoSessionParameters: *mut VkVideoSessionParametersKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateVideoSessionParametersKHR
                .expect("Vulkan command vkCreateVideoSessionParametersKHR is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pVideoSessionParameters,
            )
        }
    }
    #[cfg(feature = "vk_khr_video_queue")]
    pub unsafe fn vkUpdateVideoSessionParametersKHR(
        &self,
        device: VkDevice,
        videoSessionParameters: VkVideoSessionParametersKHR,
        pUpdateInfo: *const VkVideoSessionParametersUpdateInfoKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkUpdateVideoSessionParametersKHR
                .expect("Vulkan command vkUpdateVideoSessionParametersKHR is not loaded"))(
                device,
                videoSessionParameters,
                pUpdateInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_video_encode_queue")]
    pub unsafe fn vkGetEncodedVideoSessionParametersKHR(
        &self,
        device: VkDevice,
        pVideoSessionParametersInfo: *const VkVideoEncodeSessionParametersGetInfoKHR,
        pFeedbackInfo: *mut VkVideoEncodeSessionParametersFeedbackInfoKHR,
        pDataSize: *mut usize,
        pData: *mut c_void,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetEncodedVideoSessionParametersKHR
                .expect("Vulkan command vkGetEncodedVideoSessionParametersKHR is not loaded"))(
                device,
                pVideoSessionParametersInfo,
                pFeedbackInfo,
                pDataSize,
                pData,
            )
        }
    }
    #[cfg(feature = "vk_khr_video_queue")]
    pub unsafe fn vkDestroyVideoSessionParametersKHR(
        &self,
        device: VkDevice,
        videoSessionParameters: VkVideoSessionParametersKHR,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyVideoSessionParametersKHR
                .expect("Vulkan command vkDestroyVideoSessionParametersKHR is not loaded"))(
                device,
                videoSessionParameters,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_khr_video_queue")]
    pub unsafe fn vkGetVideoSessionMemoryRequirementsKHR(
        &self,
        device: VkDevice,
        videoSession: VkVideoSessionKHR,
        pMemoryRequirementsCount: *mut u32,
        pMemoryRequirements: *mut VkVideoSessionMemoryRequirementsKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetVideoSessionMemoryRequirementsKHR
                .expect("Vulkan command vkGetVideoSessionMemoryRequirementsKHR is not loaded"))(
                device,
                videoSession,
                pMemoryRequirementsCount,
                pMemoryRequirements,
            )
        }
    }
    #[cfg(feature = "vk_khr_video_queue")]
    pub unsafe fn vkBindVideoSessionMemoryKHR(
        &self,
        device: VkDevice,
        videoSession: VkVideoSessionKHR,
        bindSessionMemoryInfoCount: u32,
        pBindSessionMemoryInfos: *const VkBindVideoSessionMemoryInfoKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkBindVideoSessionMemoryKHR
                .expect("Vulkan command vkBindVideoSessionMemoryKHR is not loaded"))(
                device,
                videoSession,
                bindSessionMemoryInfoCount,
                pBindSessionMemoryInfos,
            )
        }
    }
    #[cfg(feature = "vk_khr_video_decode_queue")]
    pub unsafe fn vkCmdDecodeVideoKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pDecodeInfo: *const VkVideoDecodeInfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdDecodeVideoKHR
                .expect("Vulkan command vkCmdDecodeVideoKHR is not loaded"))(
                commandBuffer,
                pDecodeInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_video_queue")]
    pub unsafe fn vkCmdBeginVideoCodingKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pBeginInfo: *const VkVideoBeginCodingInfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdBeginVideoCodingKHR
                .expect("Vulkan command vkCmdBeginVideoCodingKHR is not loaded"))(
                commandBuffer,
                pBeginInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_video_queue")]
    pub unsafe fn vkCmdControlVideoCodingKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pCodingControlInfo: *const VkVideoCodingControlInfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdControlVideoCodingKHR
                .expect("Vulkan command vkCmdControlVideoCodingKHR is not loaded"))(
                commandBuffer,
                pCodingControlInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_video_queue")]
    pub unsafe fn vkCmdEndVideoCodingKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pEndCodingInfo: *const VkVideoEndCodingInfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdEndVideoCodingKHR
                .expect("Vulkan command vkCmdEndVideoCodingKHR is not loaded"))(
                commandBuffer,
                pEndCodingInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_video_encode_queue")]
    pub unsafe fn vkCmdEncodeVideoKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pEncodeInfo: *const VkVideoEncodeInfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdEncodeVideoKHR
                .expect("Vulkan command vkCmdEncodeVideoKHR is not loaded"))(
                commandBuffer,
                pEncodeInfo,
            )
        }
    }
    #[cfg(feature = "vk_nv_memory_decompression")]
    pub unsafe fn vkCmdDecompressMemoryNV(
        &self,
        commandBuffer: VkCommandBuffer,
        decompressRegionCount: u32,
        pDecompressMemoryRegions: *const VkDecompressMemoryRegionNV,
    ) {
        unsafe {
            (self
                .vkCmdDecompressMemoryNV
                .expect("Vulkan command vkCmdDecompressMemoryNV is not loaded"))(
                commandBuffer,
                decompressRegionCount,
                pDecompressMemoryRegions,
            )
        }
    }
    #[cfg(feature = "vk_nv_memory_decompression")]
    pub unsafe fn vkCmdDecompressMemoryIndirectCountNV(
        &self,
        commandBuffer: VkCommandBuffer,
        indirectCommandsAddress: VkDeviceAddress,
        indirectCommandsCountAddress: VkDeviceAddress,
        stride: u32,
    ) {
        unsafe {
            (self
                .vkCmdDecompressMemoryIndirectCountNV
                .expect("Vulkan command vkCmdDecompressMemoryIndirectCountNV is not loaded"))(
                commandBuffer,
                indirectCommandsAddress,
                indirectCommandsCountAddress,
                stride,
            )
        }
    }
    #[cfg(feature = "vk_nv_partitioned_acceleration_structure")]
    pub unsafe fn vkGetPartitionedAccelerationStructuresBuildSizesNV(
        &self,
        device: VkDevice,
        pInfo: *const VkPartitionedAccelerationStructureInstancesInputNV,
        pSizeInfo: *mut VkAccelerationStructureBuildSizesInfoKHR,
    ) {
        unsafe {
            (self.vkGetPartitionedAccelerationStructuresBuildSizesNV.expect("Vulkan command vkGetPartitionedAccelerationStructuresBuildSizesNV is not loaded"))(device, pInfo, pSizeInfo)
        }
    }
    #[cfg(feature = "vk_nv_partitioned_acceleration_structure")]
    pub unsafe fn vkCmdBuildPartitionedAccelerationStructuresNV(
        &self,
        commandBuffer: VkCommandBuffer,
        pBuildInfo: *const VkBuildPartitionedAccelerationStructureInfoNV,
    ) {
        unsafe {
            (self.vkCmdBuildPartitionedAccelerationStructuresNV.expect(
                "Vulkan command vkCmdBuildPartitionedAccelerationStructuresNV is not loaded",
            ))(commandBuffer, pBuildInfo)
        }
    }
    #[cfg(feature = "vk_ext_memory_decompression")]
    pub unsafe fn vkCmdDecompressMemoryEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pDecompressMemoryInfoEXT: *const VkDecompressMemoryInfoEXT,
    ) {
        unsafe {
            (self
                .vkCmdDecompressMemoryEXT
                .expect("Vulkan command vkCmdDecompressMemoryEXT is not loaded"))(
                commandBuffer,
                pDecompressMemoryInfoEXT,
            )
        }
    }
    #[cfg(feature = "vk_ext_memory_decompression")]
    pub unsafe fn vkCmdDecompressMemoryIndirectCountEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        decompressionMethod: VkMemoryDecompressionMethodFlagsEXT,
        indirectCommandsAddress: VkDeviceAddress,
        indirectCommandsCountAddress: VkDeviceAddress,
        maxDecompressionCount: u32,
        stride: u32,
    ) {
        unsafe {
            (self
                .vkCmdDecompressMemoryIndirectCountEXT
                .expect("Vulkan command vkCmdDecompressMemoryIndirectCountEXT is not loaded"))(
                commandBuffer,
                decompressionMethod,
                indirectCommandsAddress,
                indirectCommandsCountAddress,
                maxDecompressionCount,
                stride,
            )
        }
    }
    #[cfg(feature = "vk_nvx_binary_import")]
    pub unsafe fn vkCreateCuModuleNVX(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkCuModuleCreateInfoNVX,
        pAllocator: *const VkAllocationCallbacks,
        pModule: *mut VkCuModuleNVX,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateCuModuleNVX
                .expect("Vulkan command vkCreateCuModuleNVX is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pModule,
            )
        }
    }
    #[cfg(feature = "vk_nvx_binary_import")]
    pub unsafe fn vkCreateCuFunctionNVX(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkCuFunctionCreateInfoNVX,
        pAllocator: *const VkAllocationCallbacks,
        pFunction: *mut VkCuFunctionNVX,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateCuFunctionNVX
                .expect("Vulkan command vkCreateCuFunctionNVX is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pFunction,
            )
        }
    }
    #[cfg(feature = "vk_nvx_binary_import")]
    pub unsafe fn vkDestroyCuModuleNVX(
        &self,
        device: VkDevice,
        module: VkCuModuleNVX,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyCuModuleNVX
                .expect("Vulkan command vkDestroyCuModuleNVX is not loaded"))(
                device, module, pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_nvx_binary_import")]
    pub unsafe fn vkDestroyCuFunctionNVX(
        &self,
        device: VkDevice,
        function: VkCuFunctionNVX,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyCuFunctionNVX
                .expect("Vulkan command vkDestroyCuFunctionNVX is not loaded"))(
                device, function, pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_nvx_binary_import")]
    pub unsafe fn vkCmdCuLaunchKernelNVX(
        &self,
        commandBuffer: VkCommandBuffer,
        pLaunchInfo: *const VkCuLaunchInfoNVX,
    ) {
        unsafe {
            (self
                .vkCmdCuLaunchKernelNVX
                .expect("Vulkan command vkCmdCuLaunchKernelNVX is not loaded"))(
                commandBuffer,
                pLaunchInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_descriptor_buffer")]
    pub unsafe fn vkGetDescriptorSetLayoutSizeEXT(
        &self,
        device: VkDevice,
        layout: VkDescriptorSetLayout,
        pLayoutSizeInBytes: *mut VkDeviceSize,
    ) {
        unsafe {
            (self
                .vkGetDescriptorSetLayoutSizeEXT
                .expect("Vulkan command vkGetDescriptorSetLayoutSizeEXT is not loaded"))(
                device,
                layout,
                pLayoutSizeInBytes,
            )
        }
    }
    #[cfg(feature = "vk_ext_descriptor_buffer")]
    pub unsafe fn vkGetDescriptorSetLayoutBindingOffsetEXT(
        &self,
        device: VkDevice,
        layout: VkDescriptorSetLayout,
        binding: u32,
        pOffset: *mut VkDeviceSize,
    ) {
        unsafe {
            (self
                .vkGetDescriptorSetLayoutBindingOffsetEXT
                .expect("Vulkan command vkGetDescriptorSetLayoutBindingOffsetEXT is not loaded"))(
                device, layout, binding, pOffset,
            )
        }
    }
    #[cfg(feature = "vk_ext_descriptor_buffer")]
    pub unsafe fn vkGetDescriptorEXT(
        &self,
        device: VkDevice,
        pDescriptorInfo: *const VkDescriptorGetInfoEXT,
        dataSize: usize,
        pDescriptor: *mut c_void,
    ) {
        unsafe {
            (self
                .vkGetDescriptorEXT
                .expect("Vulkan command vkGetDescriptorEXT is not loaded"))(
                device,
                pDescriptorInfo,
                dataSize,
                pDescriptor,
            )
        }
    }
    #[cfg(feature = "vk_ext_descriptor_buffer")]
    pub unsafe fn vkCmdBindDescriptorBuffersEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        bufferCount: u32,
        pBindingInfos: *const VkDescriptorBufferBindingInfoEXT,
    ) {
        unsafe {
            (self
                .vkCmdBindDescriptorBuffersEXT
                .expect("Vulkan command vkCmdBindDescriptorBuffersEXT is not loaded"))(
                commandBuffer,
                bufferCount,
                pBindingInfos,
            )
        }
    }
    #[cfg(feature = "vk_ext_descriptor_buffer")]
    pub unsafe fn vkCmdSetDescriptorBufferOffsetsEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pipelineBindPoint: VkPipelineBindPoint,
        layout: VkPipelineLayout,
        firstSet: u32,
        setCount: u32,
        pBufferIndices: *const u32,
        pOffsets: *const VkDeviceSize,
    ) {
        unsafe {
            (self
                .vkCmdSetDescriptorBufferOffsetsEXT
                .expect("Vulkan command vkCmdSetDescriptorBufferOffsetsEXT is not loaded"))(
                commandBuffer,
                pipelineBindPoint,
                layout,
                firstSet,
                setCount,
                pBufferIndices,
                pOffsets,
            )
        }
    }
    #[cfg(feature = "vk_ext_descriptor_buffer")]
    pub unsafe fn vkCmdBindDescriptorBufferEmbeddedSamplersEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pipelineBindPoint: VkPipelineBindPoint,
        layout: VkPipelineLayout,
        set: u32,
    ) {
        unsafe {
            (self.vkCmdBindDescriptorBufferEmbeddedSamplersEXT.expect(
                "Vulkan command vkCmdBindDescriptorBufferEmbeddedSamplersEXT is not loaded",
            ))(commandBuffer, pipelineBindPoint, layout, set)
        }
    }
    #[cfg(feature = "vk_ext_descriptor_buffer")]
    pub unsafe fn vkGetBufferOpaqueCaptureDescriptorDataEXT(
        &self,
        device: VkDevice,
        pInfo: *const VkBufferCaptureDescriptorDataInfoEXT,
        pData: *mut c_void,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetBufferOpaqueCaptureDescriptorDataEXT
                .expect("Vulkan command vkGetBufferOpaqueCaptureDescriptorDataEXT is not loaded"))(
                device, pInfo, pData,
            )
        }
    }
    #[cfg(feature = "vk_ext_descriptor_buffer")]
    pub unsafe fn vkGetImageOpaqueCaptureDescriptorDataEXT(
        &self,
        device: VkDevice,
        pInfo: *const VkImageCaptureDescriptorDataInfoEXT,
        pData: *mut c_void,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetImageOpaqueCaptureDescriptorDataEXT
                .expect("Vulkan command vkGetImageOpaqueCaptureDescriptorDataEXT is not loaded"))(
                device, pInfo, pData,
            )
        }
    }
    #[cfg(feature = "vk_ext_descriptor_buffer")]
    pub unsafe fn vkGetImageViewOpaqueCaptureDescriptorDataEXT(
        &self,
        device: VkDevice,
        pInfo: *const VkImageViewCaptureDescriptorDataInfoEXT,
        pData: *mut c_void,
    ) -> VkResult {
        unsafe {
            (self.vkGetImageViewOpaqueCaptureDescriptorDataEXT.expect(
                "Vulkan command vkGetImageViewOpaqueCaptureDescriptorDataEXT is not loaded",
            ))(device, pInfo, pData)
        }
    }
    #[cfg(feature = "vk_ext_descriptor_buffer")]
    pub unsafe fn vkGetSamplerOpaqueCaptureDescriptorDataEXT(
        &self,
        device: VkDevice,
        pInfo: *const VkSamplerCaptureDescriptorDataInfoEXT,
        pData: *mut c_void,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetSamplerOpaqueCaptureDescriptorDataEXT
                .expect("Vulkan command vkGetSamplerOpaqueCaptureDescriptorDataEXT is not loaded"))(
                device, pInfo, pData,
            )
        }
    }
    #[cfg(all(
        feature = "vk_ext_descriptor_buffer",
        any(
            feature = "vk_khr_acceleration_structure",
            feature = "vk_nv_ray_tracing"
        )
    ))]
    pub unsafe fn vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
        &self,
        device: VkDevice,
        pInfo: *const VkAccelerationStructureCaptureDescriptorDataInfoEXT,
        pData: *mut c_void,
    ) -> VkResult {
        unsafe {
            (self.vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT.expect("Vulkan command vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT is not loaded"))(device, pInfo, pData)
        }
    }
    #[cfg(feature = "vk_ext_pageable_device_local_memory")]
    pub unsafe fn vkSetDeviceMemoryPriorityEXT(
        &self,
        device: VkDevice,
        memory: VkDeviceMemory,
        priority: f32,
    ) {
        unsafe {
            (self
                .vkSetDeviceMemoryPriorityEXT
                .expect("Vulkan command vkSetDeviceMemoryPriorityEXT is not loaded"))(
                device, memory, priority,
            )
        }
    }
    #[cfg(feature = "vk_khr_present_wait2")]
    pub unsafe fn vkWaitForPresent2KHR(
        &self,
        device: VkDevice,
        swapchain: VkSwapchainKHR,
        pPresentWait2Info: *const VkPresentWait2InfoKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkWaitForPresent2KHR
                .expect("Vulkan command vkWaitForPresent2KHR is not loaded"))(
                device,
                swapchain,
                pPresentWait2Info,
            )
        }
    }
    #[cfg(feature = "vk_khr_present_wait")]
    pub unsafe fn vkWaitForPresentKHR(
        &self,
        device: VkDevice,
        swapchain: VkSwapchainKHR,
        presentId: u64,
        timeout: u64,
    ) -> VkResult {
        unsafe {
            (self
                .vkWaitForPresentKHR
                .expect("Vulkan command vkWaitForPresentKHR is not loaded"))(
                device, swapchain, presentId, timeout,
            )
        }
    }
    #[cfg(feature = "vk_fuchsia_buffer_collection")]
    pub unsafe fn vkCreateBufferCollectionFUCHSIA(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkBufferCollectionCreateInfoFUCHSIA,
        pAllocator: *const VkAllocationCallbacks,
        pCollection: *mut VkBufferCollectionFUCHSIA,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateBufferCollectionFUCHSIA
                .expect("Vulkan command vkCreateBufferCollectionFUCHSIA is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pCollection,
            )
        }
    }
    #[cfg(feature = "vk_fuchsia_buffer_collection")]
    pub unsafe fn vkSetBufferCollectionBufferConstraintsFUCHSIA(
        &self,
        device: VkDevice,
        collection: VkBufferCollectionFUCHSIA,
        pBufferConstraintsInfo: *const VkBufferConstraintsInfoFUCHSIA,
    ) -> VkResult {
        unsafe {
            (self.vkSetBufferCollectionBufferConstraintsFUCHSIA.expect(
                "Vulkan command vkSetBufferCollectionBufferConstraintsFUCHSIA is not loaded",
            ))(device, collection, pBufferConstraintsInfo)
        }
    }
    #[cfg(feature = "vk_fuchsia_buffer_collection")]
    pub unsafe fn vkSetBufferCollectionImageConstraintsFUCHSIA(
        &self,
        device: VkDevice,
        collection: VkBufferCollectionFUCHSIA,
        pImageConstraintsInfo: *const VkImageConstraintsInfoFUCHSIA,
    ) -> VkResult {
        unsafe {
            (self.vkSetBufferCollectionImageConstraintsFUCHSIA.expect(
                "Vulkan command vkSetBufferCollectionImageConstraintsFUCHSIA is not loaded",
            ))(device, collection, pImageConstraintsInfo)
        }
    }
    #[cfg(feature = "vk_fuchsia_buffer_collection")]
    pub unsafe fn vkDestroyBufferCollectionFUCHSIA(
        &self,
        device: VkDevice,
        collection: VkBufferCollectionFUCHSIA,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyBufferCollectionFUCHSIA
                .expect("Vulkan command vkDestroyBufferCollectionFUCHSIA is not loaded"))(
                device, collection, pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_fuchsia_buffer_collection")]
    pub unsafe fn vkGetBufferCollectionPropertiesFUCHSIA(
        &self,
        device: VkDevice,
        collection: VkBufferCollectionFUCHSIA,
        pProperties: *mut VkBufferCollectionPropertiesFUCHSIA,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetBufferCollectionPropertiesFUCHSIA
                .expect("Vulkan command vkGetBufferCollectionPropertiesFUCHSIA is not loaded"))(
                device,
                collection,
                pProperties,
            )
        }
    }
    #[cfg(feature = "vk_nv_cuda_kernel_launch")]
    pub unsafe fn vkCreateCudaModuleNV(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkCudaModuleCreateInfoNV,
        pAllocator: *const VkAllocationCallbacks,
        pModule: *mut VkCudaModuleNV,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateCudaModuleNV
                .expect("Vulkan command vkCreateCudaModuleNV is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pModule,
            )
        }
    }
    #[cfg(feature = "vk_nv_cuda_kernel_launch")]
    pub unsafe fn vkGetCudaModuleCacheNV(
        &self,
        device: VkDevice,
        module: VkCudaModuleNV,
        pCacheSize: *mut usize,
        pCacheData: *mut c_void,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetCudaModuleCacheNV
                .expect("Vulkan command vkGetCudaModuleCacheNV is not loaded"))(
                device, module, pCacheSize, pCacheData,
            )
        }
    }
    #[cfg(feature = "vk_nv_cuda_kernel_launch")]
    pub unsafe fn vkCreateCudaFunctionNV(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkCudaFunctionCreateInfoNV,
        pAllocator: *const VkAllocationCallbacks,
        pFunction: *mut VkCudaFunctionNV,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateCudaFunctionNV
                .expect("Vulkan command vkCreateCudaFunctionNV is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pFunction,
            )
        }
    }
    #[cfg(feature = "vk_nv_cuda_kernel_launch")]
    pub unsafe fn vkDestroyCudaModuleNV(
        &self,
        device: VkDevice,
        module: VkCudaModuleNV,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyCudaModuleNV
                .expect("Vulkan command vkDestroyCudaModuleNV is not loaded"))(
                device, module, pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_nv_cuda_kernel_launch")]
    pub unsafe fn vkDestroyCudaFunctionNV(
        &self,
        device: VkDevice,
        function: VkCudaFunctionNV,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyCudaFunctionNV
                .expect("Vulkan command vkDestroyCudaFunctionNV is not loaded"))(
                device, function, pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_nv_cuda_kernel_launch")]
    pub unsafe fn vkCmdCudaLaunchKernelNV(
        &self,
        commandBuffer: VkCommandBuffer,
        pLaunchInfo: *const VkCudaLaunchInfoNV,
    ) {
        unsafe {
            (self
                .vkCmdCudaLaunchKernelNV
                .expect("Vulkan command vkCmdCudaLaunchKernelNV is not loaded"))(
                commandBuffer,
                pLaunchInfo,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdBeginRendering(
        &self,
        commandBuffer: VkCommandBuffer,
        pRenderingInfo: *const VkRenderingInfo,
    ) {
        unsafe {
            (self
                .vkCmdBeginRendering
                .expect("Vulkan command vkCmdBeginRendering is not loaded"))(
                commandBuffer,
                pRenderingInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_dynamic_rendering")]
    pub unsafe fn vkCmdBeginRenderingKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pRenderingInfo: *const VkRenderingInfo,
    ) {
        unsafe {
            (self
                .vkCmdBeginRenderingKHR
                .expect("Vulkan command vkCmdBeginRenderingKHR is not loaded"))(
                commandBuffer,
                pRenderingInfo,
            )
        }
    }
    #[cfg(feature = "core_1_3")]
    pub unsafe fn vkCmdEndRendering(&self, commandBuffer: VkCommandBuffer) {
        unsafe {
            (self
                .vkCmdEndRendering
                .expect("Vulkan command vkCmdEndRendering is not loaded"))(commandBuffer)
        }
    }
    #[cfg(feature = "vk_khr_maintenance10")]
    pub unsafe fn vkCmdEndRendering2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pRenderingEndInfo: *const VkRenderingEndInfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdEndRendering2KHR
                .expect("Vulkan command vkCmdEndRendering2KHR is not loaded"))(
                commandBuffer,
                pRenderingEndInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_fragment_density_map_offset")]
    pub unsafe fn vkCmdEndRendering2EXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pRenderingEndInfo: *const VkRenderingEndInfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdEndRendering2EXT
                .expect("Vulkan command vkCmdEndRendering2EXT is not loaded"))(
                commandBuffer,
                pRenderingEndInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_dynamic_rendering")]
    pub unsafe fn vkCmdEndRenderingKHR(&self, commandBuffer: VkCommandBuffer) {
        unsafe {
            (self
                .vkCmdEndRenderingKHR
                .expect("Vulkan command vkCmdEndRenderingKHR is not loaded"))(
                commandBuffer
            )
        }
    }
    #[cfg(feature = "vk_valve_descriptor_set_host_mapping")]
    pub unsafe fn vkGetDescriptorSetLayoutHostMappingInfoVALVE(
        &self,
        device: VkDevice,
        pBindingReference: *const VkDescriptorSetBindingReferenceVALVE,
        pHostMapping: *mut VkDescriptorSetLayoutHostMappingInfoVALVE,
    ) {
        unsafe {
            (self.vkGetDescriptorSetLayoutHostMappingInfoVALVE.expect(
                "Vulkan command vkGetDescriptorSetLayoutHostMappingInfoVALVE is not loaded",
            ))(device, pBindingReference, pHostMapping)
        }
    }
    #[cfg(feature = "vk_valve_descriptor_set_host_mapping")]
    pub unsafe fn vkGetDescriptorSetHostMappingVALVE(
        &self,
        device: VkDevice,
        descriptorSet: VkDescriptorSet,
        ppData: *mut *mut c_void,
    ) {
        unsafe {
            (self
                .vkGetDescriptorSetHostMappingVALVE
                .expect("Vulkan command vkGetDescriptorSetHostMappingVALVE is not loaded"))(
                device,
                descriptorSet,
                ppData,
            )
        }
    }
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub unsafe fn vkCreateMicromapEXT(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkMicromapCreateInfoEXT,
        pAllocator: *const VkAllocationCallbacks,
        pMicromap: *mut VkMicromapEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateMicromapEXT
                .expect("Vulkan command vkCreateMicromapEXT is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pMicromap,
            )
        }
    }
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub unsafe fn vkCmdBuildMicromapsEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        infoCount: u32,
        pInfos: *const VkMicromapBuildInfoEXT,
    ) {
        unsafe {
            (self
                .vkCmdBuildMicromapsEXT
                .expect("Vulkan command vkCmdBuildMicromapsEXT is not loaded"))(
                commandBuffer,
                infoCount,
                pInfos,
            )
        }
    }
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub unsafe fn vkBuildMicromapsEXT(
        &self,
        device: VkDevice,
        deferredOperation: VkDeferredOperationKHR,
        infoCount: u32,
        pInfos: *const VkMicromapBuildInfoEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkBuildMicromapsEXT
                .expect("Vulkan command vkBuildMicromapsEXT is not loaded"))(
                device,
                deferredOperation,
                infoCount,
                pInfos,
            )
        }
    }
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub unsafe fn vkDestroyMicromapEXT(
        &self,
        device: VkDevice,
        micromap: VkMicromapEXT,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyMicromapEXT
                .expect("Vulkan command vkDestroyMicromapEXT is not loaded"))(
                device, micromap, pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub unsafe fn vkCmdCopyMicromapEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pInfo: *const VkCopyMicromapInfoEXT,
    ) {
        unsafe {
            (self
                .vkCmdCopyMicromapEXT
                .expect("Vulkan command vkCmdCopyMicromapEXT is not loaded"))(
                commandBuffer, pInfo
            )
        }
    }
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub unsafe fn vkCopyMicromapEXT(
        &self,
        device: VkDevice,
        deferredOperation: VkDeferredOperationKHR,
        pInfo: *const VkCopyMicromapInfoEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkCopyMicromapEXT
                .expect("Vulkan command vkCopyMicromapEXT is not loaded"))(
                device,
                deferredOperation,
                pInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub unsafe fn vkCmdCopyMicromapToMemoryEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pInfo: *const VkCopyMicromapToMemoryInfoEXT,
    ) {
        unsafe {
            (self
                .vkCmdCopyMicromapToMemoryEXT
                .expect("Vulkan command vkCmdCopyMicromapToMemoryEXT is not loaded"))(
                commandBuffer,
                pInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub unsafe fn vkCopyMicromapToMemoryEXT(
        &self,
        device: VkDevice,
        deferredOperation: VkDeferredOperationKHR,
        pInfo: *const VkCopyMicromapToMemoryInfoEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkCopyMicromapToMemoryEXT
                .expect("Vulkan command vkCopyMicromapToMemoryEXT is not loaded"))(
                device,
                deferredOperation,
                pInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub unsafe fn vkCmdCopyMemoryToMicromapEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pInfo: *const VkCopyMemoryToMicromapInfoEXT,
    ) {
        unsafe {
            (self
                .vkCmdCopyMemoryToMicromapEXT
                .expect("Vulkan command vkCmdCopyMemoryToMicromapEXT is not loaded"))(
                commandBuffer,
                pInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub unsafe fn vkCopyMemoryToMicromapEXT(
        &self,
        device: VkDevice,
        deferredOperation: VkDeferredOperationKHR,
        pInfo: *const VkCopyMemoryToMicromapInfoEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkCopyMemoryToMicromapEXT
                .expect("Vulkan command vkCopyMemoryToMicromapEXT is not loaded"))(
                device,
                deferredOperation,
                pInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub unsafe fn vkCmdWriteMicromapsPropertiesEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        micromapCount: u32,
        pMicromaps: *const VkMicromapEXT,
        queryType: VkQueryType,
        queryPool: VkQueryPool,
        firstQuery: u32,
    ) {
        unsafe {
            (self
                .vkCmdWriteMicromapsPropertiesEXT
                .expect("Vulkan command vkCmdWriteMicromapsPropertiesEXT is not loaded"))(
                commandBuffer,
                micromapCount,
                pMicromaps,
                queryType,
                queryPool,
                firstQuery,
            )
        }
    }
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub unsafe fn vkWriteMicromapsPropertiesEXT(
        &self,
        device: VkDevice,
        micromapCount: u32,
        pMicromaps: *const VkMicromapEXT,
        queryType: VkQueryType,
        dataSize: usize,
        pData: *mut c_void,
        stride: usize,
    ) -> VkResult {
        unsafe {
            (self
                .vkWriteMicromapsPropertiesEXT
                .expect("Vulkan command vkWriteMicromapsPropertiesEXT is not loaded"))(
                device,
                micromapCount,
                pMicromaps,
                queryType,
                dataSize,
                pData,
                stride,
            )
        }
    }
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub unsafe fn vkGetDeviceMicromapCompatibilityEXT(
        &self,
        device: VkDevice,
        pVersionInfo: *const VkMicromapVersionInfoEXT,
        pCompatibility: *mut VkAccelerationStructureCompatibilityKHR,
    ) {
        unsafe {
            (self
                .vkGetDeviceMicromapCompatibilityEXT
                .expect("Vulkan command vkGetDeviceMicromapCompatibilityEXT is not loaded"))(
                device,
                pVersionInfo,
                pCompatibility,
            )
        }
    }
    #[cfg(feature = "vk_ext_opacity_micromap")]
    pub unsafe fn vkGetMicromapBuildSizesEXT(
        &self,
        device: VkDevice,
        buildType: VkAccelerationStructureBuildTypeKHR,
        pBuildInfo: *const VkMicromapBuildInfoEXT,
        pSizeInfo: *mut VkMicromapBuildSizesInfoEXT,
    ) {
        unsafe {
            (self
                .vkGetMicromapBuildSizesEXT
                .expect("Vulkan command vkGetMicromapBuildSizesEXT is not loaded"))(
                device, buildType, pBuildInfo, pSizeInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_shader_module_identifier")]
    pub unsafe fn vkGetShaderModuleIdentifierEXT(
        &self,
        device: VkDevice,
        shaderModule: VkShaderModule,
        pIdentifier: *mut VkShaderModuleIdentifierEXT,
    ) {
        unsafe {
            (self
                .vkGetShaderModuleIdentifierEXT
                .expect("Vulkan command vkGetShaderModuleIdentifierEXT is not loaded"))(
                device,
                shaderModule,
                pIdentifier,
            )
        }
    }
    #[cfg(feature = "vk_ext_shader_module_identifier")]
    pub unsafe fn vkGetShaderModuleCreateInfoIdentifierEXT(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkShaderModuleCreateInfo,
        pIdentifier: *mut VkShaderModuleIdentifierEXT,
    ) {
        unsafe {
            (self
                .vkGetShaderModuleCreateInfoIdentifierEXT
                .expect("Vulkan command vkGetShaderModuleCreateInfoIdentifierEXT is not loaded"))(
                device,
                pCreateInfo,
                pIdentifier,
            )
        }
    }
    #[cfg(feature = "core_1_4")]
    pub unsafe fn vkGetImageSubresourceLayout2(
        &self,
        device: VkDevice,
        image: VkImage,
        pSubresource: *const VkImageSubresource2,
        pLayout: *mut VkSubresourceLayout2,
    ) {
        unsafe {
            (self
                .vkGetImageSubresourceLayout2
                .expect("Vulkan command vkGetImageSubresourceLayout2 is not loaded"))(
                device,
                image,
                pSubresource,
                pLayout,
            )
        }
    }
    #[cfg(feature = "vk_khr_maintenance5")]
    pub unsafe fn vkGetImageSubresourceLayout2KHR(
        &self,
        device: VkDevice,
        image: VkImage,
        pSubresource: *const VkImageSubresource2,
        pLayout: *mut VkSubresourceLayout2,
    ) {
        unsafe {
            (self
                .vkGetImageSubresourceLayout2KHR
                .expect("Vulkan command vkGetImageSubresourceLayout2KHR is not loaded"))(
                device,
                image,
                pSubresource,
                pLayout,
            )
        }
    }
    #[cfg(any(
        feature = "vk_ext_host_image_copy",
        feature = "vk_ext_image_compression_control"
    ))]
    pub unsafe fn vkGetImageSubresourceLayout2EXT(
        &self,
        device: VkDevice,
        image: VkImage,
        pSubresource: *const VkImageSubresource2,
        pLayout: *mut VkSubresourceLayout2,
    ) {
        unsafe {
            (self
                .vkGetImageSubresourceLayout2EXT
                .expect("Vulkan command vkGetImageSubresourceLayout2EXT is not loaded"))(
                device,
                image,
                pSubresource,
                pLayout,
            )
        }
    }
    #[cfg(feature = "vk_ext_pipeline_properties")]
    pub unsafe fn vkGetPipelinePropertiesEXT(
        &self,
        device: VkDevice,
        pPipelineInfo: *const VkPipelineInfoKHR,
        pPipelineProperties: *mut VkBaseOutStructure,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPipelinePropertiesEXT
                .expect("Vulkan command vkGetPipelinePropertiesEXT is not loaded"))(
                device,
                pPipelineInfo,
                pPipelineProperties,
            )
        }
    }
    #[cfg(feature = "vk_ext_metal_objects")]
    pub unsafe fn vkExportMetalObjectsEXT(
        &self,
        device: VkDevice,
        pMetalObjectsInfo: *mut VkExportMetalObjectsInfoEXT,
    ) {
        unsafe {
            (self
                .vkExportMetalObjectsEXT
                .expect("Vulkan command vkExportMetalObjectsEXT is not loaded"))(
                device,
                pMetalObjectsInfo,
            )
        }
    }
    #[cfg(feature = "vk_qcom_tile_memory_heap")]
    pub unsafe fn vkCmdBindTileMemoryQCOM(
        &self,
        commandBuffer: VkCommandBuffer,
        pTileMemoryBindInfo: *const VkTileMemoryBindInfoQCOM,
    ) {
        unsafe {
            (self
                .vkCmdBindTileMemoryQCOM
                .expect("Vulkan command vkCmdBindTileMemoryQCOM is not loaded"))(
                commandBuffer,
                pTileMemoryBindInfo,
            )
        }
    }
    #[cfg(feature = "vk_qcom_tile_properties")]
    pub unsafe fn vkGetFramebufferTilePropertiesQCOM(
        &self,
        device: VkDevice,
        framebuffer: VkFramebuffer,
        pPropertiesCount: *mut u32,
        pProperties: *mut VkTilePropertiesQCOM,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetFramebufferTilePropertiesQCOM
                .expect("Vulkan command vkGetFramebufferTilePropertiesQCOM is not loaded"))(
                device,
                framebuffer,
                pPropertiesCount,
                pProperties,
            )
        }
    }
    #[cfg(feature = "vk_qcom_tile_properties")]
    pub unsafe fn vkGetDynamicRenderingTilePropertiesQCOM(
        &self,
        device: VkDevice,
        pRenderingInfo: *const VkRenderingInfo,
        pProperties: *mut VkTilePropertiesQCOM,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetDynamicRenderingTilePropertiesQCOM
                .expect("Vulkan command vkGetDynamicRenderingTilePropertiesQCOM is not loaded"))(
                device,
                pRenderingInfo,
                pProperties,
            )
        }
    }
    #[cfg(feature = "vk_nv_optical_flow")]
    pub unsafe fn vkCreateOpticalFlowSessionNV(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkOpticalFlowSessionCreateInfoNV,
        pAllocator: *const VkAllocationCallbacks,
        pSession: *mut VkOpticalFlowSessionNV,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateOpticalFlowSessionNV
                .expect("Vulkan command vkCreateOpticalFlowSessionNV is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pSession,
            )
        }
    }
    #[cfg(feature = "vk_nv_optical_flow")]
    pub unsafe fn vkDestroyOpticalFlowSessionNV(
        &self,
        device: VkDevice,
        session: VkOpticalFlowSessionNV,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyOpticalFlowSessionNV
                .expect("Vulkan command vkDestroyOpticalFlowSessionNV is not loaded"))(
                device, session, pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_nv_optical_flow")]
    pub unsafe fn vkBindOpticalFlowSessionImageNV(
        &self,
        device: VkDevice,
        session: VkOpticalFlowSessionNV,
        bindingPoint: VkOpticalFlowSessionBindingPointNV,
        view: VkImageView,
        layout: VkImageLayout,
    ) -> VkResult {
        unsafe {
            (self
                .vkBindOpticalFlowSessionImageNV
                .expect("Vulkan command vkBindOpticalFlowSessionImageNV is not loaded"))(
                device,
                session,
                bindingPoint,
                view,
                layout,
            )
        }
    }
    #[cfg(feature = "vk_nv_optical_flow")]
    pub unsafe fn vkCmdOpticalFlowExecuteNV(
        &self,
        commandBuffer: VkCommandBuffer,
        session: VkOpticalFlowSessionNV,
        pExecuteInfo: *const VkOpticalFlowExecuteInfoNV,
    ) {
        unsafe {
            (self
                .vkCmdOpticalFlowExecuteNV
                .expect("Vulkan command vkCmdOpticalFlowExecuteNV is not loaded"))(
                commandBuffer,
                session,
                pExecuteInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_device_fault")]
    pub unsafe fn vkGetDeviceFaultInfoEXT(
        &self,
        device: VkDevice,
        pFaultCounts: *mut VkDeviceFaultCountsEXT,
        pFaultInfo: *mut VkDeviceFaultInfoEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetDeviceFaultInfoEXT
                .expect("Vulkan command vkGetDeviceFaultInfoEXT is not loaded"))(
                device,
                pFaultCounts,
                pFaultInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_device_fault")]
    pub unsafe fn vkGetDeviceFaultReportsKHR(
        &self,
        device: VkDevice,
        timeout: u64,
        pFaultCounts: *mut u32,
        pFaultInfo: *mut VkDeviceFaultInfoKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetDeviceFaultReportsKHR
                .expect("Vulkan command vkGetDeviceFaultReportsKHR is not loaded"))(
                device,
                timeout,
                pFaultCounts,
                pFaultInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_device_fault")]
    pub unsafe fn vkGetDeviceFaultDebugInfoKHR(
        &self,
        device: VkDevice,
        pDebugInfo: *mut VkDeviceFaultDebugInfoKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetDeviceFaultDebugInfoKHR
                .expect("Vulkan command vkGetDeviceFaultDebugInfoKHR is not loaded"))(
                device, pDebugInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_depth_bias_control")]
    pub unsafe fn vkCmdSetDepthBias2EXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pDepthBiasInfo: *const VkDepthBiasInfoEXT,
    ) {
        unsafe {
            (self
                .vkCmdSetDepthBias2EXT
                .expect("Vulkan command vkCmdSetDepthBias2EXT is not loaded"))(
                commandBuffer,
                pDepthBiasInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_swapchain_maintenance1")]
    pub unsafe fn vkReleaseSwapchainImagesKHR(
        &self,
        device: VkDevice,
        pReleaseInfo: *const VkReleaseSwapchainImagesInfoKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkReleaseSwapchainImagesKHR
                .expect("Vulkan command vkReleaseSwapchainImagesKHR is not loaded"))(
                device,
                pReleaseInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_swapchain_maintenance1")]
    pub unsafe fn vkReleaseSwapchainImagesEXT(
        &self,
        device: VkDevice,
        pReleaseInfo: *const VkReleaseSwapchainImagesInfoKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkReleaseSwapchainImagesEXT
                .expect("Vulkan command vkReleaseSwapchainImagesEXT is not loaded"))(
                device,
                pReleaseInfo,
            )
        }
    }
    #[cfg(feature = "core_1_4")]
    pub unsafe fn vkGetDeviceImageSubresourceLayout(
        &self,
        device: VkDevice,
        pInfo: *const VkDeviceImageSubresourceInfo,
        pLayout: *mut VkSubresourceLayout2,
    ) {
        unsafe {
            (self
                .vkGetDeviceImageSubresourceLayout
                .expect("Vulkan command vkGetDeviceImageSubresourceLayout is not loaded"))(
                device, pInfo, pLayout,
            )
        }
    }
    #[cfg(feature = "vk_khr_maintenance5")]
    pub unsafe fn vkGetDeviceImageSubresourceLayoutKHR(
        &self,
        device: VkDevice,
        pInfo: *const VkDeviceImageSubresourceInfo,
        pLayout: *mut VkSubresourceLayout2,
    ) {
        unsafe {
            (self
                .vkGetDeviceImageSubresourceLayoutKHR
                .expect("Vulkan command vkGetDeviceImageSubresourceLayoutKHR is not loaded"))(
                device, pInfo, pLayout,
            )
        }
    }
    #[cfg(feature = "core_1_4")]
    pub unsafe fn vkMapMemory2(
        &self,
        device: VkDevice,
        pMemoryMapInfo: *const VkMemoryMapInfo,
        ppData: *mut *mut c_void,
    ) -> VkResult {
        unsafe {
            (self
                .vkMapMemory2
                .expect("Vulkan command vkMapMemory2 is not loaded"))(
                device,
                pMemoryMapInfo,
                ppData,
            )
        }
    }
    #[cfg(feature = "vk_khr_map_memory2")]
    pub unsafe fn vkMapMemory2KHR(
        &self,
        device: VkDevice,
        pMemoryMapInfo: *const VkMemoryMapInfo,
        ppData: *mut *mut c_void,
    ) -> VkResult {
        unsafe {
            (self
                .vkMapMemory2KHR
                .expect("Vulkan command vkMapMemory2KHR is not loaded"))(
                device,
                pMemoryMapInfo,
                ppData,
            )
        }
    }
    #[cfg(feature = "core_1_4")]
    pub unsafe fn vkUnmapMemory2(
        &self,
        device: VkDevice,
        pMemoryUnmapInfo: *const VkMemoryUnmapInfo,
    ) -> VkResult {
        unsafe {
            (self
                .vkUnmapMemory2
                .expect("Vulkan command vkUnmapMemory2 is not loaded"))(
                device, pMemoryUnmapInfo
            )
        }
    }
    #[cfg(feature = "vk_khr_map_memory2")]
    pub unsafe fn vkUnmapMemory2KHR(
        &self,
        device: VkDevice,
        pMemoryUnmapInfo: *const VkMemoryUnmapInfo,
    ) -> VkResult {
        unsafe {
            (self
                .vkUnmapMemory2KHR
                .expect("Vulkan command vkUnmapMemory2KHR is not loaded"))(
                device, pMemoryUnmapInfo
            )
        }
    }
    #[cfg(feature = "vk_ext_shader_object")]
    pub unsafe fn vkCreateShadersEXT(
        &self,
        device: VkDevice,
        createInfoCount: u32,
        pCreateInfos: *const VkShaderCreateInfoEXT,
        pAllocator: *const VkAllocationCallbacks,
        pShaders: *mut VkShaderEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateShadersEXT
                .expect("Vulkan command vkCreateShadersEXT is not loaded"))(
                device,
                createInfoCount,
                pCreateInfos,
                pAllocator,
                pShaders,
            )
        }
    }
    #[cfg(feature = "vk_ext_shader_object")]
    pub unsafe fn vkDestroyShaderEXT(
        &self,
        device: VkDevice,
        shader: VkShaderEXT,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyShaderEXT
                .expect("Vulkan command vkDestroyShaderEXT is not loaded"))(
                device, shader, pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_ext_shader_object")]
    pub unsafe fn vkGetShaderBinaryDataEXT(
        &self,
        device: VkDevice,
        shader: VkShaderEXT,
        pDataSize: *mut usize,
        pData: *mut c_void,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetShaderBinaryDataEXT
                .expect("Vulkan command vkGetShaderBinaryDataEXT is not loaded"))(
                device, shader, pDataSize, pData,
            )
        }
    }
    #[cfg(feature = "vk_ext_shader_object")]
    pub unsafe fn vkCmdBindShadersEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        stageCount: u32,
        pStages: *const VkShaderStageFlagBits,
        pShaders: *const VkShaderEXT,
    ) {
        unsafe {
            (self
                .vkCmdBindShadersEXT
                .expect("Vulkan command vkCmdBindShadersEXT is not loaded"))(
                commandBuffer,
                stageCount,
                pStages,
                pShaders,
            )
        }
    }
    #[cfg(feature = "vk_ext_present_timing")]
    pub unsafe fn vkSetSwapchainPresentTimingQueueSizeEXT(
        &self,
        device: VkDevice,
        swapchain: VkSwapchainKHR,
        size: u32,
    ) -> VkResult {
        unsafe {
            (self
                .vkSetSwapchainPresentTimingQueueSizeEXT
                .expect("Vulkan command vkSetSwapchainPresentTimingQueueSizeEXT is not loaded"))(
                device, swapchain, size,
            )
        }
    }
    #[cfg(feature = "vk_ext_present_timing")]
    pub unsafe fn vkGetSwapchainTimingPropertiesEXT(
        &self,
        device: VkDevice,
        swapchain: VkSwapchainKHR,
        pSwapchainTimingProperties: *mut VkSwapchainTimingPropertiesEXT,
        pSwapchainTimingPropertiesCounter: *mut u64,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetSwapchainTimingPropertiesEXT
                .expect("Vulkan command vkGetSwapchainTimingPropertiesEXT is not loaded"))(
                device,
                swapchain,
                pSwapchainTimingProperties,
                pSwapchainTimingPropertiesCounter,
            )
        }
    }
    #[cfg(feature = "vk_ext_present_timing")]
    pub unsafe fn vkGetSwapchainTimeDomainPropertiesEXT(
        &self,
        device: VkDevice,
        swapchain: VkSwapchainKHR,
        pSwapchainTimeDomainProperties: *mut VkSwapchainTimeDomainPropertiesEXT,
        pTimeDomainsCounter: *mut u64,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetSwapchainTimeDomainPropertiesEXT
                .expect("Vulkan command vkGetSwapchainTimeDomainPropertiesEXT is not loaded"))(
                device,
                swapchain,
                pSwapchainTimeDomainProperties,
                pTimeDomainsCounter,
            )
        }
    }
    #[cfg(feature = "vk_ext_present_timing")]
    pub unsafe fn vkGetPastPresentationTimingEXT(
        &self,
        device: VkDevice,
        pPastPresentationTimingInfo: *const VkPastPresentationTimingInfoEXT,
        pPastPresentationTimingProperties: *mut VkPastPresentationTimingPropertiesEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetPastPresentationTimingEXT
                .expect("Vulkan command vkGetPastPresentationTimingEXT is not loaded"))(
                device,
                pPastPresentationTimingInfo,
                pPastPresentationTimingProperties,
            )
        }
    }
    #[cfg(feature = "vk_qnx_external_memory_screen_buffer")]
    pub unsafe fn vkGetScreenBufferPropertiesQNX(
        &self,
        device: VkDevice,
        buffer: *const _screen_buffer,
        pProperties: *mut VkScreenBufferPropertiesQNX,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetScreenBufferPropertiesQNX
                .expect("Vulkan command vkGetScreenBufferPropertiesQNX is not loaded"))(
                device,
                buffer,
                pProperties,
            )
        }
    }
    #[cfg(feature = "vk_amdx_shader_enqueue")]
    pub unsafe fn vkGetExecutionGraphPipelineScratchSizeAMDX(
        &self,
        device: VkDevice,
        executionGraph: VkPipeline,
        pSizeInfo: *mut VkExecutionGraphPipelineScratchSizeAMDX,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetExecutionGraphPipelineScratchSizeAMDX
                .expect("Vulkan command vkGetExecutionGraphPipelineScratchSizeAMDX is not loaded"))(
                device,
                executionGraph,
                pSizeInfo,
            )
        }
    }
    #[cfg(feature = "vk_amdx_shader_enqueue")]
    pub unsafe fn vkGetExecutionGraphPipelineNodeIndexAMDX(
        &self,
        device: VkDevice,
        executionGraph: VkPipeline,
        pNodeInfo: *const VkPipelineShaderStageNodeCreateInfoAMDX,
        pNodeIndex: *mut u32,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetExecutionGraphPipelineNodeIndexAMDX
                .expect("Vulkan command vkGetExecutionGraphPipelineNodeIndexAMDX is not loaded"))(
                device,
                executionGraph,
                pNodeInfo,
                pNodeIndex,
            )
        }
    }
    #[cfg(feature = "vk_amdx_shader_enqueue")]
    pub unsafe fn vkCreateExecutionGraphPipelinesAMDX(
        &self,
        device: VkDevice,
        pipelineCache: VkPipelineCache,
        createInfoCount: u32,
        pCreateInfos: *const VkExecutionGraphPipelineCreateInfoAMDX,
        pAllocator: *const VkAllocationCallbacks,
        pPipelines: *mut VkPipeline,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateExecutionGraphPipelinesAMDX
                .expect("Vulkan command vkCreateExecutionGraphPipelinesAMDX is not loaded"))(
                device,
                pipelineCache,
                createInfoCount,
                pCreateInfos,
                pAllocator,
                pPipelines,
            )
        }
    }
    #[cfg(feature = "vk_amdx_shader_enqueue")]
    pub unsafe fn vkCmdInitializeGraphScratchMemoryAMDX(
        &self,
        commandBuffer: VkCommandBuffer,
        executionGraph: VkPipeline,
        scratch: VkDeviceAddress,
        scratchSize: VkDeviceSize,
    ) {
        unsafe {
            (self
                .vkCmdInitializeGraphScratchMemoryAMDX
                .expect("Vulkan command vkCmdInitializeGraphScratchMemoryAMDX is not loaded"))(
                commandBuffer,
                executionGraph,
                scratch,
                scratchSize,
            )
        }
    }
    #[cfg(feature = "vk_amdx_shader_enqueue")]
    pub unsafe fn vkCmdDispatchGraphAMDX(
        &self,
        commandBuffer: VkCommandBuffer,
        scratch: VkDeviceAddress,
        scratchSize: VkDeviceSize,
        pCountInfo: *const VkDispatchGraphCountInfoAMDX,
    ) {
        unsafe {
            (self
                .vkCmdDispatchGraphAMDX
                .expect("Vulkan command vkCmdDispatchGraphAMDX is not loaded"))(
                commandBuffer,
                scratch,
                scratchSize,
                pCountInfo,
            )
        }
    }
    #[cfg(feature = "vk_amdx_shader_enqueue")]
    pub unsafe fn vkCmdDispatchGraphIndirectAMDX(
        &self,
        commandBuffer: VkCommandBuffer,
        scratch: VkDeviceAddress,
        scratchSize: VkDeviceSize,
        pCountInfo: *const VkDispatchGraphCountInfoAMDX,
    ) {
        unsafe {
            (self
                .vkCmdDispatchGraphIndirectAMDX
                .expect("Vulkan command vkCmdDispatchGraphIndirectAMDX is not loaded"))(
                commandBuffer,
                scratch,
                scratchSize,
                pCountInfo,
            )
        }
    }
    #[cfg(feature = "vk_amdx_shader_enqueue")]
    pub unsafe fn vkCmdDispatchGraphIndirectCountAMDX(
        &self,
        commandBuffer: VkCommandBuffer,
        scratch: VkDeviceAddress,
        scratchSize: VkDeviceSize,
        countInfo: VkDeviceAddress,
    ) {
        unsafe {
            (self
                .vkCmdDispatchGraphIndirectCountAMDX
                .expect("Vulkan command vkCmdDispatchGraphIndirectCountAMDX is not loaded"))(
                commandBuffer,
                scratch,
                scratchSize,
                countInfo,
            )
        }
    }
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub unsafe fn vkCreateGpaSessionAMD(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkGpaSessionCreateInfoAMD,
        pAllocator: *const VkAllocationCallbacks,
        pGpaSession: *mut VkGpaSessionAMD,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateGpaSessionAMD
                .expect("Vulkan command vkCreateGpaSessionAMD is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pGpaSession,
            )
        }
    }
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub unsafe fn vkDestroyGpaSessionAMD(
        &self,
        device: VkDevice,
        gpaSession: VkGpaSessionAMD,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyGpaSessionAMD
                .expect("Vulkan command vkDestroyGpaSessionAMD is not loaded"))(
                device, gpaSession, pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub unsafe fn vkSetGpaDeviceClockModeAMD(
        &self,
        device: VkDevice,
        pInfo: *mut VkGpaDeviceClockModeInfoAMD,
    ) -> VkResult {
        unsafe {
            (self
                .vkSetGpaDeviceClockModeAMD
                .expect("Vulkan command vkSetGpaDeviceClockModeAMD is not loaded"))(
                device, pInfo
            )
        }
    }
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub unsafe fn vkGetGpaDeviceClockInfoAMD(
        &self,
        device: VkDevice,
        pInfo: *mut VkGpaDeviceGetClockInfoAMD,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetGpaDeviceClockInfoAMD
                .expect("Vulkan command vkGetGpaDeviceClockInfoAMD is not loaded"))(
                device, pInfo
            )
        }
    }
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub unsafe fn vkCmdBeginGpaSessionAMD(
        &self,
        commandBuffer: VkCommandBuffer,
        gpaSession: VkGpaSessionAMD,
    ) -> VkResult {
        unsafe {
            (self
                .vkCmdBeginGpaSessionAMD
                .expect("Vulkan command vkCmdBeginGpaSessionAMD is not loaded"))(
                commandBuffer,
                gpaSession,
            )
        }
    }
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub unsafe fn vkCmdEndGpaSessionAMD(
        &self,
        commandBuffer: VkCommandBuffer,
        gpaSession: VkGpaSessionAMD,
    ) -> VkResult {
        unsafe {
            (self
                .vkCmdEndGpaSessionAMD
                .expect("Vulkan command vkCmdEndGpaSessionAMD is not loaded"))(
                commandBuffer,
                gpaSession,
            )
        }
    }
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub unsafe fn vkCmdBeginGpaSampleAMD(
        &self,
        commandBuffer: VkCommandBuffer,
        gpaSession: VkGpaSessionAMD,
        pGpaSampleBeginInfo: *const VkGpaSampleBeginInfoAMD,
        pSampleID: *mut u32,
    ) -> VkResult {
        unsafe {
            (self
                .vkCmdBeginGpaSampleAMD
                .expect("Vulkan command vkCmdBeginGpaSampleAMD is not loaded"))(
                commandBuffer,
                gpaSession,
                pGpaSampleBeginInfo,
                pSampleID,
            )
        }
    }
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub unsafe fn vkCmdEndGpaSampleAMD(
        &self,
        commandBuffer: VkCommandBuffer,
        gpaSession: VkGpaSessionAMD,
        sampleID: u32,
    ) {
        unsafe {
            (self
                .vkCmdEndGpaSampleAMD
                .expect("Vulkan command vkCmdEndGpaSampleAMD is not loaded"))(
                commandBuffer,
                gpaSession,
                sampleID,
            )
        }
    }
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub unsafe fn vkGetGpaSessionStatusAMD(
        &self,
        device: VkDevice,
        gpaSession: VkGpaSessionAMD,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetGpaSessionStatusAMD
                .expect("Vulkan command vkGetGpaSessionStatusAMD is not loaded"))(
                device, gpaSession,
            )
        }
    }
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub unsafe fn vkGetGpaSessionResultsAMD(
        &self,
        device: VkDevice,
        gpaSession: VkGpaSessionAMD,
        sampleID: u32,
        pSizeInBytes: *mut usize,
        pData: *mut c_void,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetGpaSessionResultsAMD
                .expect("Vulkan command vkGetGpaSessionResultsAMD is not loaded"))(
                device,
                gpaSession,
                sampleID,
                pSizeInBytes,
                pData,
            )
        }
    }
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub unsafe fn vkResetGpaSessionAMD(
        &self,
        device: VkDevice,
        gpaSession: VkGpaSessionAMD,
    ) -> VkResult {
        unsafe {
            (self
                .vkResetGpaSessionAMD
                .expect("Vulkan command vkResetGpaSessionAMD is not loaded"))(
                device, gpaSession
            )
        }
    }
    #[cfg(feature = "vk_amd_gpa_interface")]
    pub unsafe fn vkCmdCopyGpaSessionResultsAMD(
        &self,
        commandBuffer: VkCommandBuffer,
        gpaSession: VkGpaSessionAMD,
    ) {
        unsafe {
            (self
                .vkCmdCopyGpaSessionResultsAMD
                .expect("Vulkan command vkCmdCopyGpaSessionResultsAMD is not loaded"))(
                commandBuffer,
                gpaSession,
            )
        }
    }
    #[cfg(feature = "core_1_4")]
    pub unsafe fn vkCmdBindDescriptorSets2(
        &self,
        commandBuffer: VkCommandBuffer,
        pBindDescriptorSetsInfo: *const VkBindDescriptorSetsInfo,
    ) {
        unsafe {
            (self
                .vkCmdBindDescriptorSets2
                .expect("Vulkan command vkCmdBindDescriptorSets2 is not loaded"))(
                commandBuffer,
                pBindDescriptorSetsInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_maintenance6")]
    pub unsafe fn vkCmdBindDescriptorSets2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pBindDescriptorSetsInfo: *const VkBindDescriptorSetsInfo,
    ) {
        unsafe {
            (self
                .vkCmdBindDescriptorSets2KHR
                .expect("Vulkan command vkCmdBindDescriptorSets2KHR is not loaded"))(
                commandBuffer,
                pBindDescriptorSetsInfo,
            )
        }
    }
    #[cfg(feature = "core_1_4")]
    pub unsafe fn vkCmdPushConstants2(
        &self,
        commandBuffer: VkCommandBuffer,
        pPushConstantsInfo: *const VkPushConstantsInfo,
    ) {
        unsafe {
            (self
                .vkCmdPushConstants2
                .expect("Vulkan command vkCmdPushConstants2 is not loaded"))(
                commandBuffer,
                pPushConstantsInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_maintenance6")]
    pub unsafe fn vkCmdPushConstants2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pPushConstantsInfo: *const VkPushConstantsInfo,
    ) {
        unsafe {
            (self
                .vkCmdPushConstants2KHR
                .expect("Vulkan command vkCmdPushConstants2KHR is not loaded"))(
                commandBuffer,
                pPushConstantsInfo,
            )
        }
    }
    #[cfg(feature = "core_1_4")]
    pub unsafe fn vkCmdPushDescriptorSet2(
        &self,
        commandBuffer: VkCommandBuffer,
        pPushDescriptorSetInfo: *const VkPushDescriptorSetInfo,
    ) {
        unsafe {
            (self
                .vkCmdPushDescriptorSet2
                .expect("Vulkan command vkCmdPushDescriptorSet2 is not loaded"))(
                commandBuffer,
                pPushDescriptorSetInfo,
            )
        }
    }
    #[cfg(all(feature = "vk_khr_maintenance6", feature = "vk_khr_push_descriptor"))]
    pub unsafe fn vkCmdPushDescriptorSet2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pPushDescriptorSetInfo: *const VkPushDescriptorSetInfo,
    ) {
        unsafe {
            (self
                .vkCmdPushDescriptorSet2KHR
                .expect("Vulkan command vkCmdPushDescriptorSet2KHR is not loaded"))(
                commandBuffer,
                pPushDescriptorSetInfo,
            )
        }
    }
    #[cfg(feature = "core_1_4")]
    pub unsafe fn vkCmdPushDescriptorSetWithTemplate2(
        &self,
        commandBuffer: VkCommandBuffer,
        pPushDescriptorSetWithTemplateInfo: *const VkPushDescriptorSetWithTemplateInfo,
    ) {
        unsafe {
            (self
                .vkCmdPushDescriptorSetWithTemplate2
                .expect("Vulkan command vkCmdPushDescriptorSetWithTemplate2 is not loaded"))(
                commandBuffer,
                pPushDescriptorSetWithTemplateInfo,
            )
        }
    }
    #[cfg(all(feature = "vk_khr_maintenance6", feature = "vk_khr_push_descriptor"))]
    pub unsafe fn vkCmdPushDescriptorSetWithTemplate2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pPushDescriptorSetWithTemplateInfo: *const VkPushDescriptorSetWithTemplateInfo,
    ) {
        unsafe {
            (self
                .vkCmdPushDescriptorSetWithTemplate2KHR
                .expect("Vulkan command vkCmdPushDescriptorSetWithTemplate2KHR is not loaded"))(
                commandBuffer,
                pPushDescriptorSetWithTemplateInfo,
            )
        }
    }
    #[cfg(all(feature = "vk_ext_descriptor_buffer", feature = "vk_khr_maintenance6"))]
    pub unsafe fn vkCmdSetDescriptorBufferOffsets2EXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pSetDescriptorBufferOffsetsInfo: *const VkSetDescriptorBufferOffsetsInfoEXT,
    ) {
        unsafe {
            (self
                .vkCmdSetDescriptorBufferOffsets2EXT
                .expect("Vulkan command vkCmdSetDescriptorBufferOffsets2EXT is not loaded"))(
                commandBuffer,
                pSetDescriptorBufferOffsetsInfo,
            )
        }
    }
    #[cfg(all(feature = "vk_ext_descriptor_buffer", feature = "vk_khr_maintenance6"))]
    pub unsafe fn vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pBindDescriptorBufferEmbeddedSamplersInfo: *const VkBindDescriptorBufferEmbeddedSamplersInfoEXT,
    ) {
        unsafe {
            (self.vkCmdBindDescriptorBufferEmbeddedSamplers2EXT.expect(
                "Vulkan command vkCmdBindDescriptorBufferEmbeddedSamplers2EXT is not loaded",
            ))(commandBuffer, pBindDescriptorBufferEmbeddedSamplersInfo)
        }
    }
    #[cfg(feature = "vk_nv_low_latency2")]
    pub unsafe fn vkSetLatencySleepModeNV(
        &self,
        device: VkDevice,
        swapchain: VkSwapchainKHR,
        pSleepModeInfo: *const VkLatencySleepModeInfoNV,
    ) -> VkResult {
        unsafe {
            (self
                .vkSetLatencySleepModeNV
                .expect("Vulkan command vkSetLatencySleepModeNV is not loaded"))(
                device,
                swapchain,
                pSleepModeInfo,
            )
        }
    }
    #[cfg(feature = "vk_nv_low_latency2")]
    pub unsafe fn vkLatencySleepNV(
        &self,
        device: VkDevice,
        swapchain: VkSwapchainKHR,
        pSleepInfo: *const VkLatencySleepInfoNV,
    ) -> VkResult {
        unsafe {
            (self
                .vkLatencySleepNV
                .expect("Vulkan command vkLatencySleepNV is not loaded"))(
                device, swapchain, pSleepInfo,
            )
        }
    }
    #[cfg(feature = "vk_nv_low_latency2")]
    pub unsafe fn vkSetLatencyMarkerNV(
        &self,
        device: VkDevice,
        swapchain: VkSwapchainKHR,
        pLatencyMarkerInfo: *const VkSetLatencyMarkerInfoNV,
    ) {
        unsafe {
            (self
                .vkSetLatencyMarkerNV
                .expect("Vulkan command vkSetLatencyMarkerNV is not loaded"))(
                device,
                swapchain,
                pLatencyMarkerInfo,
            )
        }
    }
    #[cfg(feature = "vk_nv_low_latency2")]
    pub unsafe fn vkGetLatencyTimingsNV(
        &self,
        device: VkDevice,
        swapchain: VkSwapchainKHR,
        pLatencyMarkerInfo: *mut VkGetLatencyMarkerInfoNV,
    ) {
        unsafe {
            (self
                .vkGetLatencyTimingsNV
                .expect("Vulkan command vkGetLatencyTimingsNV is not loaded"))(
                device,
                swapchain,
                pLatencyMarkerInfo,
            )
        }
    }
    #[cfg(feature = "vk_nv_low_latency2")]
    pub unsafe fn vkQueueNotifyOutOfBandNV(
        &self,
        queue: VkQueue,
        pQueueTypeInfo: *const VkOutOfBandQueueTypeInfoNV,
    ) {
        unsafe {
            (self
                .vkQueueNotifyOutOfBandNV
                .expect("Vulkan command vkQueueNotifyOutOfBandNV is not loaded"))(
                queue,
                pQueueTypeInfo,
            )
        }
    }
    #[cfg(feature = "vk_nv_low_latency")]
    pub unsafe fn vkSetLatencySleepModeLegacyNV(
        &self,
        device: VkDevice,
        lowLatencyMode: VkBool32,
        lowLatencyBoost: VkBool32,
        minimumIntervalUs: u32,
    ) {
        unsafe {
            (self
                .vkSetLatencySleepModeLegacyNV
                .expect("Vulkan command vkSetLatencySleepModeLegacyNV is not loaded"))(
                device,
                lowLatencyMode,
                lowLatencyBoost,
                minimumIntervalUs,
            )
        }
    }
    #[cfg(feature = "vk_nv_low_latency")]
    pub unsafe fn vkLatencySleepLegacyNV(
        &self,
        device: VkDevice,
        signalSemaphore: VkSemaphore,
        value: u64,
    ) {
        unsafe {
            (self
                .vkLatencySleepLegacyNV
                .expect("Vulkan command vkLatencySleepLegacyNV is not loaded"))(
                device,
                signalSemaphore,
                value,
            )
        }
    }
    #[cfg(feature = "vk_nv_low_latency")]
    pub unsafe fn vkSetLatencyMarkerLegacyNV(&self, device: VkDevice, frameID: u64, marker: u32) {
        unsafe {
            (self
                .vkSetLatencyMarkerLegacyNV
                .expect("Vulkan command vkSetLatencyMarkerLegacyNV is not loaded"))(
                device, frameID, marker,
            )
        }
    }
    #[cfg(feature = "vk_nv_low_latency")]
    pub unsafe fn vkGetLatencyTimingsLegacyNV(&self, device: VkDevice, pTimings: *mut c_void) {
        unsafe {
            (self
                .vkGetLatencyTimingsLegacyNV
                .expect("Vulkan command vkGetLatencyTimingsLegacyNV is not loaded"))(
                device, pTimings,
            )
        }
    }
    #[cfg(feature = "vk_nv_low_latency")]
    pub unsafe fn vkQueueNotifyOutOfBandLegacyNV(&self, queue: VkQueue, queueType: u32) {
        unsafe {
            (self
                .vkQueueNotifyOutOfBandLegacyNV
                .expect("Vulkan command vkQueueNotifyOutOfBandLegacyNV is not loaded"))(
                queue, queueType,
            )
        }
    }
    #[cfg(feature = "vk_nv_low_latency")]
    pub unsafe fn vkGetSleepStatusLegacyNV(
        &self,
        device: VkDevice,
        pLowLatencyMode: *mut VkBool32,
    ) {
        unsafe {
            (self
                .vkGetSleepStatusLegacyNV
                .expect("Vulkan command vkGetSleepStatusLegacyNV is not loaded"))(
                device,
                pLowLatencyMode,
            )
        }
    }
    #[cfg(feature = "vk_nv_low_latency")]
    pub unsafe fn vkShutdownLatencyDeviceLegacyNV(&self, device: VkDevice) {
        unsafe {
            (self
                .vkShutdownLatencyDeviceLegacyNV
                .expect("Vulkan command vkShutdownLatencyDeviceLegacyNV is not loaded"))(
                device
            )
        }
    }
    #[cfg(feature = "core_1_4")]
    pub unsafe fn vkCmdSetRenderingAttachmentLocations(
        &self,
        commandBuffer: VkCommandBuffer,
        pLocationInfo: *const VkRenderingAttachmentLocationInfo,
    ) {
        unsafe {
            (self
                .vkCmdSetRenderingAttachmentLocations
                .expect("Vulkan command vkCmdSetRenderingAttachmentLocations is not loaded"))(
                commandBuffer,
                pLocationInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_dynamic_rendering_local_read")]
    pub unsafe fn vkCmdSetRenderingAttachmentLocationsKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pLocationInfo: *const VkRenderingAttachmentLocationInfo,
    ) {
        unsafe {
            (self
                .vkCmdSetRenderingAttachmentLocationsKHR
                .expect("Vulkan command vkCmdSetRenderingAttachmentLocationsKHR is not loaded"))(
                commandBuffer,
                pLocationInfo,
            )
        }
    }
    #[cfg(feature = "core_1_4")]
    pub unsafe fn vkCmdSetRenderingInputAttachmentIndices(
        &self,
        commandBuffer: VkCommandBuffer,
        pInputAttachmentIndexInfo: *const VkRenderingInputAttachmentIndexInfo,
    ) {
        unsafe {
            (self
                .vkCmdSetRenderingInputAttachmentIndices
                .expect("Vulkan command vkCmdSetRenderingInputAttachmentIndices is not loaded"))(
                commandBuffer,
                pInputAttachmentIndexInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_dynamic_rendering_local_read")]
    pub unsafe fn vkCmdSetRenderingInputAttachmentIndicesKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pInputAttachmentIndexInfo: *const VkRenderingInputAttachmentIndexInfo,
    ) {
        unsafe {
            (self
                .vkCmdSetRenderingInputAttachmentIndicesKHR
                .expect("Vulkan command vkCmdSetRenderingInputAttachmentIndicesKHR is not loaded"))(
                commandBuffer,
                pInputAttachmentIndexInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_depth_clamp_control")]
    pub unsafe fn vkCmdSetDepthClampRangeEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        depthClampMode: VkDepthClampModeEXT,
        pDepthClampRange: *const VkDepthClampRangeEXT,
    ) {
        unsafe {
            (self
                .vkCmdSetDepthClampRangeEXT
                .expect("Vulkan command vkCmdSetDepthClampRangeEXT is not loaded"))(
                commandBuffer,
                depthClampMode,
                pDepthClampRange,
            )
        }
    }
    #[cfg(feature = "vk_ext_external_memory_metal")]
    pub unsafe fn vkGetMemoryMetalHandleEXT(
        &self,
        device: VkDevice,
        pGetMetalHandleInfo: *const VkMemoryGetMetalHandleInfoEXT,
        pHandle: *mut *mut c_void,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetMemoryMetalHandleEXT
                .expect("Vulkan command vkGetMemoryMetalHandleEXT is not loaded"))(
                device,
                pGetMetalHandleInfo,
                pHandle,
            )
        }
    }
    #[cfg(feature = "vk_ext_external_memory_metal")]
    pub unsafe fn vkGetMemoryMetalHandlePropertiesEXT(
        &self,
        device: VkDevice,
        handleType: VkExternalMemoryHandleTypeFlagBits,
        pHandle: *const c_void,
        pMemoryMetalHandleProperties: *mut VkMemoryMetalHandlePropertiesEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetMemoryMetalHandlePropertiesEXT
                .expect("Vulkan command vkGetMemoryMetalHandlePropertiesEXT is not loaded"))(
                device,
                handleType,
                pHandle,
                pMemoryMetalHandleProperties,
            )
        }
    }
    #[cfg(feature = "vk_nv_cooperative_vector")]
    pub unsafe fn vkConvertCooperativeVectorMatrixNV(
        &self,
        device: VkDevice,
        pInfo: *const VkConvertCooperativeVectorMatrixInfoNV,
    ) -> VkResult {
        unsafe {
            (self
                .vkConvertCooperativeVectorMatrixNV
                .expect("Vulkan command vkConvertCooperativeVectorMatrixNV is not loaded"))(
                device, pInfo,
            )
        }
    }
    #[cfg(feature = "vk_nv_cooperative_vector")]
    pub unsafe fn vkCmdConvertCooperativeVectorMatrixNV(
        &self,
        commandBuffer: VkCommandBuffer,
        infoCount: u32,
        pInfos: *const VkConvertCooperativeVectorMatrixInfoNV,
    ) {
        unsafe {
            (self
                .vkCmdConvertCooperativeVectorMatrixNV
                .expect("Vulkan command vkCmdConvertCooperativeVectorMatrixNV is not loaded"))(
                commandBuffer,
                infoCount,
                pInfos,
            )
        }
    }
    #[cfg(feature = "vk_qcom_tile_shading")]
    pub unsafe fn vkCmdDispatchTileQCOM(
        &self,
        commandBuffer: VkCommandBuffer,
        pDispatchTileInfo: *const VkDispatchTileInfoQCOM,
    ) {
        unsafe {
            (self
                .vkCmdDispatchTileQCOM
                .expect("Vulkan command vkCmdDispatchTileQCOM is not loaded"))(
                commandBuffer,
                pDispatchTileInfo,
            )
        }
    }
    #[cfg(feature = "vk_qcom_tile_shading")]
    pub unsafe fn vkCmdBeginPerTileExecutionQCOM(
        &self,
        commandBuffer: VkCommandBuffer,
        pPerTileBeginInfo: *const VkPerTileBeginInfoQCOM,
    ) {
        unsafe {
            (self
                .vkCmdBeginPerTileExecutionQCOM
                .expect("Vulkan command vkCmdBeginPerTileExecutionQCOM is not loaded"))(
                commandBuffer,
                pPerTileBeginInfo,
            )
        }
    }
    #[cfg(feature = "vk_qcom_tile_shading")]
    pub unsafe fn vkCmdEndPerTileExecutionQCOM(
        &self,
        commandBuffer: VkCommandBuffer,
        pPerTileEndInfo: *const VkPerTileEndInfoQCOM,
    ) {
        unsafe {
            (self
                .vkCmdEndPerTileExecutionQCOM
                .expect("Vulkan command vkCmdEndPerTileExecutionQCOM is not loaded"))(
                commandBuffer,
                pPerTileEndInfo,
            )
        }
    }
    #[cfg(feature = "vk_nv_external_compute_queue")]
    pub unsafe fn vkCreateExternalComputeQueueNV(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkExternalComputeQueueCreateInfoNV,
        pAllocator: *const VkAllocationCallbacks,
        pExternalQueue: *mut VkExternalComputeQueueNV,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateExternalComputeQueueNV
                .expect("Vulkan command vkCreateExternalComputeQueueNV is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pExternalQueue,
            )
        }
    }
    #[cfg(feature = "vk_nv_external_compute_queue")]
    pub unsafe fn vkDestroyExternalComputeQueueNV(
        &self,
        device: VkDevice,
        externalQueue: VkExternalComputeQueueNV,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyExternalComputeQueueNV
                .expect("Vulkan command vkDestroyExternalComputeQueueNV is not loaded"))(
                device,
                externalQueue,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_nv_external_compute_queue")]
    pub unsafe fn vkGetExternalComputeQueueDataNV(
        &self,
        externalQueue: VkExternalComputeQueueNV,
        params: *mut VkExternalComputeQueueDataParamsNV,
        pData: *mut c_void,
    ) {
        unsafe {
            (self
                .vkGetExternalComputeQueueDataNV
                .expect("Vulkan command vkGetExternalComputeQueueDataNV is not loaded"))(
                externalQueue,
                params,
                pData,
            )
        }
    }
    #[cfg(feature = "vk_arm_shader_instrumentation")]
    pub unsafe fn vkCreateShaderInstrumentationARM(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkShaderInstrumentationCreateInfoARM,
        pAllocator: *const VkAllocationCallbacks,
        pInstrumentation: *mut VkShaderInstrumentationARM,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateShaderInstrumentationARM
                .expect("Vulkan command vkCreateShaderInstrumentationARM is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pInstrumentation,
            )
        }
    }
    #[cfg(feature = "vk_arm_shader_instrumentation")]
    pub unsafe fn vkDestroyShaderInstrumentationARM(
        &self,
        device: VkDevice,
        instrumentation: VkShaderInstrumentationARM,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyShaderInstrumentationARM
                .expect("Vulkan command vkDestroyShaderInstrumentationARM is not loaded"))(
                device,
                instrumentation,
                pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_arm_shader_instrumentation")]
    pub unsafe fn vkCmdBeginShaderInstrumentationARM(
        &self,
        commandBuffer: VkCommandBuffer,
        instrumentation: VkShaderInstrumentationARM,
    ) {
        unsafe {
            (self
                .vkCmdBeginShaderInstrumentationARM
                .expect("Vulkan command vkCmdBeginShaderInstrumentationARM is not loaded"))(
                commandBuffer,
                instrumentation,
            )
        }
    }
    #[cfg(feature = "vk_arm_shader_instrumentation")]
    pub unsafe fn vkCmdEndShaderInstrumentationARM(&self, commandBuffer: VkCommandBuffer) {
        unsafe {
            (self
                .vkCmdEndShaderInstrumentationARM
                .expect("Vulkan command vkCmdEndShaderInstrumentationARM is not loaded"))(
                commandBuffer,
            )
        }
    }
    #[cfg(feature = "vk_arm_shader_instrumentation")]
    pub unsafe fn vkGetShaderInstrumentationValuesARM(
        &self,
        device: VkDevice,
        instrumentation: VkShaderInstrumentationARM,
        pMetricBlockCount: *mut u32,
        pMetricValues: *mut c_void,
        flags: VkShaderInstrumentationValuesFlagsARM,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetShaderInstrumentationValuesARM
                .expect("Vulkan command vkGetShaderInstrumentationValuesARM is not loaded"))(
                device,
                instrumentation,
                pMetricBlockCount,
                pMetricValues,
                flags,
            )
        }
    }
    #[cfg(feature = "vk_arm_shader_instrumentation")]
    pub unsafe fn vkClearShaderInstrumentationMetricsARM(
        &self,
        device: VkDevice,
        instrumentation: VkShaderInstrumentationARM,
    ) {
        unsafe {
            (self
                .vkClearShaderInstrumentationMetricsARM
                .expect("Vulkan command vkClearShaderInstrumentationMetricsARM is not loaded"))(
                device,
                instrumentation,
            )
        }
    }
    #[cfg(feature = "vk_arm_tensors")]
    pub unsafe fn vkCreateTensorARM(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkTensorCreateInfoARM,
        pAllocator: *const VkAllocationCallbacks,
        pTensor: *mut VkTensorARM,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateTensorARM
                .expect("Vulkan command vkCreateTensorARM is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pTensor,
            )
        }
    }
    #[cfg(feature = "vk_arm_tensors")]
    pub unsafe fn vkDestroyTensorARM(
        &self,
        device: VkDevice,
        tensor: VkTensorARM,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyTensorARM
                .expect("Vulkan command vkDestroyTensorARM is not loaded"))(
                device, tensor, pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_arm_tensors")]
    pub unsafe fn vkCreateTensorViewARM(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkTensorViewCreateInfoARM,
        pAllocator: *const VkAllocationCallbacks,
        pView: *mut VkTensorViewARM,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateTensorViewARM
                .expect("Vulkan command vkCreateTensorViewARM is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pView,
            )
        }
    }
    #[cfg(feature = "vk_arm_tensors")]
    pub unsafe fn vkDestroyTensorViewARM(
        &self,
        device: VkDevice,
        tensorView: VkTensorViewARM,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyTensorViewARM
                .expect("Vulkan command vkDestroyTensorViewARM is not loaded"))(
                device, tensorView, pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_arm_tensors")]
    pub unsafe fn vkGetTensorMemoryRequirementsARM(
        &self,
        device: VkDevice,
        pInfo: *const VkTensorMemoryRequirementsInfoARM,
        pMemoryRequirements: *mut VkMemoryRequirements2,
    ) {
        unsafe {
            (self
                .vkGetTensorMemoryRequirementsARM
                .expect("Vulkan command vkGetTensorMemoryRequirementsARM is not loaded"))(
                device,
                pInfo,
                pMemoryRequirements,
            )
        }
    }
    #[cfg(feature = "vk_arm_tensors")]
    pub unsafe fn vkBindTensorMemoryARM(
        &self,
        device: VkDevice,
        bindInfoCount: u32,
        pBindInfos: *const VkBindTensorMemoryInfoARM,
    ) -> VkResult {
        unsafe {
            (self
                .vkBindTensorMemoryARM
                .expect("Vulkan command vkBindTensorMemoryARM is not loaded"))(
                device,
                bindInfoCount,
                pBindInfos,
            )
        }
    }
    #[cfg(feature = "vk_arm_tensors")]
    pub unsafe fn vkGetDeviceTensorMemoryRequirementsARM(
        &self,
        device: VkDevice,
        pInfo: *const VkDeviceTensorMemoryRequirementsARM,
        pMemoryRequirements: *mut VkMemoryRequirements2,
    ) {
        unsafe {
            (self
                .vkGetDeviceTensorMemoryRequirementsARM
                .expect("Vulkan command vkGetDeviceTensorMemoryRequirementsARM is not loaded"))(
                device,
                pInfo,
                pMemoryRequirements,
            )
        }
    }
    #[cfg(feature = "vk_arm_tensors")]
    pub unsafe fn vkCmdCopyTensorARM(
        &self,
        commandBuffer: VkCommandBuffer,
        pCopyTensorInfo: *const VkCopyTensorInfoARM,
    ) {
        unsafe {
            (self
                .vkCmdCopyTensorARM
                .expect("Vulkan command vkCmdCopyTensorARM is not loaded"))(
                commandBuffer,
                pCopyTensorInfo,
            )
        }
    }
    #[cfg(all(feature = "vk_arm_tensors", feature = "vk_ext_descriptor_buffer"))]
    pub unsafe fn vkGetTensorOpaqueCaptureDescriptorDataARM(
        &self,
        device: VkDevice,
        pInfo: *const VkTensorCaptureDescriptorDataInfoARM,
        pData: *mut c_void,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetTensorOpaqueCaptureDescriptorDataARM
                .expect("Vulkan command vkGetTensorOpaqueCaptureDescriptorDataARM is not loaded"))(
                device, pInfo, pData,
            )
        }
    }
    #[cfg(all(feature = "vk_arm_tensors", feature = "vk_ext_descriptor_buffer"))]
    pub unsafe fn vkGetTensorViewOpaqueCaptureDescriptorDataARM(
        &self,
        device: VkDevice,
        pInfo: *const VkTensorViewCaptureDescriptorDataInfoARM,
        pData: *mut c_void,
    ) -> VkResult {
        unsafe {
            (self.vkGetTensorViewOpaqueCaptureDescriptorDataARM.expect(
                "Vulkan command vkGetTensorViewOpaqueCaptureDescriptorDataARM is not loaded",
            ))(device, pInfo, pData)
        }
    }
    #[cfg(feature = "vk_arm_data_graph")]
    pub unsafe fn vkCreateDataGraphPipelinesARM(
        &self,
        device: VkDevice,
        deferredOperation: VkDeferredOperationKHR,
        pipelineCache: VkPipelineCache,
        createInfoCount: u32,
        pCreateInfos: *const VkDataGraphPipelineCreateInfoARM,
        pAllocator: *const VkAllocationCallbacks,
        pPipelines: *mut VkPipeline,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateDataGraphPipelinesARM
                .expect("Vulkan command vkCreateDataGraphPipelinesARM is not loaded"))(
                device,
                deferredOperation,
                pipelineCache,
                createInfoCount,
                pCreateInfos,
                pAllocator,
                pPipelines,
            )
        }
    }
    #[cfg(feature = "vk_arm_data_graph")]
    pub unsafe fn vkCreateDataGraphPipelineSessionARM(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkDataGraphPipelineSessionCreateInfoARM,
        pAllocator: *const VkAllocationCallbacks,
        pSession: *mut VkDataGraphPipelineSessionARM,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateDataGraphPipelineSessionARM
                .expect("Vulkan command vkCreateDataGraphPipelineSessionARM is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pSession,
            )
        }
    }
    #[cfg(feature = "vk_arm_data_graph")]
    pub unsafe fn vkGetDataGraphPipelineSessionBindPointRequirementsARM(
        &self,
        device: VkDevice,
        pInfo: *const VkDataGraphPipelineSessionBindPointRequirementsInfoARM,
        pBindPointRequirementCount: *mut u32,
        pBindPointRequirements: *mut VkDataGraphPipelineSessionBindPointRequirementARM,
    ) -> VkResult {
        unsafe {
            (self.vkGetDataGraphPipelineSessionBindPointRequirementsARM.expect("Vulkan command vkGetDataGraphPipelineSessionBindPointRequirementsARM is not loaded"))(device, pInfo, pBindPointRequirementCount, pBindPointRequirements)
        }
    }
    #[cfg(feature = "vk_arm_data_graph")]
    pub unsafe fn vkGetDataGraphPipelineSessionMemoryRequirementsARM(
        &self,
        device: VkDevice,
        pInfo: *const VkDataGraphPipelineSessionMemoryRequirementsInfoARM,
        pMemoryRequirements: *mut VkMemoryRequirements2,
    ) {
        unsafe {
            (self.vkGetDataGraphPipelineSessionMemoryRequirementsARM.expect("Vulkan command vkGetDataGraphPipelineSessionMemoryRequirementsARM is not loaded"))(device, pInfo, pMemoryRequirements)
        }
    }
    #[cfg(feature = "vk_arm_data_graph")]
    pub unsafe fn vkBindDataGraphPipelineSessionMemoryARM(
        &self,
        device: VkDevice,
        bindInfoCount: u32,
        pBindInfos: *const VkBindDataGraphPipelineSessionMemoryInfoARM,
    ) -> VkResult {
        unsafe {
            (self
                .vkBindDataGraphPipelineSessionMemoryARM
                .expect("Vulkan command vkBindDataGraphPipelineSessionMemoryARM is not loaded"))(
                device,
                bindInfoCount,
                pBindInfos,
            )
        }
    }
    #[cfg(feature = "vk_arm_data_graph")]
    pub unsafe fn vkDestroyDataGraphPipelineSessionARM(
        &self,
        device: VkDevice,
        session: VkDataGraphPipelineSessionARM,
        pAllocator: *const VkAllocationCallbacks,
    ) {
        unsafe {
            (self
                .vkDestroyDataGraphPipelineSessionARM
                .expect("Vulkan command vkDestroyDataGraphPipelineSessionARM is not loaded"))(
                device, session, pAllocator,
            )
        }
    }
    #[cfg(feature = "vk_arm_data_graph")]
    pub unsafe fn vkCmdDispatchDataGraphARM(
        &self,
        commandBuffer: VkCommandBuffer,
        session: VkDataGraphPipelineSessionARM,
        pInfo: *const VkDataGraphPipelineDispatchInfoARM,
    ) {
        unsafe {
            (self
                .vkCmdDispatchDataGraphARM
                .expect("Vulkan command vkCmdDispatchDataGraphARM is not loaded"))(
                commandBuffer,
                session,
                pInfo,
            )
        }
    }
    #[cfg(feature = "vk_arm_data_graph")]
    pub unsafe fn vkGetDataGraphPipelineAvailablePropertiesARM(
        &self,
        device: VkDevice,
        pPipelineInfo: *const VkDataGraphPipelineInfoARM,
        pPropertiesCount: *mut u32,
        pProperties: *mut VkDataGraphPipelinePropertyARM,
    ) -> VkResult {
        unsafe {
            (self.vkGetDataGraphPipelineAvailablePropertiesARM.expect(
                "Vulkan command vkGetDataGraphPipelineAvailablePropertiesARM is not loaded",
            ))(device, pPipelineInfo, pPropertiesCount, pProperties)
        }
    }
    #[cfg(feature = "vk_arm_data_graph")]
    pub unsafe fn vkGetDataGraphPipelinePropertiesARM(
        &self,
        device: VkDevice,
        pPipelineInfo: *const VkDataGraphPipelineInfoARM,
        propertiesCount: u32,
        pProperties: *mut VkDataGraphPipelinePropertyQueryResultARM,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetDataGraphPipelinePropertiesARM
                .expect("Vulkan command vkGetDataGraphPipelinePropertiesARM is not loaded"))(
                device,
                pPipelineInfo,
                propertiesCount,
                pProperties,
            )
        }
    }
    #[cfg(feature = "vk_ohos_external_memory")]
    pub unsafe fn vkGetNativeBufferPropertiesOHOS(
        &self,
        device: VkDevice,
        buffer: *const OH_NativeBuffer,
        pProperties: *mut VkNativeBufferPropertiesOHOS,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetNativeBufferPropertiesOHOS
                .expect("Vulkan command vkGetNativeBufferPropertiesOHOS is not loaded"))(
                device,
                buffer,
                pProperties,
            )
        }
    }
    #[cfg(feature = "vk_ohos_external_memory")]
    pub unsafe fn vkGetMemoryNativeBufferOHOS(
        &self,
        device: VkDevice,
        pInfo: *const VkMemoryGetNativeBufferInfoOHOS,
        pBuffer: *mut *mut OH_NativeBuffer,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetMemoryNativeBufferOHOS
                .expect("Vulkan command vkGetMemoryNativeBufferOHOS is not loaded"))(
                device, pInfo, pBuffer,
            )
        }
    }
    #[cfg(feature = "vk_qcom_queue_perf_hint")]
    pub unsafe fn vkQueueSetPerfHintQCOM(
        &self,
        queue: VkQueue,
        pPerfHintInfo: *const VkPerfHintInfoQCOM,
    ) -> VkResult {
        unsafe {
            (self
                .vkQueueSetPerfHintQCOM
                .expect("Vulkan command vkQueueSetPerfHintQCOM is not loaded"))(
                queue,
                pPerfHintInfo,
            )
        }
    }
    #[cfg(feature = "vk_nv_compute_occupancy_priority")]
    pub unsafe fn vkCmdSetComputeOccupancyPriorityNV(
        &self,
        commandBuffer: VkCommandBuffer,
        pParameters: *const VkComputeOccupancyPriorityParametersNV,
    ) {
        unsafe {
            (self
                .vkCmdSetComputeOccupancyPriorityNV
                .expect("Vulkan command vkCmdSetComputeOccupancyPriorityNV is not loaded"))(
                commandBuffer,
                pParameters,
            )
        }
    }
    #[cfg(feature = "vk_ext_descriptor_heap")]
    pub unsafe fn vkWriteSamplerDescriptorsEXT(
        &self,
        device: VkDevice,
        samplerCount: u32,
        pSamplers: *const VkSamplerCreateInfo,
        pDescriptors: *const VkHostAddressRangeEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkWriteSamplerDescriptorsEXT
                .expect("Vulkan command vkWriteSamplerDescriptorsEXT is not loaded"))(
                device,
                samplerCount,
                pSamplers,
                pDescriptors,
            )
        }
    }
    #[cfg(feature = "vk_ext_descriptor_heap")]
    pub unsafe fn vkWriteResourceDescriptorsEXT(
        &self,
        device: VkDevice,
        resourceCount: u32,
        pResources: *const VkResourceDescriptorInfoEXT,
        pDescriptors: *const VkHostAddressRangeEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkWriteResourceDescriptorsEXT
                .expect("Vulkan command vkWriteResourceDescriptorsEXT is not loaded"))(
                device,
                resourceCount,
                pResources,
                pDescriptors,
            )
        }
    }
    #[cfg(feature = "vk_ext_descriptor_heap")]
    pub unsafe fn vkCmdBindSamplerHeapEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pBindInfo: *const VkBindHeapInfoEXT,
    ) {
        unsafe {
            (self
                .vkCmdBindSamplerHeapEXT
                .expect("Vulkan command vkCmdBindSamplerHeapEXT is not loaded"))(
                commandBuffer,
                pBindInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_descriptor_heap")]
    pub unsafe fn vkCmdBindResourceHeapEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pBindInfo: *const VkBindHeapInfoEXT,
    ) {
        unsafe {
            (self
                .vkCmdBindResourceHeapEXT
                .expect("Vulkan command vkCmdBindResourceHeapEXT is not loaded"))(
                commandBuffer,
                pBindInfo,
            )
        }
    }
    #[cfg(feature = "vk_ext_descriptor_heap")]
    pub unsafe fn vkCmdPushDataEXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pPushDataInfo: *const VkPushDataInfoEXT,
    ) {
        unsafe {
            (self
                .vkCmdPushDataEXT
                .expect("Vulkan command vkCmdPushDataEXT is not loaded"))(
                commandBuffer,
                pPushDataInfo,
            )
        }
    }
    #[cfg(all(
        feature = "vk_ext_custom_border_color",
        feature = "vk_ext_descriptor_heap"
    ))]
    pub unsafe fn vkRegisterCustomBorderColorEXT(
        &self,
        device: VkDevice,
        pBorderColor: *const VkSamplerCustomBorderColorCreateInfoEXT,
        requestIndex: VkBool32,
        pIndex: *mut u32,
    ) -> VkResult {
        unsafe {
            (self
                .vkRegisterCustomBorderColorEXT
                .expect("Vulkan command vkRegisterCustomBorderColorEXT is not loaded"))(
                device,
                pBorderColor,
                requestIndex,
                pIndex,
            )
        }
    }
    #[cfg(all(
        feature = "vk_ext_custom_border_color",
        feature = "vk_ext_descriptor_heap"
    ))]
    pub unsafe fn vkUnregisterCustomBorderColorEXT(&self, device: VkDevice, index: u32) {
        unsafe {
            (self
                .vkUnregisterCustomBorderColorEXT
                .expect("Vulkan command vkUnregisterCustomBorderColorEXT is not loaded"))(
                device, index,
            )
        }
    }
    #[cfg(feature = "vk_ext_descriptor_heap")]
    pub unsafe fn vkGetImageOpaqueCaptureDataEXT(
        &self,
        device: VkDevice,
        imageCount: u32,
        pImages: *const VkImage,
        pDatas: *mut VkHostAddressRangeEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetImageOpaqueCaptureDataEXT
                .expect("Vulkan command vkGetImageOpaqueCaptureDataEXT is not loaded"))(
                device, imageCount, pImages, pDatas,
            )
        }
    }
    #[cfg(all(feature = "vk_arm_tensors", feature = "vk_ext_descriptor_heap"))]
    pub unsafe fn vkGetTensorOpaqueCaptureDataARM(
        &self,
        device: VkDevice,
        tensorCount: u32,
        pTensors: *const VkTensorARM,
        pDatas: *mut VkHostAddressRangeEXT,
    ) -> VkResult {
        unsafe {
            (self
                .vkGetTensorOpaqueCaptureDataARM
                .expect("Vulkan command vkGetTensorOpaqueCaptureDataARM is not loaded"))(
                device,
                tensorCount,
                pTensors,
                pDatas,
            )
        }
    }
    #[cfg(feature = "vk_khr_device_address_commands")]
    pub unsafe fn vkCmdCopyMemoryKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pCopyMemoryInfo: *const VkCopyDeviceMemoryInfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdCopyMemoryKHR
                .expect("Vulkan command vkCmdCopyMemoryKHR is not loaded"))(
                commandBuffer,
                pCopyMemoryInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_device_address_commands")]
    pub unsafe fn vkCmdCopyMemoryToImageKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pCopyMemoryInfo: *const VkCopyDeviceMemoryImageInfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdCopyMemoryToImageKHR
                .expect("Vulkan command vkCmdCopyMemoryToImageKHR is not loaded"))(
                commandBuffer,
                pCopyMemoryInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_device_address_commands")]
    pub unsafe fn vkCmdCopyImageToMemoryKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pCopyMemoryInfo: *const VkCopyDeviceMemoryImageInfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdCopyImageToMemoryKHR
                .expect("Vulkan command vkCmdCopyImageToMemoryKHR is not loaded"))(
                commandBuffer,
                pCopyMemoryInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_device_address_commands")]
    pub unsafe fn vkCmdUpdateMemoryKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pDstRange: *const VkDeviceAddressRangeKHR,
        dstFlags: VkAddressCommandFlagsKHR,
        dataSize: VkDeviceSize,
        pData: *const c_void,
    ) {
        unsafe {
            (self
                .vkCmdUpdateMemoryKHR
                .expect("Vulkan command vkCmdUpdateMemoryKHR is not loaded"))(
                commandBuffer,
                pDstRange,
                dstFlags,
                dataSize,
                pData,
            )
        }
    }
    #[cfg(feature = "vk_khr_device_address_commands")]
    pub unsafe fn vkCmdFillMemoryKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pDstRange: *const VkDeviceAddressRangeKHR,
        dstFlags: VkAddressCommandFlagsKHR,
        data: u32,
    ) {
        unsafe {
            (self
                .vkCmdFillMemoryKHR
                .expect("Vulkan command vkCmdFillMemoryKHR is not loaded"))(
                commandBuffer,
                pDstRange,
                dstFlags,
                data,
            )
        }
    }
    #[cfg(feature = "vk_khr_device_address_commands")]
    pub unsafe fn vkCmdCopyQueryPoolResultsToMemoryKHR(
        &self,
        commandBuffer: VkCommandBuffer,
        queryPool: VkQueryPool,
        firstQuery: u32,
        queryCount: u32,
        pDstRange: *const VkStridedDeviceAddressRangeKHR,
        dstFlags: VkAddressCommandFlagsKHR,
        queryResultFlags: VkQueryResultFlags,
    ) {
        unsafe {
            (self
                .vkCmdCopyQueryPoolResultsToMemoryKHR
                .expect("Vulkan command vkCmdCopyQueryPoolResultsToMemoryKHR is not loaded"))(
                commandBuffer,
                queryPool,
                firstQuery,
                queryCount,
                pDstRange,
                dstFlags,
                queryResultFlags,
            )
        }
    }
    #[cfg(all(
        feature = "vk_ext_conditional_rendering",
        feature = "vk_khr_device_address_commands"
    ))]
    pub unsafe fn vkCmdBeginConditionalRendering2EXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pConditionalRenderingBegin: *const VkConditionalRenderingBeginInfo2EXT,
    ) {
        unsafe {
            (self
                .vkCmdBeginConditionalRendering2EXT
                .expect("Vulkan command vkCmdBeginConditionalRendering2EXT is not loaded"))(
                commandBuffer,
                pConditionalRenderingBegin,
            )
        }
    }
    #[cfg(all(
        feature = "vk_ext_transform_feedback",
        feature = "vk_khr_device_address_commands"
    ))]
    pub unsafe fn vkCmdBindTransformFeedbackBuffers2EXT(
        &self,
        commandBuffer: VkCommandBuffer,
        firstBinding: u32,
        bindingCount: u32,
        pBindingInfos: *const VkBindTransformFeedbackBuffer2InfoEXT,
    ) {
        unsafe {
            (self
                .vkCmdBindTransformFeedbackBuffers2EXT
                .expect("Vulkan command vkCmdBindTransformFeedbackBuffers2EXT is not loaded"))(
                commandBuffer,
                firstBinding,
                bindingCount,
                pBindingInfos,
            )
        }
    }
    #[cfg(all(
        feature = "vk_ext_transform_feedback",
        feature = "vk_khr_device_address_commands"
    ))]
    pub unsafe fn vkCmdBeginTransformFeedback2EXT(
        &self,
        commandBuffer: VkCommandBuffer,
        firstCounterRange: u32,
        counterRangeCount: u32,
        pCounterInfos: *const VkBindTransformFeedbackBuffer2InfoEXT,
    ) {
        unsafe {
            (self
                .vkCmdBeginTransformFeedback2EXT
                .expect("Vulkan command vkCmdBeginTransformFeedback2EXT is not loaded"))(
                commandBuffer,
                firstCounterRange,
                counterRangeCount,
                pCounterInfos,
            )
        }
    }
    #[cfg(all(
        feature = "vk_ext_transform_feedback",
        feature = "vk_khr_device_address_commands"
    ))]
    pub unsafe fn vkCmdEndTransformFeedback2EXT(
        &self,
        commandBuffer: VkCommandBuffer,
        firstCounterRange: u32,
        counterRangeCount: u32,
        pCounterInfos: *const VkBindTransformFeedbackBuffer2InfoEXT,
    ) {
        unsafe {
            (self
                .vkCmdEndTransformFeedback2EXT
                .expect("Vulkan command vkCmdEndTransformFeedback2EXT is not loaded"))(
                commandBuffer,
                firstCounterRange,
                counterRangeCount,
                pCounterInfos,
            )
        }
    }
    #[cfg(all(
        feature = "vk_ext_transform_feedback",
        feature = "vk_khr_device_address_commands"
    ))]
    pub unsafe fn vkCmdDrawIndirectByteCount2EXT(
        &self,
        commandBuffer: VkCommandBuffer,
        instanceCount: u32,
        firstInstance: u32,
        pCounterInfo: *const VkBindTransformFeedbackBuffer2InfoEXT,
        counterOffset: u32,
        vertexStride: u32,
    ) {
        unsafe {
            (self
                .vkCmdDrawIndirectByteCount2EXT
                .expect("Vulkan command vkCmdDrawIndirectByteCount2EXT is not loaded"))(
                commandBuffer,
                instanceCount,
                firstInstance,
                pCounterInfo,
                counterOffset,
                vertexStride,
            )
        }
    }
    #[cfg(all(
        feature = "vk_amd_buffer_marker",
        feature = "vk_khr_device_address_commands"
    ))]
    pub unsafe fn vkCmdWriteMarkerToMemoryAMD(
        &self,
        commandBuffer: VkCommandBuffer,
        pInfo: *const VkMemoryMarkerInfoAMD,
    ) {
        unsafe {
            (self
                .vkCmdWriteMarkerToMemoryAMD
                .expect("Vulkan command vkCmdWriteMarkerToMemoryAMD is not loaded"))(
                commandBuffer,
                pInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_device_address_commands")]
    pub unsafe fn vkCmdBindIndexBuffer3KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pInfo: *const VkBindIndexBuffer3InfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdBindIndexBuffer3KHR
                .expect("Vulkan command vkCmdBindIndexBuffer3KHR is not loaded"))(
                commandBuffer,
                pInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_device_address_commands")]
    pub unsafe fn vkCmdBindVertexBuffers3KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        firstBinding: u32,
        bindingCount: u32,
        pBindingInfos: *const VkBindVertexBuffer3InfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdBindVertexBuffers3KHR
                .expect("Vulkan command vkCmdBindVertexBuffers3KHR is not loaded"))(
                commandBuffer,
                firstBinding,
                bindingCount,
                pBindingInfos,
            )
        }
    }
    #[cfg(feature = "vk_khr_device_address_commands")]
    pub unsafe fn vkCmdDrawIndirect2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pInfo: *const VkDrawIndirect2InfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdDrawIndirect2KHR
                .expect("Vulkan command vkCmdDrawIndirect2KHR is not loaded"))(
                commandBuffer, pInfo
            )
        }
    }
    #[cfg(feature = "vk_khr_device_address_commands")]
    pub unsafe fn vkCmdDrawIndexedIndirect2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pInfo: *const VkDrawIndirect2InfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdDrawIndexedIndirect2KHR
                .expect("Vulkan command vkCmdDrawIndexedIndirect2KHR is not loaded"))(
                commandBuffer,
                pInfo,
            )
        }
    }
    #[cfg(all(
        feature = "vk_khr_device_address_commands",
        any(feature = "core_1_2", feature = "vk_khr_draw_indirect_count")
    ))]
    pub unsafe fn vkCmdDrawIndirectCount2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pInfo: *const VkDrawIndirectCount2InfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdDrawIndirectCount2KHR
                .expect("Vulkan command vkCmdDrawIndirectCount2KHR is not loaded"))(
                commandBuffer,
                pInfo,
            )
        }
    }
    #[cfg(all(
        feature = "vk_khr_device_address_commands",
        any(feature = "core_1_2", feature = "vk_khr_draw_indirect_count")
    ))]
    pub unsafe fn vkCmdDrawIndexedIndirectCount2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pInfo: *const VkDrawIndirectCount2InfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdDrawIndexedIndirectCount2KHR
                .expect("Vulkan command vkCmdDrawIndexedIndirectCount2KHR is not loaded"))(
                commandBuffer,
                pInfo,
            )
        }
    }
    #[cfg(all(
        feature = "vk_ext_mesh_shader",
        feature = "vk_khr_device_address_commands"
    ))]
    pub unsafe fn vkCmdDrawMeshTasksIndirect2EXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pInfo: *const VkDrawIndirect2InfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdDrawMeshTasksIndirect2EXT
                .expect("Vulkan command vkCmdDrawMeshTasksIndirect2EXT is not loaded"))(
                commandBuffer,
                pInfo,
            )
        }
    }
    #[cfg(all(
        feature = "vk_ext_mesh_shader",
        feature = "vk_khr_device_address_commands",
        any(feature = "core_1_2", feature = "vk_khr_draw_indirect_count")
    ))]
    pub unsafe fn vkCmdDrawMeshTasksIndirectCount2EXT(
        &self,
        commandBuffer: VkCommandBuffer,
        pInfo: *const VkDrawIndirectCount2InfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdDrawMeshTasksIndirectCount2EXT
                .expect("Vulkan command vkCmdDrawMeshTasksIndirectCount2EXT is not loaded"))(
                commandBuffer,
                pInfo,
            )
        }
    }
    #[cfg(feature = "vk_khr_device_address_commands")]
    pub unsafe fn vkCmdDispatchIndirect2KHR(
        &self,
        commandBuffer: VkCommandBuffer,
        pInfo: *const VkDispatchIndirect2InfoKHR,
    ) {
        unsafe {
            (self
                .vkCmdDispatchIndirect2KHR
                .expect("Vulkan command vkCmdDispatchIndirect2KHR is not loaded"))(
                commandBuffer,
                pInfo,
            )
        }
    }
    #[cfg(all(
        feature = "vk_khr_acceleration_structure",
        feature = "vk_khr_device_address_commands"
    ))]
    pub unsafe fn vkCreateAccelerationStructure2KHR(
        &self,
        device: VkDevice,
        pCreateInfo: *const VkAccelerationStructureCreateInfo2KHR,
        pAllocator: *const VkAllocationCallbacks,
        pAccelerationStructure: *mut VkAccelerationStructureKHR,
    ) -> VkResult {
        unsafe {
            (self
                .vkCreateAccelerationStructure2KHR
                .expect("Vulkan command vkCreateAccelerationStructure2KHR is not loaded"))(
                device,
                pCreateInfo,
                pAllocator,
                pAccelerationStructure,
            )
        }
    }
    #[cfg(feature = "vk_arm_scheduling_controls")]
    pub unsafe fn vkCmdSetDispatchParametersARM(
        &self,
        commandBuffer: VkCommandBuffer,
        pDispatchParameters: *const VkDispatchParametersARM,
    ) {
        unsafe {
            (self
                .vkCmdSetDispatchParametersARM
                .expect("Vulkan command vkCmdSetDispatchParametersARM is not loaded"))(
                commandBuffer,
                pDispatchParameters,
            )
        }
    }
}